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

如何在JMeter的JSR223监听器中将两个变量值写入CSV两列

修复CSV文件两列分存变量的问题

原代码的问题是将两个变量分别写入独立行,导致所有值都挤在CSV的同一列。要实现按变量分存两列,需将同一组的两个变量放在同一行,用CSV列分隔符(通常为逗号,)分隔后再换行。

修改后的代码如下:

import org.apache.commons.io.FileUtils
import java.text.SimpleDateFormat;

// 获取匹配结果总数
def resultCount = vars.get("AppObjectName_matchNr")
log.warn '匹配总数:' + resultCount

// 生成带时间戳的唯一文件名
String fileSuffix = new SimpleDateFormat("ddMMyyyyHHmm").format(new Date())
File f = new File("results_Kr"+fileSuffix+".csv")

// 可选:写入CSV表头(方便识别列含义,不需要可删除此行)
FileUtils.writeStringToFile(f, "AppObjectName,QueryName" + System.getProperty("line.separator"), true)

for (int i=1; i<=resultCount.toInteger(); i++) {
    // 获取每组对应的两个变量值
    def records = vars.get("AppObjectName_" + i)
    def query = vars.get("QueryName_" + i)
    
    // 将两个变量用逗号拼接为同一行,写入文件
    String line = "${records},${query}" + System.getProperty("line.separator")
    FileUtils.writeStringToFile(f, line, true)
}

关键修改说明:

  • 合并原代码中两次独立的文件写入操作,将records和query拼接为同一行内容后写入,实现两列分隔。
  • 可选添加了CSV表头行,便于后续查看时识别列对应的数据含义。
  • 变量名Query改为小写query,符合Groovy代码命名规范(非强制,但更易读)。

如果变量值中包含逗号、双引号等特殊字符,建议用双引号包裹每个字段,避免CSV解析出错,修改后的行拼接代码如下:

String line = "\"${records}\",\"${query}\"" + System.getProperty("line.separator")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:22:46