場景分析:有時候我們的業務需要傳送多次請求,每次請求都是上下相互依賴,也就是說序列執行,每個請求需要上乙個請求的部分資料返回作為本次請求的引數,該如何在jmeter中實現呢?
例如:登入之後的響應結果中會返回使用者id、token資訊; 而更新暱稱需要傳參member_id、且需要請求頭傳token;也就是我們要想辦法從「登入」的響應結果中獲取到id、token資訊,再去傳給「更新暱稱」請求。因為返回資料格式是json,所以我們用json提取器來實現。當然也可以用正規表示式提取器,只是現在用的不多。
下面用乙個例子來簡單試用一下,例子比較粗糙簡陋,但是關鍵的地方都很確定,因此絕大部分場景使用沒有問題。
看下返回資料
json提取器說明
names of created variables:接收值的變數名,自定義,多個變數用分號分隔
jsonpathexpression:json path表示式,也是用分號分隔
matchno.(0 for random):0表示隨機;n取第幾個匹配值;-1匹配所有。若只要獲取到匹配的第乙個值,則填寫1
compute concatenation var(suffix_all):如果找到許多結果,則外掛程式將使用' , '分隔符將它們連線起來,並將其儲存在名為_all的var中
defaultvalues:預設值,匹配不到值的時候取該值,可寫error。
那麼接下來就是如何寫表示式了:
json path表示式怎麼寫?例如我要獲取id,可寫$.data.id,$表示根元素,然後一級級屬性往下去找,先找到data,再往下子節點找到id;也可寫$..id,直接從根元素去遞迴查詢到id;獲取其他引數同理。詳細的可檢視這篇文章jsonpath 運算子使用
注意:每個之間都是分號隔開
為了檢查通過json提取器是否正常獲取到值,可新增debug postprocessor來檢查,注意正常跑用例時刪除或禁用它。
已經成功的獲取到了資料,接下來就是在下乙個請求中使用
新增第二個http請求,並在引數裡面使用變數佔位符,當然也可以用在請求頭配置中
成功獲取到資料,並請求了介面,大功告成。
例子粗糙,但是內容確實是完整的,希望對你們有用。
jmeter之 json提取器
1.json提取器 json extractor後置處理器用在返回格式為json的http請求中,用來獲取返回的json中的某個值。並儲存成變數供後面的請求進行呼叫或斷言等。2 右鍵點選 執行緒組 新增 後置處理器 json extractor 3 正規表示式提取面板介紹 1 names of cr...
Jmeter之JSON提取器應用
在介面測試中有乙個這樣的場景 登入之後,需要進行暱稱修改,怎麼實現?首先我們分別看下登入 暱稱修改的介面說明 以上業務中補充一點,暱稱修改,還需要新增請求頭authorization傳登入獲取的token值。分析 登入之後的響應結果中會返回使用者id token資訊 而更新暱稱需要傳參member ...
Jmeter後置處理器之Json提取器
如今越來越多的系統採用json格式作為資料交換格式,即伺服器響應回來的文字會大量的json格式。如果我們要對伺服器響應的json資料進行加工處理的話,可以使用傳統的正規表示式提取器,但是在很多場合,使用json提取器進行提取會更加快速 準確。1.jsonpath語法 基本操作符 表示根節點 示例 表...