我使用Jmeter验证API的功能测试。我创建了一个HTML文件,其中包含执行的测试总数和通过/失败的测试。这是一份定制报告。
如果报告中出现单个故障,我是否可以设置一个条件使构建失败?
请注意,我已经尝试过性能插件。但我在这里的断言是看测试用例是否失败或通过而不是响应/通过时间。
不确定是否有一个插件可以让我读取HTML,如果它看到一个失败的测试用例,则会使报告失败。
答案 0 :(得分:3)
最简单的选择是使用https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-root工具作为包装器运行JMeter测试。 Taurus具有强大而灵活的Taurus子系统,您可以在其中配置测试失败阈值的任意组合,如果发生任何故障,Taurus将以非零Pass/Fail Criteria退出。 Jenkins非常聪明,可以捕获这个非零退出代码并使构建失败。
JMeter-only解决方案将添加exit status脚本,如:
if (!prev.isSuccessful()) {
System.exit(1)
}
基本上也是如此 - 如果发生任何故障,测试将立即退出,状态为1
,从而触发构建失败。
答案 1 :(得分:2)
您可以使用shell作业,grep查找失败并退出(如果找到),如下所示:
#!/bin/sh
if grep 'failure' file.html; then
exit 1
fi
答案 2 :(得分:0)
我不知道HTML文件的结构是什么,但由于它是测试通过/失败报告,所以我认为它非常简单。 您可以尝试将“执行Python脚本”(需要“Python插件”)添加到作业中。有了它,您可以轻松解析HTML文档并使用简单的脚本检查结果。
答案 3 :(得分:0)
我和Jenkins和JMeter有类似的问题。这是我做的:
错误/失败/
为您正在测试的每个采样器创建一个BeanShell Assertion,其中包含以下内容:
String testscenario =“TEST SCENARIO:”; String requestName =“getRequest”; String ver =“$ {My_ver}”; String respData = new String(ResponseData);
if(respData.contains(“OK”))
{
log.info(testscenario +“Passed。”+ requestName +“version =”+ ver);
print(testscenario +“Passed。”+ requestName +“version =”+ ver);
其他
{
log.error(testscenario +“* FAILED。”+ requestName);
print(testscenario +“* FAILED。”+ requestName);
}
当您的Jenkins作业运行且任何操作失败时,FAILED日志条目将显示