如何在JMeter中Stub/Mock下游API?新手实操求助
JMeter + WireMock 入门实操指南
一、WireMock 快速启动
- 下载WireMock对应Java版本的独立版JAR包
- 打开终端/命令行执行启动命令:
java -jar wiremock-jre8-standalone-x.x.x.jar --port 8080
(端口可自定义,比如改成8081避免端口冲突) - 启动成功后,会自动生成
__files(存放静态响应文件)和mappings(存放请求匹配规则)两个本地文件夹
二、创建第一个Mock接口
- 进入
mappings文件夹,新建JSON文件(比如get-user-detail.json),写入以下匹配规则:
{ "request": { "method": "GET", "url": "/api/user/1001" }, "response": { "status": 200, "jsonBody": { "user_id": 1001, "username": "demo_user", "phone": "13800138000" }, "headers": { "Content-Type": "application/json;charset=UTF-8" } } }
- 保存文件后,WireMock会自动加载配置,无需重启服务
三、JMeter 对接 WireMock
- 打开JMeter,新建测试计划,添加「线程组」
- 给线程组添加「HTTP请求」Sampler:
- 服务器名称/IP:
localhost - 端口号:填写WireMock启动时用的端口(比如8080)
- 请求路径:
/api/user/1001 - 请求方法:
GET
- 服务器名称/IP:
- 添加「查看结果树」监听器,运行测试,就能看到WireMock返回的模拟响应数据
四、镜像服务(请求转发+录制)问题排查
如果之前尝试镜像服务失败,按以下步骤检查:
- 启动WireMock时开启镜像模式,命令改为:
java -jar wiremock-jre8-standalone-x.x.x.jar --port 8080 --proxy-all="https://你的目标API地址" --record-mappings - JMeter的HTTP请求必须指向WireMock的端口,而非原API地址
- 检查端口是否被占用(Windows用
netstat -ano | findstr 8080,Mac/Linux用lsof -i :8080) - 查看WireMock启动窗口的日志,排查请求转发时的错误提示
五、新手实用技巧
- 访问
http://localhost:8080/__admin可打开WireMock可视化管理界面,直接在网页上创建、编辑Mock规则,操作更直观 - 先从固定响应的简单Mock练手,熟悉后再尝试动态参数、响应延迟、异常状态码模拟等复杂场景
- JMeter中添加「HTTP信息头管理器」,设置
Content-Type等请求头,确保和WireMock的请求匹配规则一致
内容的提问来源于stack exchange,提问作者Kishan Yarlagadda
相关产品推荐
相关产品推荐

