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

JMeter中CSV存储长ID及测试前后文件管理问题咨询

JMeter长ID存储与CSV文件管理解决方案

问题1:完整存储并使用长ID

长ID显示不完整是因为JSON Extractor处理超大整数时,会将其转为Java Double类型,导致精度丢失或显示为科学计数法。改用JSR223 PostProcessor直接解析JSON响应可避免该问题,步骤如下:

  • 移除原有JSON Extractor,给目标GET请求添加JSR223 PostProcessor
  • 使用Groovy的JsonSlurper解析响应,以字符串形式提取并保存长ID,代码示例:
import groovy.json.JsonSlurper
import org.apache.commons.io.FileUtils

// 解析原始响应JSON
def slurper = new JsonSlurper()
def responseJson = slurper.parseText(prev.getResponseDataAsString())

// 按条件筛选并提取id(转为字符串保留完整格式)
def petIds = responseJson.depthFirst().findAll { it.name == 'doggie' }.collect { it.id.toString() }

// 存储到JMeter变量供后续采样器使用
vars.put("PET_ID_matchNr", petIds.size().toString())
petIds.eachWithIndex { id, index ->
    vars.put("PET_ID_${index + 1}", id)
}

// 写入CSV文件(直接用字符串写入,无类型转换问题)
def filePath = "C:/Users/M Rakesh/Downloads/JMETER/apache-jmeter-5.6.2/bin/test_csv_files/results.csv"
def file = new File(filePath)
petIds.each { id ->
    FileUtils.writeStringToFile(file, id + System.getProperty("line.separator"), true)
}

后续采样器直接调用${PET_ID_1}等变量即可,变量为完整字符串格式的长ID,无精度损失。

问题2:测试前后的CSV文件管理

测试前重建CSV(清空或创建新文件)

在测试计划根节点添加JSR223 PreProcessor,执行代码创建空文件(覆盖原有内容):

def filePath = "C:/Users/M Rakesh/Downloads/JMETER/apache-jmeter-5.6.2/bin/test_csv_files/results.csv"
def file = new File(filePath)

// 自动创建父目录,清空文件内容(不存在则创建空文件)
file.parentFile.mkdirs()
file.text = ""

测试后清理数据

在测试计划根节点添加JSR223 Listener,勾选"Run after test"选项,执行以下代码二选一:

  • 删除整个文件:
def filePath = "C:/Users/M Rakesh/Downloads/JMETER/apache-jmeter-5.6.2/bin/test_csv_files/results.csv"
def file = new File(filePath)
if (file.exists()) {
    file.delete()
}
  • 仅清空内容(保留文件):
def filePath = "C:/Users/M Rakesh/Downloads/JMETER/apache-jmeter-5.6.2/bin/test_csv_files/results.csv"
def file = new File(filePath)
if (file.exists()) {
    file.text = ""
}

分布式测试需确保文件路径在所有节点可访问,或各节点处理本地文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:03:16