如果你想从头学习Jmeter,可以看看这个系列的文章哦
https://www.cnblogs.com/poloyy/category/1746599.html
关于如何提取列表中的随机值呢
$.datas[*].id
关于如何提取符合特定条件的json表达式呢
$.datas[?(@.recommend==‘0‘)].id
我们通过实际栗子去讲述理论知识点
字段 | 结果 |
---|---|
Apply to | 应用范围,选默认的 main sample only 就行了 |
Names of created variables |
|
JSON Path expression |
|
Match No.(0 for Random) |
|
Compute concatenation var(suffix_ALL) |
|
Default Values |
|
这个栗子,我都会以这个地址的接口来完成 JSON 提取器的实战栗子,大家可以注册个账号玩一玩哦
http://api.yesapi.cn/docs.php?keyword=%E4%BC%9A%E5%91%98&channel=api
下面多个栗子都以这个测试计划为基础哦
登录是执行其他接口的前置接口,所以要获取用户登录后的 token、uuid
相对路径的方式
绝对路径的方式
这也是某个接口返回的响应内容,后面的栗子也是以这个 JSON 字符串为基础来提取各种值
感兴趣也可以自己玩一玩:http://api.yesapi.cn/docs-api-App.User.GetList.html
Jsonpath | 结果 |
---|---|
$.data.total | 3 |
$..total | 3 |
$..users[0].role | user |
$..uuid | 079BF6BB82AFCFC7084F96AECAF0519F |
$.data.users[0].ext_info.yesapi_points | 0 |
还会告诉你匹配了多少个值 ${uuid_matchNr} ,记住,调用变量时,不再是 ${uuid} 而是 ${uuid_1} 、 ${uuid_2}
和 Python 切片一样的原理
Jsonpath | 结果 |
---|---|
$..users[2] | 第三个 users |
$..users[-2] | 倒数第二个users |
$..users[0,1] | 前面两个users |
$..users[:2] | 第一、二个users |
$..users[1:2] | 第二个users |
$..users[-2:] | 倒数两个users |
$..users[1:] | 第二个开始的所有users |
提取所有 role 字段值
[*] 表示取数组的所有元素
提取所有 role_desc 字段值
提取所有 reg_time 字段值
提取所有 username 字段值
有时候只需要提取某个特定条件下的参数值
Jsonpath | 结果 |
---|---|
$..users[?(@.uuid)] | 提取 users 里面包含 uuid 字段的记录 |
$..users[?(@.reg_time > ‘2020-06-01‘)] | 提取 reg_time 字段大于 2020-06-01 的记录 |
$..users[?(@.role_desc =~ /.*会员.*?/i)] | 提取 role_desc 字段包含会员的记录 |
$..users[?(@.status == 0)] | 提取 status 字段等于 0 的记录 |
代表当前节点,像上面的四个栗子,@代表 users 这个列表字段
提取 users 第一条记录的 uuid、username 字段的值
Jmeter --json提取器【提取符合特定条件的表达式】
原文:https://www.cnblogs.com/charlie-learnbar/p/13628138.html