You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter如何将多请求响应数据存入同一CSV文件的后续列?

为CSV文件追加多列数据的JSR223脚本配置

你已经通过Get area请求的JSR223 Post Processor生成了含第一列area_1level的CSV文件,要给Get category和Get status请求配置脚本,将数据追加为第二、第三列,需按以下方式处理:

核心思路

由于要给已有CSV的每行添加新列数据,不能直接追加行,需先读取原CSV的所有行,将新请求返回的数据对应到每行末尾,再重新写入文件。注意:需确保三个请求返回的data数组行数一致,避免数据错位。


1. Get category请求的JSR223 Post Processor脚本

import groovy.json.JsonSlurper

String folderPath = "${root_folder}/Test_Data/J1/"
def csvFile = new File("${folderPath}/area_1level_alias_list.csv")

// 读取原CSV的所有行
def lines = csvFile.readLines()
if (lines.isEmpty()) {
    log.error("CSV文件为空,无法追加列")
    return
}

// 解析当前请求的JSON响应
def slurper = new JsonSlurper()
def response = slurper.parseText(prev.getResponseDataAsString())
def categoryArray = response.data

// 处理表头:添加第二列标题
lines[0] = lines[0] + ",category"

// 处理数据行:为每行追加category字段值
for (int i = 1; i < lines.size(); i++) {
    if (i-1 < categoryArray.size()) { // 避免数组越界
        def categoryAlias = categoryArray[i-1].alias // 假设取alias字段,和area逻辑一致,可按需调整
        lines[i] = lines[i] + "," + categoryAlias
    } else {
        lines[i] = lines[i] + "," // 无对应数据时留空
    }
}

// 将处理后的内容重新写入CSV
csvFile.write(lines.join("\n"))

2. Get status请求的JSR223 Post Processor脚本

import groovy.json.JsonSlurper

String folderPath = "${root_folder}/Test_Data/J1/"
def csvFile = new File("${folderPath}/area_1level_alias_list.csv")

// 读取原CSV的所有行
def lines = csvFile.readLines()
if (lines.isEmpty()) {
    log.error("CSV文件为空,无法追加列")
    return
}

// 解析当前请求的JSON响应
def slurper = new JsonSlurper()
def response = slurper.parseText(prev.getResponseDataAsString())
def statusArray = response.data

// 处理表头:添加第三列标题
lines[0] = lines[0] + ",status"

// 处理数据行:为每行追加status字段值
for (int i = 1; i < lines.size(); i++) {
    if (i-1 < statusArray.size()) { // 避免数组越界
        def statusAlias = statusArray[i-1].alias // 假设取alias字段,可按需调整
        lines[i] = lines[i] + "," + statusAlias
    } else {
        lines[i] = lines[i] + "," // 无对应数据时留空
    }
}

// 将处理后的内容重新写入CSV
csvFile.write(lines.join("\n"))

配置注意事项

  • 确保三个HTTP请求的执行顺序为:Get area → Get category → Get status,保证CSV文件先创建再依次追加列。
  • 脚本中的alias字段需根据实际JSON响应结构调整,替换为你需要提取的目标字段名。
  • 若某请求返回的数据行数少于原CSV行数,对应行的新列会留空;若行数更多,超出部分的数据会被忽略。

内容的提问来源于stack exchange,提问作者user22726736

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 04:31:05