我需要将我的测试用例映射到csv文件中的输入数据,并将其与rest响应进行比较,并在Jmeter中生成具有该特定测试场景的响应csv文件。 所以我提供deviceID作为输入并验证json响应并将其写入csv文件。对于单次出现,我可以得到值,以及我可以在响应csv文件中标记我的测试用例。但是当我尝试使用多个测试用例的多个输入时,我的响应出现了返回最后一个值。喜欢: 使用No Ticket April16PM Hurricane Event验证县ETR
测试用例设备ID执行 验证活动事件40122480是否 验证是否有效设备ID 277136436是 使用No Ticket 268698851验证City ETR 使用No Ticket 18515907验证县ETR可用
bean shell代码是:
scenario = vars.get("ScenarioName");
eventname = vars.get("C_EventName");
eventtype = vars.get("C_EventType");
areaName = vars.get("C_AreaName");
areaType = vars.get("C_AreaType");
f = new FileOutputStream("C:\\RestService\\Result.csv", true); //specify true if you want to overwrite file. Keep blank otherwise.
p = new Print`enter code here`Stream(f);
this.interpreter.setOut(p);
print( scenario + ", " + eventname + ", " + eventtype + ", " + areaName + ", " + areaType);
f.close();
我已将线程数增加到4但循环计数为1。
你能帮帮我吗?在这个JMeter问题中答案 0 :(得分:0)
我不建议使用基于Beanshell的方法,就好像多个线程(虚拟用户)将写入同一个文件一样,结果将是不可预测的,并且在您创建race condition时可能会出错
最好的选择是直接将变量添加到.jtl结果文件中。要做到这一点:
将下一行添加到 user.properties 文件(位于JMeter安装的" bin"文件夹中
sample_variables=ScenarioName,C_EventName,C_EventType,C_AreaName,C_AreaType
下次你run your JMeter test in command-line non-GUI mode喜欢:
jmeter -n -t test.jmx -l result.jtl
生成的.jtl文件将有5个额外的列,用于保存每个请求的上述变量的值。
参考文献: