Jmeter之JSON提取器應用

2022-07-05 12:36:14 字數 3009 閱讀 9509

**:

在介面測試中有乙個這樣的場景:登入之後,需要進行暱稱修改,怎麼實現?

首先我們分別看下登入、暱稱修改的介面說明:

以上業務中補充一點,暱稱修改,還需要新增請求頭authorization傳登入獲取的token值。

分析:登入之後的響應結果中會返回使用者id、token資訊; 而更新暱稱需要傳參member_id、且需要請求頭傳token;也就是我們要想辦法從「登入」的響應結果中獲取到id、token資訊,再去傳給「更新暱稱」請求。因為返回資料格式是json,所以我們用json提取器來實現。用正規表示式提取器也可以,大家可參見我之前寫的文章。

一、json提取器設定多個變數獲取多個資料

1、先新增好登入請求,執行下檢視登入的響應結果

調整下檢視結果方式,可較清晰看到響應結果中的id、token資訊

json path表示式怎麼寫?例如我要獲取id,可寫$.data.id,$表示根元素,然後一級級屬性往下去找,先找到data,再往下子節點找到id;也可寫$..id,直接從根元素去遞迴查詢到id;獲取token同理。詳細的可檢視這篇文章

2、右鍵登入請求-->後置處理器-->新增「json提取器」。

json提取器說明:

names of created variables:接收值的變數名,自定義,多個變數用分號分隔 

jsonpathexpressionjson path表示式,也是用分號分隔 

matchno.(0 for random)0表示隨機;n取第幾個匹配值;-1匹配所有。若只要獲取到匹配的第乙個值,則填寫1

compute concatenation var(suffix_all):如果找到許多結果,則外掛程式將使用' , '分隔符將它們連線起來,並將其儲存在名為_all的var中

defaultvalues:預設值,匹配不到值的時候取該值,可寫error。

為了檢查通過json提取器是否正常獲取到值,可新增debug postprocessor來檢查,注意正常跑用例時刪除或禁用它。

對比登入返回的結果,能看到已經正常獲取到id,token。

3、新增「修改暱稱」請求,將json提取器獲取到的值,進行變數引用。執行指令碼,更改暱稱成功。

二、json提取器設定1個變數獲取多個資料

我們也會碰到獲取乙個變數,但結果是多個資料的情況。

1、例如「獲取使用者列表」,先來看下「獲取使用者列表」的響應結果。

如果想要獲取到這裡所有的使用者id,json路徑表示式怎麼寫呢?$..id或者$.data[*].id

2、新增json提取器,獲取所有使用者id資訊。

新增debug postprocessor來除錯用,正常跑用例刪除或禁用它。可檢視到獲取到了所有使用者id值。通過id_1,....id_22可得到每乙個id。

3、將獲取到每乙個使用者id迴圈進行「使用者流水記錄」檢視結果。

1)新增迴圈控制器,設定迴圈次數。

2)在迴圈控制器之下新增「使用者流水記錄」請求,並做以下設定。

因為要把json提取器中匹配到的id_1,....id_22迴圈傳遞給「使用者流水記錄」,

__counter為jmeter自帶的乙個計數函式,$引用這個函式,每執行1次+1,從1開始;

id_$執行第1次id_1,執行第2次id_2,以此類推,直到執行到迴圈次數id_22

__v為jmeter自帶的乙個巢狀變數函式,執行第1次id_$為id_1,$,)}則為$,值80;以此類推,一直迴圈到$

以上為jmeter工具欄tools-->函式助手對話方塊介面,可以去選擇幫助檢視對應函式的功能說明。

3)執行後,可檢視到結果

jmeter之 json提取器

1.json提取器 json extractor後置處理器用在返回格式為json的http請求中,用來獲取返回的json中的某個值。並儲存成變數供後面的請求進行呼叫或斷言等。2 右鍵點選 執行緒組 新增 後置處理器 json extractor 3 正規表示式提取面板介紹 1 names of cr...

Jmeter之JSON提取器應用

場景分析 有時候我們的業務需要傳送多次請求,每次請求都是上下相互依賴,也就是說序列執行,每個請求需要上乙個請求的部分資料返回作為本次請求的引數,該如何在jmeter中實現呢?例如 登入之後的響應結果中會返回使用者id token資訊 而更新暱稱需要傳參member id 且需要請求頭傳token 也...

Jmeter後置處理器之Json提取器

如今越來越多的系統採用json格式作為資料交換格式,即伺服器響應回來的文字會大量的json格式。如果我們要對伺服器響應的json資料進行加工處理的話,可以使用傳統的正規表示式提取器,但是在很多場合,使用json提取器進行提取會更加快速 準確。1.jsonpath語法 基本操作符 表示根節點 示例 表...