1、基礎信息html
所用jmeter版本:jmeter4.0express
所記錄功能名稱:JSON Extractorjson
2、使用需求數組
在對返回結果較複雜且爲json結構的HTTP請求進行提取某一個值,以用做其餘接口使用或者用來斷言的等。數據結構
3、使用方法dom
一、添加步驟:選擇線程組中的HTTP請求——右鍵「添加」——後置處理器——JSON Extractor函數
圖示以下:測試
二、實例說明spa
這一過程主要說明如何去寫JSON Extractor匹配表達式以及如何去驗證本身寫的JSON Extractor是否正確線程
{爲了方便看,查看json的目錄層級用抓包的結果展現,jmeter返回的不能收縮,不方便查看}
√、咱們使用JSON Extractor匹配第一層級內容message的值(爲了方便查看把不須要的層級給收起來了 )。 抓包查看返回的結構以下:
使用jmeter的查看結構樹中的 json path expression能夠測試本身所寫的JSON Extractor是否正常。測試結果以下:
√、咱們使用JSON Extractor匹配第二層級內容total的值(爲了方便查看把不須要的層級給收起來了 )。 抓包查看返回的結構以下:
使用jmeter的查看結構樹中的 json path expression能夠測試本身所寫的JSON Extractor是否正常。測試結果以下:
√、咱們使用JSON Extractor匹配第三層級內容id的值(爲了方便查看把不須要的層級給收起來了 )。 抓包查看返回的結構以下:
使用jmeter的查看結構樹中的 json path expression能夠測試本身所寫的JSON Extractor是否正常。測試結果以下:
注:關於用到的一個[0]會在後邊說明。
√、關於匹配一個數組的內容的用法。
差很少了,不一樣層級的匹配實例說明的都已經說的能夠了,照葫蘆畫瓢應該能夠學會一些 。可是這個過程當中還有一些須要說明的東西后邊一塊兒說明~~~。
4、要學會用
前一個過程說明了如何去寫JSON Extractor匹配表達式以及如何去驗證本身寫的JSON Extractor是否正確,接下來這一個過程主要記如何去使用寫的JSON Extractor匹配表達式。
添加了兩個HTTP請求,目錄以下:
實例:獲取待出庫單列表接口和查看待出庫單詳情接口,須要實現的過程是:先獲取待出庫單列表,而後使用JSON Extractor獲取列表中其中一個stockOutId的值而後在第二個接口中去使用,並返回內容。
再來看JSON Extractor中的內容,其實就是直接把在json path expression測試驗證正確的表達式複製到這裏來就好了。
這咋忽然感受沒啥可說得了呢,如何寫已經描述了,如何用也圖示了。
把幾個參數標註一下吧
names of created Variable :保存的變量名,後面使用${變量名}引用,如:${stockOutId}
JSON Path expressions:上一步中調試經過的json path表達式,若是:$.data.list[0].stockOutId
Match No.(0 for Random):匹配數字(0表明隨機,1表明第一個,-1表明全部)
Default Values:找不到時默認值,通常設置爲NOT FOUND
Compute concatenation var(suffix_ALL):是否統計全部,即將匹配到的全部值保存,名爲「變量名_ALL」,使用場景須要獲取的值有多個,後面須要對這一組數據進行操做。
5、特別關注
一、json串 []表示對象組成的數組,{}表示對象
二、若是須要同時匹配多個值,能夠如圖設置
三、在第二步中list[0]的用法說明:[0] 表示匹配第一個值,[1] 表示匹配第二個值,[*] 表示匹配全部的值,如圖:
四、JSON Extractor主要用於匹配返回數據結構爲json的參數提取
關於須要瞭解函數助手的用法的能夠到這裏:http://www.javashuo.com/article/p-xezgfvdg-hq.html
完事,先看吧!有啥疑問或者建議歡迎留言,我在補充,謝謝嘍!