jmeter中JSON Extractor用法


一、基礎信息

所用jmeter版本:jmeter4.0

所記錄功能名稱:JSON Extractor

二、使用需求

在對返回結果較復雜且為json結構的HTTP請求進行提取某一個值,以用作其他接口使用或者用來斷言的等。

三、使用方法

1、添加步驟:選擇線程組中的HTTP請求——右鍵“添加”——后置處理器——JSON Extractor

圖示如下:

2、實例說明

這一過程主要說明如何去寫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]會在后邊說明。

√、關於匹配一個數組的內容的用法。

差不多了,不同層級的匹配實例說明的都已經說的可以了,照葫蘆畫瓢應該可以學會一些 。但是這個過程中還有一些需要說明的東西后邊一起說明~~~。

四、要學會用

前一個過程說明了如何去寫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”,使用場景需要獲取的值有多個,后面需要對這一組數據進行操作。

五、特別關注

1、json串 []表示對象組成的數組,{}表示對象

2、如果需要同時匹配多個值,可以如圖設置

3、在第二步中list[0]的用法說明:[0] 表示匹配第一個值,[1] 表示匹配第二個值,[*] 表示匹配所有的值,如圖:

4、JSON Extractor主要用於匹配返回數據結構為json的參數提取

 關於需要了解函數助手的用法的可以到這里:https://www.cnblogs.com/Zhan-W/p/10197677.html

完事,先看吧!有啥疑問或者建議歡迎留言,我在補充,謝謝嘍!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM