我有一个CI管道,它运行几个JMeter测试和一些Powershell脚本。如果JMeter测试失败,它仍然会在DevOps中报告为成功。但是,日志将显示“Err:“,后跟测试中失败的调用数。如果“运行出站电子邮件JMeter测试”任务已完成,并且日志中不包含“Err:“,我如何才能仅运行以下任务(写入线程引用)?
q7solyqu1#
我认为更好的选择是使整个“运行出站电子邮件JMeter测试”任务失败,这样,如果出现失败,它将返回non-zero exit status code,以便管道“捕获”它例如,您可以使用JMeter Maven Plugin运行测试,简单的 pom.xml 如下所示:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>jmeter-maven</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <build> <plugins> <plugin> <groupId>com.lazerycode.jmeter</groupId> <artifactId>jmeter-maven-plugin</artifactId> <version>3.3.0</version> <executions> <!-- Generate JMeter configuration --> <execution> <id>configuration</id> <goals> <goal>configure</goal> </goals> </execution> <!-- Run JMeter tests --> <execution> <id>jmeter-tests</id> <goals> <goal>jmeter</goal> </goals> </execution> <!-- Fail build on errors in test --> <execution> <id>jmeter-check-results</id> <goals> <goal>results</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
并输出:
或者,您也可以使用Taurus自动化框架,该框架具有Pass/Fail criteria subsystem配置示例:
execution: - scenario: simple scenarios: simple: script: test.jmx reporting: - module: passfail criteria: - succ<100%, continue as failed
和输出:
cwxwcias2#
jmeter测试在Powershell脚本中返回了一个Object[],所以技巧是遍历数组,看看是否有任何错误,如果有,抛出一个Exception。这会使管道中的步骤失败,因此后续步骤不会执行。
Object[]
$logs = jmeter -n -t $TestFilePath $successLogFound = $false foreach($log in $logs) { if($log.Contains("Err: 0")) { $successLogFound = $true break; } } if(!$successLogFound) { $ErrorActionPreference = 'Stop' Write-Error "Test failed." }
2条答案
按热度按时间q7solyqu1#
我认为更好的选择是使整个“运行出站电子邮件JMeter测试”任务失败,这样,如果出现失败,它将返回non-zero exit status code,以便管道“捕获”它
例如,您可以使用JMeter Maven Plugin运行测试,简单的 pom.xml 如下所示:
并输出:
或者,您也可以使用Taurus自动化框架,该框架具有Pass/Fail criteria subsystem
配置示例:
和输出:
cwxwcias2#
jmeter测试在Powershell脚本中返回了一个
Object[]
,所以技巧是遍历数组,看看是否有任何错误,如果有,抛出一个Exception。这会使管道中的步骤失败,因此后续步骤不会执行。