如何编写jmeter地图测试用例场景输入和输出结果输入是csv文件输出也应该是csv文件

时间:2018-04-17 00:50:11

标签: jmeter

我需要将我的测试用例映射到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问题中

1 个答案:

答案 0 :(得分:0)

我不建议使用基于Beanshell的方法,就好像多个线程(虚拟用户)将写入同一个文件一样,结果将是不可预测的,并且在您创建race condition时可能会出错

最好的选择是直接将变量添加到.jtl结果文件中。要做到这一点:

  1. 将下一行添加到 user.properties 文件(位于JMeter安装的" bin"文件夹中

    sample_variables=ScenarioName,C_EventName,C_EventType,C_AreaName,C_AreaType
    
  2. 重新启动JMeter以获取更改
  3. 下次你run your JMeter test in command-line non-GUI mode喜欢:

    jmeter -n -t test.jmx -l result.jtl
    

    生成的.jtl文件将有5个额外的列,用于保存每个请求的上述变量的值。

  4. 参考文献: