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 

  • 相关阅读:
    012_py之证书过期监测及域名使用的py列表的并集差集交集
    一些java的书籍
    java之内的工具分享,附带下载链接,方便以后自己寻找
    javascript的 == 与 === 的区别
    论httpclient上传带参数【commons-httpclient和apache httpclient区别】
    java操作小技巧,遇到过的会一直更新,方便查找
    常用jsp include用法,三种include的区别
    mybatis中的#和$的区别
    单例模式
    jQuery获取Select选择的Text和 Value(转)用时比较方便寻找
  • 原文地址:https://www.cnblogs.com/landhu/p/8805568.html
Copyright © 2011-2022 走看看