我有一个管道作业,使用 Groovy 脚本设置为“并行”运行多个测试,但我很好奇如何统一报告。
我正在使用 Java 并使用 TestNG 和 Maven 编写 Selenium 测试。
当我查看 target/surefire-reports 中的报告时,唯一的就是“套件”的“最后”测试运行。
如何获得包含管道并行作业中所有测试的报告?
Groovy 代码示例:
node() {
try {
parallel 'exampleScripts':{
node(){
stage('ExampleScripts') {
def mvnHome
mvnHome = tool 'MAVEN_HOME'
env.JAVA_HOME = tool 'JDK-1.8'
bat(/"${mvnHome}\bin\mvn" -f "C:\workspace\Company\pom.xml" test -DsuiteXmlFile=ExampleScripts.xml -DenvironmentParam="$ENVIRONMENTPARAM" -DbrowserParam="$BROWSERPARAM" -DdebugParam="false"/)
} // end stage
} // end node
}, // end parallel
'exampleScripts2':{
node(){
stage('ExampleScripts2') {
def mvnHome
mvnHome = tool 'MAVEN_HOME'
env.JAVA_HOME = tool 'JDK-1.8'
bat(/"${mvnHome}\bin\mvn" -f "C:\workspace\Company\pom.xml" test -DsuiteXmlFile=ExampleScripts2.xml -DenvironmentParam="$ENVIRONMENTPARAM" -DbrowserParam="$BROWSERPARAM" -DdebugParam="false"/)
} // end stage
} // end node
step([$class: 'Publisher', reportFilenamePattern: 'C:/workspace/Company/target/surefire-reports/testng-results.xml'])
} // end parallel
此后的代码还有更多内容,包括通过电子邮件向测试运行者发送测试结果等。
除了报告方面之外,这非常有效。
最佳答案
我更喜欢使用ExtentReports因为它有一个 ExtentX 服务器,允许您报告多个不同的测试报告。
我曾经使用过 ReportNG,但其开发停滞了,所以我不再推荐它。无论如何,它不允许您合并报告。
除此之外,您还可以使用 CouchBase 或类似的 JSON 数据库来存储测试结果,然后根据该信息生成您自己的报告。
关于java - 报告从 Jenkins 管道作业运行的多个 Selenium Webdriver 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41814141/