Lingmoumou's Blog

きっといつかって愿うまま

0%

WireMock介绍及使用

http://wiremock.org/

WireMock

WireMock 是基于 HTTP 的模拟器。它具备 HTTP 响应存根、请求验证、代理/拦截、记录和回放功能。
当开发人员的开发进度不一致时,可以依赖 WireMock 构建的接口,模拟不同请求与响应,从而避某一模块的开发进度。

安装WireMock 服务端

https://hub.docker.com/r/holomekc/wiremock-gui

1
2
docker pull holomekc/wiremock-gui
docker run -d -p 30080:8080 --name wiremock holomekc/wiremock-gui

待服务运行成功后,输入http://127.0.0.1:30080/__admin/webapp ,登录可视化页面。

wiremock-gui

引入WireMock依赖

有标准的和独立的两种版本,根据需要自行引入。

1
2
3
4
5
6
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock-jre8</artifactId>
<version>2.25.1</version>
<scope>test</scope>
</dependency>

添加模拟请求映射

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// MockServer.java

import static com.github.tomakehurst.wiremock.client.WireMock.*;

public class MockServer {

public static void main(String[] args) throws IOException {
configureFor(30080);
removeAllMappings();

mock("/order/1","01");
}

private static void mock(String url,String file) throws IOException {
ClassPathResource resource=new ClassPathResource("mock/response/"+file+".txt");
String content= StringUtils.join(FileUtils.readLines(resource.getFile(),"UTF-8").toArray(),"\n");
stubFor(get(urlPathEqualTo(url)).willReturn(aResponse().withBody(content).withStatus(200)));
}
}

在IntelliJ中添加静态包导入的方法

在Eclipse中,可以配置某些最喜欢的”类,当调用代码完成时,将查找这些类以查看是否可以为方法添加静态导入(这在首选项> Java>编辑器>下内容辅助>收藏夹)。

在IntelliJ中,通过File -> Settings -> Code Style -> Java -> Imports,添加需要经常引入的静态包方法。

这里在引入wiremock.client相关方法时,设置了IntelliJ中的静态方法。

在IntelliJ中添加静态包导入

参考文献