我一直在寻找Jmeter的一个问题的解决方案。我需要在我的测试计划中加入一些逻辑,这些逻辑可以在测试用例执行结果上给出简单的报告PASS / FAIL,然后输入生成的JTL报告。例如
答案 0 :(得分:0)
大多数合适的选项假设使用第三方工具,即:
您可以在Jenkins中运行JMeter测试并使用Performance插件,如果失败请求的数量超过指定的阈值,它允许有条件地使构建失败
您可以使用Taurus工具作为包装器运行JMeter测试,它具有灵活且功能强大的Pass/Fail Criteria Subsystem,允许设置不同的条件定义以将测试标记为已通过或失败。如果构建失败,Taurus进程返回非零退出代码。
如果上述方法因任何原因不适合,请详细说明您的问题,并说明您希望看到“失败”或“通过”结果的方式和位置。
答案 1 :(得分:0)
在Thread Group的末尾添加一个BeanShell Listener和一个BeanShell Sampler,并将其放在Listener中:
if(sampleEvent.getResult() instanceof org.apache.jmeter.protocol.http.sampler.HTTPSampleResult)
if (!sampleEvent.getResult().isResponseCodeOK())
vars.put("res", -1);
在BS Sampler中输入:
props.put("testPlanResult", vars.get("res") != -1 ? "PASS" : "FAIL");
f = new FileOutputStream("/path/to/file.txt", false); p = new PrintStream(f); p.println("Result: " + (vars.get("res") != -1 ? "PASS" : "FAIL")); p.close(); f.close();
从这里,您可以使用创建的属性或包含结果的文件来执行您需要的任何内容...
希望这能帮到你!
编辑:
如果将结果写入文件,则需要添加此导入:
import org.apache.jmeter.services.FileServer;