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

 

 

 

 

 

以上就是工作中遇到的总结,不足之处请大家留言指正,谢谢。

 

posted @ 2022-07-10 16:44  测试-知秋  阅读(599)  评论(0)    收藏  举报