使用接口mock辅助测试

在工作中遇到了一些场景不方便测试,例如:与第三方合作,未联调时就需要提前介入测试我方的接口;app上有调用到第三方的接口;接口的前置场景的接口不易于执行到。于是,今天学习了如何使用mock,在测试过程中,对于某些不容易构造或者第三方的接口,创建一个虚拟的接口以便测试的方法。

学习了两种方式:

第一种是使用easy mock(这种方式适合于服务器端调用):

1、官方地址是https://easy-mock.com/  首先创建一个项目,然后创建一个接口,填写请求方法,url,接口返回值,在填写url时与实际接口上的url一致。创建成功后,可复制接口地址到post上执行,可执行成功,并响应出所填写的接口返回值。这时候mock就创建好了。

2、再到实际所测的开发项目中将spring-config.properties文件中地址设置为本地,例如项目名称是test,则设置为:url.test=http://localhost:8080/test

在本地启动项目。

3、如果测试对象是接口,以上步骤就已经可以成功使用mock了;如果测试对象是app,可以使用charles连上手机代理,再在charles上设置:Tools -》Map Remote -》勾选Enable Map Remote -》设置Map From为项目原来的地址,设置Map To为localhost的地址。设置成功后,在app上操作时,使用的就是本地的代码。(当然,也可以使用fidder)

第二种是使用moco的jar包(这种方式适合于本地调用,可模拟单个接口):

1、下载jar包:moco-runner-0.9.2-standalone.jar

2、 将要mock的接口内容写成json文件,例如payment.json文件,里面mock两个接口,写法如下:

[
  {
    "request": {
      "uri": "/baofoo",
      "queries": {
        "param": "pay"
      }
    },
    "response": {
      "json":{"biz_type":"0000",
          "resp_code":"BF00113",
          "txn_type":"0431"
        }
    }
  },
  {
    "request": {
      "uri": "/yee",
      "queries": {
        "param": "validation"
      }
    },
    "response": {
      "json": 
      {
      "codesender":"CUSTOMER", 
      "enhancedtype":"abc",
      "errorcode":"TZ1001033"
     }
    }
  }]

3、执行语句:

java -jar moco-runner-0.9.2-standalone.jar start -p 12306 -c payment.json

(-jar是执行后面的jar包,start -p设置端口号,-c指定json文件)

4、在本地开发项目中设置spring-config.properties,内容为

bf.requestUrl=http://localhost:12306/baofoo?param=pay

5、到postman中或者浏览器中进行验证,输入http://localhost:12306/baofoo?param=pay。可得到响应值:

 {
      "json":{"biz_type":"0000",
          "resp_code":"BF00113",
          "txn_type":"0431"
        }
    }

详细使用参见文章:接口服务模拟Mock Server之moco-runner详细使用



留言