Jmeter如何在结构复杂的JSON中提取数据
前言
日常工作中大家可能会用到Jmeter来做接口、性能测试,今天给大家分享下如何提取JSON字符串中的数据。
一、jp@gc-JSON/YAML Path EXtractor插件
在使用前需要安装jp@gc-JSON/YAML Path EXtractor插件,在jmeter选项-Plugins Manager 下Available Plugins搜索json/yaml进行安装。如图我已安装完成,在Installed Plugins列表显示。
二、jp@gc-JSON/YAML Path EXtractor如何使用
1、线程组-后置处理器-jp@gc-JSON/YAML Path EXtractor添加
2、获取数据时不同的符号表示不同的含义,如下列表
|
字符/表达式 |
说明 |
备注 |
|
$ |
根节点 |
|
|
@ |
当前节点 |
|
|
. 或者[] |
用于连接父子节点 |
|
|
.. |
深层扫描 |
|
|
* |
通配符 |
|
|
[?(表达式)] |
用法:[start:end]。切片 |
|
|
=~ |
正则表达式匹配 |
用法:@.key=~/正则表达式/ |
三、实战操作
1、格式化数据(测试数据)
{
"code": 20000,
"msg": "成功",
"data": {
"count": 34,
"next": "http://***.***-vip.cn/admin_api/v1/consultant/?page=2",
"previous": null,
"results": [{
"uuid": "PjYW29qsY9xkWt2pxuYpb8",
"showname": "超级管理员",
"mobile": "18888888888",
"level": 4,
"is_tmk": 1,
"group": "销售组001,销售组002,销售组006,xm1销售组1,测试简化,测试简化222222,考研潜在客户组,考研TMK二电"
},
{
"uuid": "CuvM58cudnKYZcuoNVSPSQ",
"showname": "测试01",
"mobile": "18111111111",
"level": 4,
"is_tmk": 1,
"group": "销售组001,销售组002,销售组006,xm1销售组1,测试简化,测试简化222222,考研潜在客户组"
},
{
"uuid": "sbSvXLB8vQS6GPNEESqfAg",
"showname": "测试02",
"mobile": "19999999999",
"level": 4,
"is_tmk": 1,
"group": "销售组001,销售组002,销售组006,xm1销售组1,xm1销售组2,测试简化,测试简化222222"
}
]
}
}
2、获取所有uuid

可以看到,成功获取到全部的uuid(3个)

3、嵌套比较深使用深层扫描获取uuid

成功获取全部数据的uuid(3个)

4、获取第一个uuid的值
方式一,完整路径提取

成功获取到第一个uuid

方式二,嵌套比较深可以用深度扫描,但是必须保留uuid的上一层(列表的那一层,表示是列表的第几个元素)

成功获取到第一个uuid

5、使用切片获取前两个uuid的值

成功获取到前两个uuid的值

6、获取前两个uuid的值和对应的showname的值

成功获取到uuid和对应的showname的值,以键值对格式返回

7、获取showname,且值为“测试01”的数据

成功获取到showname值为“测试01”的数据

8、使用正则匹配,获取所有数据的uuid值,且showname的值包含“超级”字段

成功获取到showname的值包含“超级”字段的uuid

以上就是工作中遇到的总结,不足之处请大家留言指正,谢谢。
本文来自博客园,作者:测试-知秋,转载请注明原文链接:https://www.cnblogs.com/blue-smile/p/16463183.html
浙公网安备 33010602011771号