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


    转载:http://blog.csdn.net/naicha_qin/article/details/78276172

    前后端分离或者是进行单元测试的时候,必须要用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):

    [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的。

  • 相关阅读:
    欧拉公式
    isap的一些想法
    错误合集
    Hello World
    PAT (Advanced Level) Practice 1068 Find More Coins
    PAT (Advanced Level) 1087 All Roads Lead to Rome
    PAT (Advanced Level) 1075 PAT Judge
    PAT (Advanced Level) 1067 Sort with Swap(0, i)
    PAT (Advanced Level) 1017 Queueing at Bank
    PAT (Advanced Level) 1025 PAT Ranking
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/7883799.html
Copyright © 2020-2023  润新知