jmeter--提取响应正文的json数据

jmeter提取json数据 一

如果有这么一个json数据:

{
“employees”: [
{ “firstName”:”John” , “lastName”:”Doe” },
{ “firstName”:”Anna” , “lastName”:”Smith” },
{ “firstName”:”Peter” , “lastName”:”Jones” }
]
}

在json中,对象用花括号括起来’{}’,数组用方括号括起来’[]’,假如我们要取到第二个lastName的值,如果字典中取就是employees 的value是一个数组,数组索引1的lastName的value值 ,在python中取就是dict[‘employees’][1][‘lastName’]。

在jmeter中,对应请求返回的数据是json格式的,可以通过后置处理器的JSON Extractor去提取json格式的数据:$.employee[1].lastName,可以取到第二个lastName的值。

在接口测试中,如果需求提取上个接口的json返回数据中的某个值并传给下一个接口作为请求参数。可以通过这种方法去取到数据。
图片1
图片2

最后运行结果成功!
图片3

jmeter提取json数据二

还是上面的那组数据,假如提取数据的需求是这样的:根据firstName的值去取对应的lastName的值,保证他们是匹配的

最开始想到的是json extractor中用两个这样的表达式提取:$.employee[*].firstName;$.employee[*].lastName,但是这种取法取的不是匹配的。后来想了下,用下面这种方法就可以实现:
图片4
再新增一个json extractor ,在json path expressions填入$.data[*] 。备注:这个json数据是用的我自己的接口测试的。原有的另一个json extractor中在json path expressions输入框写成$.id;$.name,在jmeter variable输入框中填入da变量,并选中,表示前面json extractor提取的data列表某一组数据,并传给下面的json extractor中使用 ,如下图:
图片5

运行结果:
图片6

猜你喜欢

转载自blog.csdn.net/maybe_frank/article/details/81701888