1. 程式人生 > >jmeter--提取響應正文的json資料

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