wiremock 简介

WireMock是一个开源的测试工具,支持HTTP响应存根、请求验证、代理/拦截、记录和回放。最直接的用法:

  • 为Web/移动应用构建Mock Service
  • 快速创建Web API原型
  • 模拟Web Service中错误返回
  • 录制HTTP请求和回放

生成mock API的方式

生成mock api有两种方式:一种是新建mapping文件,另一种是通过wiremock的api. 其中第一种可以永久保存下来,第二种是暂时生成API,待下次build container后,会被清除. 下面详细介绍一下两种方式:

新建Mapping文件生成mock API

一个Mock的api对应一个json文件,放在mapping/下,文件格式如下:

{
"request": {
"url": "/QueryPWIDByLoginname",
"method": "POST",
"bodyPatterns": [
{
"equalToJson": "{ \"loginName\":\"17317920860\"}",
"ignoreArrayOrder": true,
"ignoreExtraElements": true
}
]
},
"response": {
"status": 200,
"body": "{\"code\":\"0\",\"data\":{\"AccountID\":\"\",\"LoginNameType\":\"2\",\"LoginStatus\":\"1\",\"PWID\":\"300111000156276629\",\"PWIDType\":\"wanda\",\"Status\":\"1\",\"SysFrom\":\"wandacloud\"},\"msg\":\"success\"}",
"headers": {
"Content-Type": "application/json; charset=utf-8",
"Date": "Fri, 18 Aug 2017 07:05:05 GMT"
}
}
}

mapping文件可以手动写,也可以通过wiremock的record功能生成.

record 功能生成mapping

wiremock Server提供了record UI, 访问地址: http://10.214.169.111:31703/__admin/recorder/
下面以登录注册模块QueryPWIDByLoginname功能为例,打开record UI, 需要mock的URL填入,http://10.214.169.111:30303,点击 Record按钮. 之后发向http://10.214.169.111:30303的请求,可以用http://10.214.169.111:31703来代理例如,应发送请求:
访问:

curl -X POST "http://10.214.169.111:31703/QueryPWIDByLoginname" -H "accept: application/vnd.response+json" -H "content-type: application/json" -d "{ \"loginName\": \"17317920860\"}"

返回:

{"code":"0","data":{"AccountID":"","LoginNameType":"2","LoginStatus":"1","PWID":"300111000156276629","PWIDType":"wanda","Status":"1","SysFrom":"wandacloud"},"msg":"success"}

点击Stop按钮,结果如下:

2.调用wiremock的api获取录制内容:使用curl/浏览器等方式获取:http://10.214.169.111:31703/__admin/mappings

3.将request和response部分拷贝到一个mapping目录下的一个新json文件, 上传git,完成.

使用wiremock admin rest api生成mock API

/__admin/mappings
POST http://10.214.169.111:31703/__admin/mappings
body:

{
"request": {
"method": "GET",
"url": "/fromAPI"
},
"response": {
"status": 200,
"body": "Hello world - API!",
"headers": {
"Content-Type": "text/plain"
}
}
}

wiremock使用入门相关推荐

  1. API 测试利器 WireMock

    之前写了一篇介绍 HttpClient 的两种重试机制 的文章, 但是否真的会按照预期进行重试我们不得而知. 别人提供给我们的 API 往往都是正常的,很多错误并不能稳定重现,这也造成了我们无法进行全 ...

  2. WireMock初体验,一个强大的HTTP 请求模拟测试框架

    缘起 最近我创建并维护了一个开源项目 http-api-invoker ,该项目实现将 HTTP 请求和接口进行绑定,让 HTTP 接口调用跟调用本地方法一样自然优雅.在写单元测试的时候,因为需要发送 ...

  3. 用Construct 2制作入门小游戏~

    今天在软导课上了解到了Construct 2这个神器,本零基础菜鸟决定尝试做一个简单的小游戏(实际上是入门的教程啊= = 首先呢,肯定是到官网下载软件啊,点击我下载~ 等安装完毕后我便按照新手教程开始 ...

  4. Docker入门六部曲——Swarm

    原文链接:http://www.dubby.cn/detail.html?id=8738 准备工作 安装Docker(版本最低1.13). 安装好Docker Compose,上一篇文章介绍过的. 安 ...

  5. Docker入门六部曲——Stack

    原文链接:http://www.dubby.cn/detail.html?id=8739 准备知识 安装Docker(版本最低1.13). 阅读完Docker入门六部曲--Swarm,并且完成其中介绍 ...

  6. Docker入门六部曲——服务

    原文链接:http://www.dubby.cn/detail.html?id=8735 准备 已经安装好Docker 1.13或者以上的版本. 安装好Docker Compose.如果你是用的是Do ...

  7. 【springboot】入门

    简介: springBoot是spring团队为了整合spring全家桶中的系列框架做研究出来的一个轻量级框架.随着spring4.0推出而推出,springBoot可以説是J2SEE的一站式解决方案 ...

  8. SpringBoot (一) :入门篇 Hello World

    什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  9. 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题

    入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集 GT_Zhang关注 0.1012019.08.01 18:43:34字数 1,874阅读 795 Hi,欢迎各位来自Paddl ...

最新文章

  1. tar用法实例 tar命令
  2. ASP.NET实现微信功能(2)(服务号高级群发)
  3. Python基础入门一(2)
  4. 产品经理思维模型:传播三大原理
  5. UIImageView01
  6. 【Kafka】kafka replication factor : 3 larger than avaiable brokers:2
  7. python基础序列化文件的读取(十六)
  8. 编译安装Apache、php、xcache、FastCGI及相关整合
  9. python内置函数分类_注意 Python 内置函数并不是万能的!
  10. 御剑后台扫描工具下载
  11. 概率论 - 常见分布(及其分布表)
  12. Win7 FTP搭建
  13. Thinkphp响应式第三四方聚合支付平台源码
  14. 考研如何设置桌面倒计时,便签设置桌面倒计时方法
  15. 第61篇:合并多个工作薄的所有工作表
  16. PUN 2 菜鸟养成记 3进入游戏
  17. 计算机没有管理无线网络,电脑连接无线网络时,提示你没有首选无线网络怎么办...
  18. CryEngine5 Shader调试
  19. 解决CSDN无法上传资源问题
  20. iOS应用程序的辅助功能:语音识别

热门文章

  1. python求解两个list列表的交集
  2. CSDN博文取消封面图片
  3. 物联网流量卡APN配置在Android机器上的详细教程
  4. 微博源码/微博程序代码
  5. web前端轮询获取数据的定义及优劣
  6. 自定义动画(仿Win10加载动画)——优化
  7. idea 使用svn将主分支修改的代码更新到子分支
  8. html中label标签内容如何实现指定文字处换行
  9. 土耳其 U土耳其 UDEM 2292DEM 2292
  10. 【web系列一】 开发环境配置