使用BeanShell后处理器时清空csv文件
我正在尝试使用BeanShell后处理器将变量保存到csv文件中,代码:使用BeanShell后处理器时清空csv文件,csv,testing,jmeter,Csv,Testing,Jmeter,我正在尝试使用BeanShell后处理器将变量保存到csv文件中,代码: String id = "${userID}"; FileWriter fstream = new FileWriter("JmeterBean.csv",true); fstream.write(id+"\n"); fstream.close(); 测试计划: HTTP请求GetUsersById=>返回所有ID Json提取器=>来自我的响应 {"@class":"com.test.dto.userDTO",
String id = "${userID}";
FileWriter fstream = new FileWriter("JmeterBean.csv",true);
fstream.write(id+"\n");
fstream.close();
测试计划:
{"@class":"com.test.dto.userDTO",
"author":"John",
"id":"89BC331D723F", },
{"@class":"com.test.dto.userDTO",
"author":"Alex",
"id":"FTH7JBDRF567",
}
- 变量名称:userID
- JSON路径表达式:
$.[?(@@class=='com.test.dto.userDTO')].id
- 匹配号码:
-1
String id = vars.get("userID");
变量-(JMeterVariables)-提供对变量的读/写访问权限:
vars.get(键)代码>
并且更喜欢使用JSR223后处理器
而不是Beanshell后处理器
String id = vars.get("userID");
FileWriter fstream = new FileWriter("JmeterBean.csv",true);
fstream.write(id+"\n");
fstream.close();
我这样做了,但我在csv文件中得到了与null
相同的结果:
如果JSON提取器产生超过1个匹配项,那么您没有userID
变量,您将有如下内容:
userID_1=89BC331D723F
userID_2=FTH7JBDRF567
userID_matchNr=2
因此,我建议使用组合对JSON提取器生成的内容进行双重检查
假设以上所有内容都添加(确保它位于JSON提取器之后),并使用以下代码:
1.upto(vars.get('userID_matchNr') as int, { number ->
new File('JmeterBean.csv') << vars.get('userID_' + number) << System.getProperty('line.separator')
})
1.upto(vars.get('userID_matchNr')作为int,{number->
新文件('JmeterBean.csv')可能您没有设置userID
,显示如何定义/设置变量我添加了一个调试采样器,它显示:“userID_1=89BC331D723F”和“userID_2=FTH7JBDRF567”,所以使用userID_1
,但在这种情况下,它将只编写第一个用户,然后通过此链接找到解决方案()这不是答案,应该是对你的问题的编辑