Jmeter接口自動化-5-提取JSON響應中數組的長度


json響應如下:

{
    "code":0,
    "data":{
        "data":[
            {
                "amount":50000,
                "appointmentInfoState":"00",
                "appointmentState":"",
                "appointmentTime":""
                
            },
            {
                "amount":50000,
                "appointmentInfoState":"00",
                "appointmentState":"",
                "appointmentTime":"",
                "auditTime":"審核耗時15小時 11分鍾",
                "createTime":"2019-12-05 18:24:56"
                
            },
            {
                "amount":50000,
                "appointmentInfoState":"00",
                "appointmentState":"",
                "appointmentTime":"",
                "auditTime":"審核耗時15小時 54分鍾"
            }
            {
                "amount":50000,
                "appointmentInfoState":"00",
                "appointmentState":"",
                "appointmentTime":""
                
            },
            {
                "amount":300000,
                "appointmentInfoState":"00",
                "appointmentState":"",
                "appointmentTime":"",
                "auditTime":"審核耗時209小時 44分鍾",
                "createTime":"2019-11-27 15:51:44"
            },
            {
                "amount":300000,
                "appointmentInfoState":"00",
                "appointmentState":"",
                "appointmentTime":"",
                "auditTime":"審核耗時1917小時 0分鍾"
            },
            {
                "amount":300000,
                "appointmentInfoState":"00",
                "appointmentState":"",
                "appointmentTime":"",
                "auditTime":"審核耗時1917小時 56分鍾",
                "createTime":"2019-09-17 11:39:22"
            },
            {
                "amount":300000,
                "appointmentInfoState":"00",
                "appointmentState":"",
                "appointmentTime":"",
                "auditTime":"審核耗時1984小時 54分鍾",
                "createTime":"2019-09-14 16:41:58"
            },
            {
                "amount":300000,
                "appointmentInfoState":"00",
                "appointmentState":"",
                "appointmentTime":"",
                "auditTime":"審核耗時1989小時 53分鍾",
                "createTime":"2019-09-14 11:42:29"
            },
            {
                "amount":300000,
                "appointmentInfoState":"00",
                "appointmentState":"",
                "appointmentTime":"",
                "auditTime":"審核耗時2369小時 45分鍾",
                "createTime":"2019-08-29 15:50:46"
            }
        ]
    },
    "mask":"c7d2f67d-a5e8-45a3-8f4b-0149c4a7e434",
    "msg":"success",
    "timestamp":1575596175
}

取出data對象下data數據的長度

1、首先導入alibaba的fastjson-1.2.59.jar包,放置lib\ext下,版本號自選

2、在接口之后添加BeanShell PostProcessor工具

編寫代碼如下:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;


String jsonContent = prev.getResponseDataAsString();

JSONObject response = JSON.parseObject(jsonContent);
JSONArray dataList = response.getJSONObject("data").getJSONArray("data");
int length = dataList.size();

vars.put("m_length",length.toString());

注意:一下這樣寫是錯誤的

vars.put("m_length",length);

報錯信息如下:

Error in method invocation: Method put( java.lang.String, int ) not found in class'org.apache.jmeter.threads.JMeterVariables'

沒有找到put( Java.lang.String, int )這個方法。此處put的value應該是String

所以需要將values轉換為String類型

 

最后正確代碼如下:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;


String jsonContent = prev.getResponseDataAsString();

JSONObject response = JSON.parseObject(jsonContent);
JSONArray dataList = response.getJSONObject("data").getJSONArray("data");
int length = dataList.size();

vars.put("m_length",length.toString());

log.info("m_length=${m_length}");

 


免責聲明!

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



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