使用JMETER中的JSON提取器实现接口关联

一、JSON提取器介绍

JSON提取器是JMETER工具中用于从JSON响应中提取数据的重要组件,常常用于接口关联场景中(参数传递)。

二、添加JSON提取器

举例(积分支付接口 请求数据依赖于创建订单接口响应的payOrderId)

1.在需要提取数据的HTTP请求上,右键 → 添加 → 后置处理器 → JSON提取器

2.配置JSON提取器参数:

默认选择Main sample only

变量名称:存储提取值的变量名(我这里是payOrderId)

JSON路径表达式:$.data.payOrderId

(我这里之所以这样写,是因为需要参考创建订单接口响应数据中的json格式)

#创建订单接口响应数据的json格式

{

"msg": "",

"code": 0,

"data": {

"payOrderId": 914,

"id": 688

}

}

匹配数字:0表示随机,1表示第一个,-1表示所有

三、常用JSONPath表达式示例

1.提取单个值:

$.data.payOrderId --- 提取根节点下data对象中的payOrderId

$.items[0].id --- 提取items数组中第一个元素的id

2.提取多个值:

$.items[*].id --- 提取items数组中所有元素的id

$..name --- 递归查找所有name字段

四、使用提取的值

1.在后续请求中通过${变量名}引用

2.验证是否提取成功

在积分支付接口的请求体数据中成功拿到了创建订单接口返回的payOrderId值

在积分支付接口的响应数据中查看数据

{

"msg": "",

"code": 0,

"data": {

"displayContent": null,

"displayMode": null,

"status": 10

}

}

五、注意事项

1.JSONPath表达式区分大小写

2.变量作用域为当前线程组

3.对于复杂JSON结构,建议先用在线JSONPath测试工具验证表达式

4.考虑添加响应断言确保接口返回了预期的JSON结构

相关推荐
se-tester5 天前
JMeter、Postman 和 SoapUI 在做接口测试上的优势和缺点
测试工具·jmeter·接口测试·postman·soapui
上海合宙LuatOS6 天前
LuatOS核心库API——【json 】json 生成和解析库
java·前端·网络·单片机·嵌入式硬件·物联网·json
敲代码的柯基6 天前
一篇文章理解tsconfig.json和vue.config.js
javascript·vue.js·json
万物得其道者成6 天前
前端大整数精度丢失:一次踩坑后的实战解决方案(`json-bigint`)
前端·json
feathered-feathered6 天前
测试实战【用例设计】自己写的项目+功能测试(1)
java·服务器·后端·功能测试·jmeter·单元测试·压力测试
Ai runner6 天前
Show call stack in perfetto from json input
java·前端·json
ID_180079054736 天前
淘宝商品详情API请求的全场景,带json数据参考
服务器·数据库·json
恒云客7 天前
python uv debug launch.json
数据库·python·json
wanderist.8 天前
从 TCP 到 JSON:一次 FastAPI + LLM 生产环境 “Unexpected end of JSON input” 的底层剖析
tcp/ip·json·fastapi
享誉霸王8 天前
15、告别混乱!Vue3复杂项目的规范搭建与基础库封装实战
前端·javascript·vue.js·前端框架·json·firefox·html5