使用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

$.items0.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结构

相关推荐
j7~13 小时前
【Linux网络加餐】(篇六)网络版计算器(上):模板方法模式、序列化与 JSON
linux·c++·json·序列化·反序列化·网络版计算机
梦帮科技16 小时前
Next.js 16 模块化单体实战:App Router、领域模块与 Route Handler 分层
css·数据结构·链表·正则表达式·node.js·json·html5
AngusKit18 小时前
AngusTester 与 Postman、MeterSphere:私有化统一测试怎么选
测试工具·jmeter·压力测试·metersphere·web测试·移动端测试
蓝悦无人机1 天前
LangChain v1.0 系列教程——第2章 工具系统
langchain·json·装饰器模式·pydantic
Lyra_Infra2 天前
从一段错误 JSON 说起:Policy、Role 与 IAM
后端·json·aigc
羑悻的小杀马特2 天前
数据织网者:Jsoncpp库深度解析——从C++原生JSON处理到工程级数据交互实战全攻略
c++·json·交互·jsoncpp·原生库
代码什么用2 天前
JSON一文速通
java·json
TomEval2 天前
【性能测试】17 - 性能测试入门
测试工具·jmeter
小小测试开发2 天前
LLM 结构化输出测试:Schema 契约 + 故障注入,让工具调用的 JSON 不再靠重试赌运气
人工智能·json
hasty2 天前
_proto__ 不是普通键:从 JSON 反序列化看原型污染
安全·json