JMeter - 指定CSV行故障

时间:2015-02-12 14:22:16

标签: csv jmeter

在JMeter中,我运行的脚本使用.CSV文件输入数据以及验证结果。它工作正常,但我无法弄清楚如何判断.CSV的哪一行/哪一行导致了个别故障。有没有办法做到这一点?

某种示例场景(并非特定于我正在做的事情,但类似): .CSV文件的每一行都包含一个数学方程式以及预期的结果。

在第1页上,输入等式(2 + 2)

然后在第2页,您得到回复:3。

该测试显然会失败。

假设有1000个测试正在运行,有些通过,有些则没有。我怎么知道哪个.CSV行/行没有通过?

2 个答案:

答案 0 :(得分:2)

您的CSV文件中是否有任何列可帮助您唯一标识行?

  • 我假设您有一个名为' TestCaseNo'其值为TC001,TC002,TC003 ......等
  • 添加Beanshell Post Processor以存储每次迭代的结果。
  • 添加以下代码。我假设你将PASS或FAIL结果存储在'结果'变量

    import java.io.File;
    import org.apache.jmeter.services.FileServer;
    
    f = new FileOutputStream("someptah/tcstatus.csv", true); 
    p = new PrintStream(f); 
    p.println( vars.get("TestCaseNo") + "," + vars.get("Result"));
    p.close();
    f.close();
    
  • 上面的代码创建了一个CSV文件,其中包含每个测试用例的结果。

修改

在Beanshell后处理器中自己做断言。

    import java.io.File;
    import org.apache.jmeter.services.FileServer;

   Result = "FAIL";
   Response = prev.getResponseDataAsString();
   if (Response.contains("value")) // replace the value with the expected text
       Result = "PASS";

    f = new FileOutputStream("someptah/tcstatus.csv", true); 
    p = new PrintStream(f); 
    p.println( vars.get("TestCaseNo") + "," + Result);
    p.close();
    f.close();

答案 1 :(得分:1)

我会使用以下方法

  1. __CSVRead()函数 - 从.csv文件中获取数据。
  2. __counter功能 - 跟踪CSV文件位置。您可以将计数器变量名称包含在Sampler的标签中,以便报告当前的.csv文件行。见下图,例如
  3. Counter

    有关上述和其他有用的JMeter函数的更多信息,请参阅How to Use JMeter Functions帖子系列。