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

来源:互联网 发布:软件开发北京 编辑:程序博客网 时间:2024/05/17 21:46

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

 

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

 


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



编辑完成之后,回到api的详情页面,在mock的标签下面会看到有一个url,复制到项目里面就行。因为地址前缀是统一的,所以可以按照刚刚说的,在项目里统一配置一个测试的前缀,到时候上线就换成生产环境的前缀既可。支持restful这点还是非常不错的,似乎是我目前看到唯一支持restful的mock server?



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

public class MockServerTest {    @Test    public void testMockServer() throws IOException {        mockClient.when(                request()                        .withPath("http://mock.eolinker.com/TPivSvI55cabdf9f2243a023dc6a76ec9514dc38084c19d?uri=/bestedu/course/primarySchool")                        .withMethod("POST")//                        .withHeader(new Header(HttpHeaders.ACCEPT, MediaType.TEXT_PLAIN))//                        .withQueryStringParameter(new Parameter("my-token", "12345"))        ).respond(                response()                        .withStatusCode(200)                        .withBody(expected)        );        CloseableHttpClient client = HttpClients.createDefault();        HttpGet httpGet = new HttpPost("http://mock.eolinker.com/TPivSvI55cabdf9f2243a023dc6a76ec9514dc38084c19d?uri=/bestedu/course/primarySchool");        CloseableHttpResponse response = client.execute(httpGet);        //验证输出是否是正确        InputStream content = response.getEntity().getContent();        InputStreamReader inputStreamReader = new InputStreamReader(content);        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);        String responseText = bufferedReader.readLine();        assertThat(responseText, equalTo(expected));    }}

除了返回mock数据之外,eolinker还有对请求方式以及参数的校验,如果不对的话还会提示,这个还是很cool的。but,对于mock的校验只有企业版才有,默默希望到时候技术老大可以批一下。。。


总结:

不重复造轮子,现在很多人崇尚自己去搞一套服务啊啥的,研究一下还行,真的干活还是简单粗暴到手即用最好。何况现在也在推崇远程办公,eolinker在这一块我觉得做的还是ok的。

原创粉丝点击