JMeter 获取 response body 的数据

JMeter 获取 response body 的数据

 

位置:右键(HTTP Request) - Add - Post Processors - BeanShell PostProcessor

 

import net.minidev.json.JSONObject;
import net.minidev.json.JSONValue;
import net.minidev.json.JSONArray;
import java.util.ArrayList;
import java.util.Random;

jsonStr = prev.getResponseDataAsString();
JSONObject jsonobj = (JSONObject) JSONValue.parse(jsonStr);
if (jsonobj.get("respCode") == 0) {
    JSONArray data = (JSONArray) jsonobj.get("data");
    for (int i = 0; i < data.size(); i++) {
        JSONObject object = (JSONObject) data.get(i);
        loginName = vars.get("loginName");
        if (loginName.equals(object.get("loginName"))) {
            vars.put("userId", String.valueOf(object.get("userId")));
        }
    }
}

 

特别注意:使用 vars.get("name") 获取到的数据都是 String 类型;

如果不确定类型,都可以通过 Long.valueOf() , String.valueOf() 等进行转换;

如果是值比较,建议先在所属编码的编辑器中写好,再贴到 Jmeter Script 中。

 

如果使用 JSON Extractor 直接获取到的数据,在通过 ${num} 使用,则会是数据的原始类型;如:${num} == 1 ,这个是可行的。

位置:右键(HTTP Request) - Add - Post Processors - JSON Extractor

 

posted @ 2025-02-19 09:55  learcher  阅读(174)  评论(0)    收藏  举报