Jmeter之Json表达式关联

        Jmeter使用中,通常用的最多的是正则表达式和Xpath表达式,但是现在大多数网站都用的Json返回数据,而且数据还特长的那种,作为合格的测试人员也要适应技术潮流发展,下面介绍利用Json Extractor进行Json表达式关键字信息提取并传递变量。

Variable names            : 名称 
JSONPath Expression  :JSON表达式 
Match Numbers           :0代表随机,1代表第1个,-1代表全部
Default Value               :未取到值的时候默认值 

Jsonpath写法:

{
	"reason":"查询成功",
	"result":[
		{
			"id":"1",
			"province":"安徽"
		},
		{
			"id":"2",
			"province":"澳门"
		},
		{
			"id":"3",
			"province":"北京"
		},
		{
			"id":"4",
			"province":"福建"
		},
		{
			"id":"34",
			"province":"重庆"
		}
	],
	"error_code":0
}

            $..id:列出所有省份

 

               $..result[0].province:提取result中第一个list里面的province

           

                $..[?(@.province=='北京')]:筛选出province为北京的所有list数据

 

                $.result[:2].province:筛选前两条数据

 

PS:注意观察中括号里的符号

$.result[:2].province  是筛选前两条数据

$.result[2].province   是排除前两条数据

$.result[-2].province  是排除后两条数据

总结:

1、冒号在前

      :index  正序取值,取数为index(正数第一条)

      :-index 倒序过滤,取数为index(倒数第一条)

2、没有冒号

       index 表示顺序取index+1的值(取第二条数据)

3、冒号在后

       index: 顺序过滤,取数为index(正序过滤第一条数据)

       -index:倒序取值,取数为index(倒序取一条数据)

$..[?(@.id=="63")].["title","tags","imtro"]:匹配id=63下title、tags、imtro的数据

注:JSON Extractor使用json path表达式匹配,可以一次取多个变量值。$表示响应的根对象。取子对象或对象的属性用.  取数组里的对象用[],数组索引从0开始 

 

1:添加一个JSON Extractor表达式,分号分隔多个参数名;分号分隔多个json表达式;分号分隔多个匹配数字;分号分隔多个默认值(必填)

2:所有的个数一定要匹配,任一个不匹配该请求都不会在提取成功

posted @ 2019-07-24 10:22  Orange_ysen  阅读(679)  评论(0编辑  收藏  举报