zoukankan      html  css  js  c++  java
  • 利用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的。

  • 相关阅读:
    换手机了,dopod566,小E丢了 :(
    在a标签的href与onclick中使用javascript的区别
    我的SQL相关TIPS
    asp.net的ajax服务器端代理
    IE和Firefox中的dom加载完成执行代码(defer)
    看几个源码,自己多做项目了!
    数据层使用Server对象;动态生成控件多文件上传
    ref,out(摘)
    JavaScript和jQuery的DOM操作
    闭包
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/7883799.html
Copyright © 2011-2022 走看看