背景:
鉴于接口传输过程中,我们经常会用到 Json字符串 作为传输参数,所以这里我记录一下JMeter中,JsonData 类型参数怎么传输。
方法:
1、Beanshell脚本(直接填写)
import org.json.JSONObject;
String jsonString = "{\"channel_code\": \"26593\", \"device_id\": \"BE3C4A12CB7B91F8888359549A7A63B1\", \"uid\": \"200126804\", \"game_role_id\": \"1121122\", \"screen_orientation\":\"1\"}";
if (jsonString != null) {
// 使用 JSONObject 解析 JSON 字符串
JSONObject jsonObject = new JSONObject(jsonString);
String keyValue = jsonObject.getString("channel_code");
log.info("The value of channel_code is: "+keyValue);
} else {
log.error("JSON string variable 'jsonString' not found.");
2、Beanshell脚本(从csv中提取)
①、修改分隔符,使用英文逗号会和json字符串中的英文逗号起冲突。
②、csv文件中的分隔符用自定义的“;”
③、Beanshell脚本
import org.json.JSONObject;
String jsonString = vars.get("json_data");
if (jsonString != null) {
// 使用 JSONObject 解析 JSON 字符串
JSONObject jsonObject = new JSONObject(jsonString);
String keyValue = jsonObject.getString("channel_code");
log.info("The value of channel_code is: "+keyValue);
} else {
log.error("JSON string variable 'jsonString' not found.");
}
3、JSR223 脚本(从csv中提取,并基于 groovy 语言)
csv的处理和第二点一样,这里忽略。
import groovy.json.JsonSlurper
String jsonData = vars.get("json_data")
if (jsonData != null) {
try {
// 使用JsonSlurper解析JSON字符串
def jsonParsed = new JsonSlurper().parseText(jsonData)
// 打印解析后的JSON对象
log.info("Parsed JSON object: " + jsonParsed)
// 示例:获取JSON对象中的某个值
String value = jsonParsed.channel_code
log.info("Value of keyName is: " + value)
} catch (Exception e) {
log.error("Error parsing JSON string", e)
}
} else {
log.error("Failed to read JSON data from CSV.")
}
评论区