侧边栏壁纸
博主头像
一朵云的博客博主等级

拥抱生活,向阳而生。

  • 累计撰写 67 篇文章
  • 累计创建 25 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

JMeter -- JsonData 提取

一朵云
2022-09-07 / 0 评论 / 0 点赞 / 19 阅读 / 3055 字

背景:

鉴于接口传输过程中,我们经常会用到 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.")
}

0

评论区