jmeter - Jmeter 读取 CSV 文件返回写在上面之后
问题描述
我创建了两个 CSV 配置文件,一个用于税率,另一个用于描述。首先使用我在 JSR223 PostProcessor 中编写的代码编写税率 CSV。
temp_tax = new FileOutputStream("temp_tax_rate.csv", true);
file = new PrintStream(temp_tax);
String tax_rate = source[parent]["tax_rate"]
file.println(tax_rate+","+tax_rate+","+tax_rate)
file.close();
temp_tax.close();`
然后将另一个 JSR223 PostProcessor 写入描述 CSV
def input_data(webSite,productClass,cityOrTown,stateOrProvince,postalCode,final_tax-1,final_tax-2,final_tax-3,taxable_amount-1,taxable_amount-2,taxable_amount-3,tax_amount-1,tax_amount-2,tax_amount-3)
{
temp_data = new FileOutputStream("Tax_Description_D1_Non-Reseller.csv", true);
file = new PrintStream(temp_data);
file.println(webSite+","+productClass+","+cityOrTown+","+stateOrProvince+","+postalCode+","
+final_tax-1+","+final_tax-2+","+final_tax-3+","
+taxable_amount-1+","+taxable_amount-2+","+taxable_amount-3+","
+tax_amount-1+","+tax_amount-2+","+tax_amount-3);
file.close();
temp_data.close();
}
在写入税率 csv 后,描述后处理器还需要从 CSV 配置中调用 tax_rate 变量来进行一些计算,但每次调用它都会返回一个错误,我记录了
2021-08-20 17:02:51,208 INFO o.a.j.e.J.JSR223 PostProcessor for Description: Tax Rate<EOF>
我的猜测是,描述后处理器仍在查看过时的税率 csv,其中尚未写入任何内容,而不是其书面版本。这是我当前的项目文件结构
解决方案
根据CSV 数据集配置文档,您的猜测是错误的:
在每次测试迭代开始时读取行。文件名和模式在第一次迭代中被解析。
如果您在运行时更新 CSV 文件并想要评估变量,您需要等待下一次迭代或考虑使用__CSVRead() 函数或读取 Groovy 中的行。
此外,您的方法仅适用于单个线程,如果您使用 2 个以上的虚拟用户运行测试,您将遇到竞争条件,并且文件将包含损坏的数据,因此可能值得一看,即灵活文件编写器
推荐阅读
- android - 如何将 Kivy 应用部署到 Google App Store?
- python - 如何调整或清除混淆矩阵的图像
- swift - 如何使用多个 xcconfigs 构建和嵌入正确的应用程序扩展?
- ebay-api - 如何在 eBay 上找到产品的商品 ID?
- java - 请求分派后未调用 Spring 拦截器
- windows - 创建一个我的自定义对象数组 Powershell
- java - 单击按钮在默认 pdf 查看器应用程序中打开外部存储中的 pdf 文件
- c++ - C ++拆分字符串函数给出了意外的输出
- javascript - 错误类型错误:无法读取未定义的属性“即时”,ngx-translate 角度打字稿
- c++ - c++ 参数作为 const T 与 const T&