利用eolinker实现api接口mock测试(mock server)

先后端分离或者是进行单元测试的时候,必需要用mock api替换掉第三方调用或者是实际的API,eolinker提供了很是全面的mock api支持,其余那些须要安装配置的mock server就不说了,有现成的干吗还要本身搭。html

Api信息以下,url里面能够把根路径去掉,直接写api的地址就行。到时候在项目里面统一配置线上环境以及测试环境的地址前缀,切换就好。java


在api的编辑页面,高级mock里面,输入mock的规则就行。eolinker的mock是基于mockjs来改的,不过规则大同小异,规则能够参考这里http://mockjs.com/examples.html后端



编辑完成以后,回到api的详情页面,在mock的标签下面会看到有一个url,复制到项目里面就行。由于地址前缀是统一的,因此能够按照刚刚说的,在项目里统一配置一个测试的前缀,到时候上线就换成生产环境的前缀既可。支持restful这点仍是很是不错的,彷佛是我目前看到惟一支持restful的mock server?api



用到项目里面大概是这样的(只是简单写了个demo):restful

[java] view plain copy
  1. public class MockServerTest {
  2. @Test
  3. public void testMockServer() throws IOException {
  4. mockClient.when(
  5. request()
  6. .withPath("http://mock.eolinker.com/TPivSvI55cabdf9f2243a023dc6a76ec9514dc38084c19d?uri=/bestedu/course/primarySchool")
  7. .withMethod("POST")
  8. // .withHeader(new Header(HttpHeaders.ACCEPT, MediaType.TEXT_PLAIN))
  9. // .withQueryStringParameter(new Parameter("my-token", "12345"))
  10. ).respond(
  11. response()
  12. .withStatusCode(200)
  13. .withBody(expected)
  14. );
  15. CloseableHttpClient client = HttpClients.createDefault();
  16. HttpGet httpGet = new HttpPost("http://mock.eolinker.com/TPivSvI55cabdf9f2243a023dc6a76ec9514dc38084c19d?uri=/bestedu/course/primarySchool");
  17. CloseableHttpResponse response = client.execute(httpGet);
  18. //验证输出是不是正确
  19. InputStream content = response.getEntity().getContent();
  20. InputStreamReader inputStreamReader = new InputStreamReader(content);
  21. BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
  22. String responseText = bufferedReader.readLine();
  23. assertThat(responseText, equalTo(expected));
  24. }
  25. }

除了返回mock数据以外,eolinker还有对请求方式以及参数的校验,若是不对的话还会提示,这个仍是很cool的。but,对于mock的校验只有企业版才有,默默但愿到时候技术老大能够批一下。。。前后端分离


总结:单元测试

不重复造轮子,如今不少人崇尚本身去搞一套服务啊啥的,研究一下还行,真的干活仍是简单粗暴到手即用最好。况且如今也在推崇远程办公,eolinker在这一块我以为作的仍是ok的。测试

相关文章
相关标签/搜索