转载: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):

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

利用eolinker实现api接口mock测试(mock server)的更多相关文章

  1. 利用fitnesse实现api接口自动化测试

    上午在园子里乱逛,看了不少小伙伴们分享的接口测试方面的知识,仔细想想,我做接口测试也有几个年头了,大家所叙述到的一些经验或多或少,我也曾遇到过,突然意识到知识的点滴积累是多么的重要,我记得我最早接触接 ...

  2. 利用postman进行api接口开发

    场景: api接口开发时,经常使用一些工具来帮助设计开发.Yapi主要是在设计阶段进行api接口设计,统一前后端参数请求和返回体:swagger主要在开发阶段,用来显示实际上后端开发进度和接口情况:p ...

  3. .NET微信扫码支付模式二API接口开发测试

    主要实现微信扫码支付,官网的SDKdemo 就不要使用 一直不能调试通过的,还是自己按照API接口文档一步一步来实现,吐槽下微信一点责任感都木有,能不能demo搞个正常的吗,不要坑惨了一大群码农们有点 ...

  4. .NET MVC结构框架下的微信扫码支付模式二 API接口开发测试

    直接上干货 ,我们的宗旨就是为人民服务.授人以鱼不如授人以渔.不吹毛求疵.不浮夸.不虚伪.不忽悠.一切都是为了社会共同进步,繁荣昌盛,小程序猿.大程序猿.老程序猿还是嫩程序猿,希望这个社会不要太急功近 ...

  5. cobbler api接口开发测试实例

    条件1:必须搭建好cobbler服务,并且可以通过web访问:http://cobbler_ip/cobbler_web 测试可以打开.然后再用以下命令测试. #!/opt/python3/bin/p ...

  6. 谈谈如何用eoLinker管理各类API接口及分享API接口管理小技巧教程

    在前后端分离的开发模式下,前后端往往需要接口文档来进行交互.我的上一篇随笔中已经写到用传统的文档写接口时,由于需求经常变动,接口文档也会随之变动.一开始,某接口信息已经写入文档,但后期因为需求变动,发 ...

  7. Mock测试接口

    Mock使用场景: (1)创建所需的DB数据可能需要很长时间,如:调用别的接口,模拟很多数据,确保发布版本接口可用 (2)调用第三方API接口,测试很慢, (3)编写满足所有外部依赖的测试可能很复杂, ...

  8. Spring MVC如何测试Controller(使用springmvc mock测试)

    在springmvc中一般的测试用例都是测试service层,今天我来演示下如何使用springmvc mock直接测试controller层代码. 1.什么是mock测试? mock测试就是在测试过 ...

  9. Python单元测试和Mock测试

    单元测试 测试可以保证你的代码在一系列给定条件下正常工作 测试允许人们确保对代码的改动不会破坏现有的功能 测试迫使人们在不寻常条件的情况下思考代码,这可能会揭示出逻辑错误 良好的测试要求模块化,解耦代 ...

随机推荐

  1. 关于js的addEventListener 和一些常用事件

    element.addEventListener(<event-name>, <callback>, <use-capture>);document.addEven ...

  2. 行为型设计模式之访问者模式(Visitor)

    结构 意图 表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作. 适用性 一个对象结构包含很多类对象,它们有不同的接口,而你想对这些对象实施一些依 ...

  3. 第2章 掌握C++

    参考: https://blog.csdn.net/u014162133/article/details/46573873 1.C++主要特点: 封装性(Encapsulation):把数据与操作数据 ...

  4. do_exit【转】

    转自:http://blog.csdn.net/lhf_tiger/article/details/8768874 进程在退出时,必须释放它所拥有的资源,并通过某种方式告诉父进程.进程的退出一般是显示 ...

  5. 多个类的DLL封装及调用

    #define FaceLIBDLL #include "stdafx.h" #include "facedll.h" #include <opencv2 ...

  6. 阿里云Ubuntu快速建站

    阿里云Ubuntu快速建站 有一个小笑话: 从前有个程序员遇到了一个问题.他想,没事,我懂,用线程就好了.现他有两个问题了. 本人小白,对网站部署什么都不懂,只是申请个阿里云服务器,把我的站点放上去. ...

  7. Codeforces538F A Heap of Heaps(函数式线段树)

    题意:给你一个数组a[n],对于数组每次建立一个完全k叉树,对于每个节点,如果父节点的值比这个节点的值大,那么就是一个违规点,统计出1~n-1完全叉树下的违规点的各自的个数. 一个直觉的思想就是暴力, ...

  8. 函数名后加const

    通过把类成员函数声明为const   以表明它们不修改类对象. 任何不会修改数据成员的函数都应该声明为const类型.如果在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员 ...

  9. 陕西师范大学第七届程序设计竞赛网络同步赛 F WWX的礼物【数学/k进制下x^n的位数/log】

    链接:https://www.nowcoder.com/acm/contest/121/F来源:牛客网 题目描述 WWX的女朋友送给了他一个礼物,可是礼物却被一把K进制密码锁锁住了.在礼物盒上还有一张 ...

  10. 版本控制[0] -> git -> 使用 git 进行版本控制

    版本控制 / Version Control 目录 git-版本控制 / git-Version Control git-常用命令 / git-Freq Command git-文件忽略 / git- ...