使用WireMock进行REST API测试和模拟

WireMock 是一个用于模拟HTTP服务的开源工具,它允许您轻松创建和管理虚拟的HTTP端点,以便在测试和开发过程中模拟外部服务的行为。WireMock通常用于构建集成测试和功能测试,以确保您的应用程序在与外部依赖项(例如RESTful API、SOAP服务等)交互时能够正常工作。

WireMock的主要特点包括:

  • 灵活性: WireMock可以模拟各种HTTP响应,包括不同的状态代码、标头、正文内容等,使您能够模拟多种情况和场景。
  • 请求匹配: 您可以配置WireMock以匹配特定的HTTP请求,以便在接收到匹配请求时触发相应的模拟响应。
  • 录制和回放: WireMock支持录制实际HTTP请求和响应,以后可以将其回放为模拟响应,以实现真实的行为模拟。
  • 动态响应: 您可以使用WireMock的模板系统创建动态响应,以根据请求的内容生成响应。
  • 可配置性: WireMock提供了丰富的配置选项,以便您根据具体需求进行定制。

一、安装

1、 安装java环境(即安装JDK,相信对大家来说并不难);

2、 下载 wiremock-standalone-3.1.10.jar 包;(https://repo1.maven.org/maven2/org/wiremock/wiremock-standalone/3.1.0/wiremock-standalone-3.1.0.jar

3、 Liunx下载java包,命令如下:

wget https://repo1.maven.org/maven2/org/wiremock/wiremock-standalone/3.1.0/wiremock-standalone-3.1.0.jar

二、录制

开启录制模式

Windows在cmd下输入以下命令:

java -jar wiremock-standalone-3.1.10.jar --proxy-all="http://xxxx1.com"  --record-mappings  -verbose --bind-address 172.17.9.65  -port  8089

命令说明:

http://xxxx1.com 为需要代理的服务;172.17.9.65:8089 为wiremock服务地址和端口; 即将所有访问172.17.9.65:8089 端口的请求转发至xxxx1.com上,并录制xxxx1.com的服务接口数据;

可以根据自己情况修改一下信息做成BAT文件。

d:

cd d:\wiremock

java -jar wiremock-standalone-2.1.10.jar --proxy-all="http://xxxx1.com" --record-mappings --verbose --bind-address 172.17.9.65  -port 8089

Liunx下启动录制模式

java -jar wiremock-standalone-2.1.10.jar   --proxy-all="http:/xxxx1.com" --record-mappings --verbose --bind-address 10.16.4.108  -port  9527

启动后在wireMock的安装根目录下会产生两个目录,分别是_files、mapping; _files存放是录制的resopens,Mapping存放是代理的生成规则。

三、 代理启动模式

代理启动

1)在Windows的模式下启用wiremock

d:

cd d:\wiremock

java -jar wiremock-standalone-2.1.10.jar  --bind-address 172.17.9.65  -port 8089

2)在Windows的模式下启用wiremock

java -jar wiremock-standalone-2.1.10.jar  --bind-address 172.17.9.65   -port 8089

wireMock服务的端口为8089; 服务启动后,请求在启动服务进行适配,根据Mapping适配,适配不同_files返回数据。

四、应用于服务端之间

使用WireMock进行REST API测试和模拟

需要将服务端的服务请求的第三方服务(IP及端口)指向wireMock服务的(IP及端口)

例如:

要代理 xxxx1.com 服务,WireMock服务的IP及端口为:172.17.9.65:9999

在服务端需要将请求到xxxx1.com的域名改为172.17.9.65:9999

五、应用于客户端与服务端之间

使用WireMock进行REST API测试和模拟

需要将请求端请求的服务端(IP及端口)指向wireMock服务的(IP及端口)

例如:

要代理xxxx1.com服务,WireMock服务的IP及端口为:172.17.9.65:9999

在请求端需要将请求到xxxx1.com的域名改为172.17.9.65:9999

六、代理规则匹配

Get请求的精确匹配

使用WireMock进行REST API测试和模拟

Get请求的模糊匹配

使用WireMock进行REST API测试和模拟

POST的精确匹配

使用WireMock进行REST API测试和模拟

POST的模糊匹配

使用WireMock进行REST API测试和模拟



留言