wireMock单机版jar包的使用
1.使用场景
- 服务模块之间依赖联调,模块开发中
- 不同于在线mock需要注册登录
- 提供录制功能,可以录制外部接口的请求响应
- mock文件在本地,可以快捷修改
2.官网地址
单机版使用指导地址:
https://wiremock.org/docs/running-standalone/
3.jar包启动
- 因为jar包启动,所以本地需要提前安装java
- 为方便后续启动,新建shell脚本,windows上新建bat命令,逻辑一致
以下为具体实现步骤:
3.1下载jar包
可以通过在项目中依赖相关jar包,用maven下载后,然后在本地仓库中找到该jar包
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock-standalone</artifactId>
<version>2.18.0</version>
<scope>test</scope>
</dependency>
3.2编写启动脚本
java -jar {jar_path}/repository/com/github/tomakehurst/wiremock-standalone/2.18.0/wiremock-standalone-2.18.0.jar --port 21400 —https-port 21500 --verbose --root-dir {mockFile_path}/mockFile
这里我自定义了访问接口,具体的jar启动参数说明详见文档地址:
https://wiremock.org/docs/running-standalone/
这里需要注意的是,jar包的可执行权限需要进行修改
chmod 777 {jar_path}/repository/com/github/tomakehurst/wiremock-standalone/2.18.0/wiremock-standalone-2.18.0.jar
3.3启动脚本
sh mock.sh

此时在设置的mockfile文件夹中会自动创建两个文件夹
mappings文件夹后续可以增加要mock的接口文件,文件格式为.json
4.页面地址
http://localhost:21400/__admin/docs/
点击ui地址跳转
5.自定义json文件进行mock
在mappings文件夹下创建一个要mock的json文件

{
"request": {
"method": "GET",
"url": "/api/mytest"
},
"response": {
"status": 200,
"body": "More content\n"
}
}
新建文件之后,这里服务需要重启,重新执行下shell启动脚本,访问http://localhost:21400/api/mytest

6.录制功能
录制地址
http://localhost:21400/__admin/recorder/

这里以百度为例,将百度的地址填入这里

然后访问地址http://localhost:21400/,这里的原理是wiremock做了一层代理转发,并将前后拦截的请求和响应都记录下来,存放在mappings文件下的一个新建json文件中,这样后续我们没有网络的时候,直接请求http://localhost:21400/也是可以拿到响应的

停止录制,可以看到录制的接口数
查看本地mappings文件