JMeter - 指定 CSV 行失败
JMeter - Specify CSV row failure
在 JMeter 中,我是 运行 一个使用 .CSV 文件输入数据并验证结果的脚本。它工作正常,但我不知道如何判断 .CSV 的哪个 row/line 导致了个别故障。有办法吗?
有点像示例场景(不特定于我正在做的事情,但类似):
.CSV 文件的每一行都包含一个数学方程式以及预期结果。
在第 1 页,输入等式 (2+2)
然后在第 2 页上,您会得到响应:3.
那个测试显然会失败。
假设有 1,000 个测试 运行,一些通过了,一些没有通过。我怎么知道哪个 .CSV row/line 没有通过?
您的 CSV 文件中是否有任何列可以帮助您唯一地标识一行?
- 假设您有一个名为 'TestCaseNo' 的列,其值为 TC001、TC002、TC003...等
- 添加一个 Beanshell Post 处理器来存储每次迭代的结果。
添加以下代码。我假设您将 PASS 或 FAIL 结果存储在 'Result' 变量中。
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 post 处理器中自己做断言。
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();
我会使用以下方法
- __CSVRead() 函数 - 从 .csv 文件中获取数据。
- __counter 功能 - 跟踪 CSV 文件位置。您可以将计数器变量名称包含到采样器的标签中,以便可以报告当前的 .csv 文件行。例如见下图
有关上述和其他有用的 JMeter 功能的更多信息,请参阅 How to Use JMeter Functions 帖子系列。
在 JMeter 中,我是 运行 一个使用 .CSV 文件输入数据并验证结果的脚本。它工作正常,但我不知道如何判断 .CSV 的哪个 row/line 导致了个别故障。有办法吗?
有点像示例场景(不特定于我正在做的事情,但类似): .CSV 文件的每一行都包含一个数学方程式以及预期结果。
在第 1 页,输入等式 (2+2)
然后在第 2 页上,您会得到响应:3.
那个测试显然会失败。
假设有 1,000 个测试 运行,一些通过了,一些没有通过。我怎么知道哪个 .CSV row/line 没有通过?
您的 CSV 文件中是否有任何列可以帮助您唯一地标识一行?
- 假设您有一个名为 'TestCaseNo' 的列,其值为 TC001、TC002、TC003...等
- 添加一个 Beanshell Post 处理器来存储每次迭代的结果。
添加以下代码。我假设您将 PASS 或 FAIL 结果存储在 'Result' 变量中。
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 post 处理器中自己做断言。
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();
我会使用以下方法
- __CSVRead() 函数 - 从 .csv 文件中获取数据。
- __counter 功能 - 跟踪 CSV 文件位置。您可以将计数器变量名称包含到采样器的标签中,以便可以报告当前的 .csv 文件行。例如见下图
有关上述和其他有用的 JMeter 功能的更多信息,请参阅 How to Use JMeter Functions 帖子系列。