zoukankan      html  css  js  c++  java
  • Jmeter 中JSON Path Extractor高级用法

    好久没玩jemter了,由于项目原因又重新拾起。在使用JSON Path Extractor(jmeter 4.0已经默认支持了,4.0以下要自行安装插件)时,可以进行条件过滤,不用再自行写shell。

    假设JSON返回数据格式如下:

    {
      "Province": [
        {
          "Name": "Beijing",
          "population": "10000"
        },
        {
          "Name": "Shanghai",
          "population": "800"
        },
        {
          "Name": "Guangzhou",
          "population": "900"
        }
      ],
      "property": "biggest",
      "state": "China"
    }

    1、简单的匹配就不说了,网上一大把。

    2、匹配所有省份名字:$..Name

        将会得到一个省份名的数组,Name=["Beijing","Shanghai","Guangzhou"]

         这时可以jmeter对应的变量来获取值,如${Name_1}、${Name_matchNr}=3

         Json Path高级用法:$..Name[0],可以将第一个省份提取出来

         还有一个功能:Compute concatenation var,是匹配所有,默认是没有勾选,如果要使用,需要勾选。并用,号做分隔符,并且匹配的变量名为xxx_ALL

                                 该功能需要将Match No.中写成-1,匹配所有结合使用。

    3、Json条件选择

        Json Path的条件过滤使用以下的表达式

          ?()  ----表示条件过滤函数

          @过滤什么

       举例:

         $..[?(@.Name=='Beijing')] ----将省份名为北京的所有数据过滤出来了

         $.Province[?(@.Name="Beijing")].population   ----将省份名为北京的人口过滤出来了

         还支持*号:

          $.Province[*].population  ---将所有人口过滤出来

         $.Province[@.length-1].population    ---将最后一条数据的人口过滤出来

         $.Province[:-2].population  ----将前面二条数据人口过滤出来

         

    4、多参数

        直接举例吧

        $.[property,state]

         将会得到两个值的数组["biggest","china"]

         可以再用jmeter对应的函数xxx_1,xxx_2,xxx_matchNr来得到对应值 ,方法同2 

  • 相关阅读:
    Java高并发学习笔记(四):volatile关键字
    Java高并发学习笔记(三):类加载
    Java高并发学习笔记(二):线程安全与ThreadGroup
    解决druid在OpenJDK11+Gradle中的依赖问题
    解决AUR无法正常升级WebStorm2021.1.1的问题
    论软件体系架构之质量属性
    以《淘宝网》为例,描绘质量属性的六个常见属性场景
    软件架构师如何工作
    泰坦尼克号数据分析
    当当网图书数据爬取和清洗
  • 原文地址:https://www.cnblogs.com/landhu/p/8805568.html
Copyright © 2011-2022 走看看