使用WireMock 伪造 Rest 服务
程序员文章站
2024-01-19 11:37:52
...
WireMock 是基于 HTTP 的模拟器。它具备 HTTP 响应存根、请求验证、代理/拦截、记录和回放功能。
当开发人员的开发进度不一致时,可以依赖 WireMock 构建的接口,模拟不同请求与响应,从而避某一模块的开发进度。
官方文档:http://wiremock.org/docs/running-standalone/
1. 搭建wireMock单机服务
1.1 下载jar包
1.2 启动jar
java -jar wiremock-standalone-2.14.0.jar --port 9000
我在这里用9000端口启动
好了,看到上面的图案说明服务就搭建好了。
2. 向服务里注册Rest服务
2.1 导入依赖
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock</artifactId>
</dependency>
2.2 写一个简单的模拟Rest
/**
* Created by Fant.J.
*/
public class MockServer {
public static void main(String[] args) {
//通过端口连接服务
WireMock.configureFor(9000);
//清空之前的配置
WireMock.removeAllMappings();
//get请求
WireMock.stubFor(WireMock.get(WireMock.urlPathEqualTo("/user/1"))
.willReturn(WireMock.aResponse()
//body里面写 json
.withBody("{\"username\":FantJ}")
//返回状态码
.withStatus(200)));
}
}
运行这个main方法。
然后访问 http://127.0.0.1:9000/user/1
企业级开发封装
/**
* Created by Fant.J.
*/
public class MockServer {
public static void main(String[] args) throws IOException {
//通过端口连接服务
WireMock.configureFor(9000);
//清空之前的配置
WireMock.removeAllMappings();
//调用 封装方法
mock("/user/2","user");
}
private static void mock(String url, String filename) throws IOException {
ClassPathResource resource = new ClassPathResource("/wiremock/"+filename+".txt");
String content = FileUtil.readAsString(resource.getFile());
//get请求
WireMock.stubFor(WireMock.get(WireMock.urlPathEqualTo(url))
.willReturn(WireMock.aResponse()
//body里面写 json
.withBody(content)
//返回状态码
.withStatus(200)));
}
}
其中,user.txt文件在这里
文本内容:
然后我们运行程序,访问http://127.0.0.1:9000/user/2
上一篇: stress --压力测试软件
下一篇: ajax返回字符串的比较,该怎么解决
推荐阅读
-
使用WireMock 伪造 Rest 服务
-
WireMock快速伪造restful服务
-
Spring Boot使用RestTemplate消费REST服务的几个问题记录
-
Spring Boot使用RestTemplate消费REST服务的几个问题记录
-
ASP.NET5 REST API使用示例——基于云平台+云服务打造自己的在线翻译工具
-
使用ASP.NET Web Api构建基于REST风格的服务实战系列教程——使用Repository模式构建数据库访问层
-
Beginning Spring学习笔记——第11章 使用Spring开发REST风格的Web服务
-
使用Protobuf推动微服务和REST API的开发
-
使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【七】——实现资源的分页
-
使用CodeIgniter 创建 RESTful 服务 REST API【原创译文】