天天看點

Jmeter随筆:Jmeter之JSON Extractor

Jmeter後置處理器JSON Extractor

1、選擇路徑:對應的請求下 >  添加 > 後置處理器 > JSON Extractor

Jmeter随筆:Jmeter之JSON Extractor

2、界面展示

Jmeter随筆:Jmeter之JSON Extractor

各個字面意義:

1、Variable names: 自定義的參數名稱,引用的時候用${}格式

2、JSON Path expressions: json表達式,根據表達式擷取到對應的結果;提取式:$.+參數

3、Match Numbers:比對數字(0代表随機,1代表第一個,-1代表所有)

4、Compute concatenation var(suffix_ALL):是否統計所有,即将比對到的所有值都儲存,名為“變量名_ALL”,使用場景需要擷取的值有多個,後面需要對這一組資料進行操作;

5、Default Values:找不到返的預設值,

提取相關例子:

{

    "msg":null,

    "rc":0,

    "data":

    {

        "pageSize":10,

        "pageNo":1,

        "records":18,

        "total":2,

        "resultList":

        [

            {

                "id":139,

                "realName":"測試144",

                "mobilePhone":"13141414141",

                "sex":"女",

                "age":10,

                "maritalStatus":"未婚",

                "identity":"513326200910276188",

                "contactType":60,

                "contactTypeName":"類别3",

                "companyId":12,

                "companyName":"華為1",

                "tag":"",

                "remark":"test備注",

                "createdAt":"2019-08-13 16:39:38",

                "bindUser":

                [

3、通過JSON Path Expression找到需要的json值

檢視結果樹中切換類型為JSON Path Tester

要擷取對應的id值,在JSON Path Expression中輸入表達是,并且點選Test得到對應的結果

Jmeter随筆:Jmeter之JSON Extractor

json表達式寫法:

擷取其中第一個id值: $.data.resultList[0].id

分析

首先分析json提取格式是【$.】後面跟參數,id在resultList中,resultList在data中,但是在resultList中有多層,resultList是數組,取第一個下标就是[0],即json表達式是$.data.resultList[0].id。

二、提取多個參數:

1、Variable names: 自定義的參數名稱;多個變量用多個自定義變量,用英文分号分開;

2、JSON Path expressions: json表達式,根據表達式擷取到對應的結果,多個的情況下用英文分号隔開

3、Match Numbers: 提取多個參數,同樣用多個值,用英文分号隔開

4、Compute concatenation var(suffix_ALL):是否統計所有,即将比對到的所有值都儲存,名為“變量名_ALL”,使用場景需要擷取的值有多個,後面需要對這一組資料進行操作;

5、Default Values: 提取多個參數,同樣用多個值,用英文分号隔開

Jmeter随筆:Jmeter之JSON Extractor

使用場景:

新增客戶管理後,要驗證新增重複項系統處理,并且驗證删除功能

即同時需要響應結果中的  使用者id和身份證号

三、擷取所有值

有時候需要取一個清單中的最大值,則可以使用Compute concatenation var(suffix_ALL)工具;生成的是以逗号隔開的

配置頁面:

Jmeter随筆:Jmeter之JSON Extractor

通過JSON Path Expression找到需要的json值

Jmeter随筆:Jmeter之JSON Extractor

擷取其最大值:

Jmeter随筆:Jmeter之JSON Extractor

使用的時候,用${max_id}去使用

參考例子:

var base_versions=vars.get("cuntomer_id_2_ALL");

var version_list=base_versions.split(",");

var maxInNumbers = Math.max.apply(Math, version_list);

vars.put("max_id",maxInNumbers);

繼續閱讀