我有一个管道工作,使用Groovy脚本设置在“并行”中运行多个测试,但我很好奇如何统一报告。
我正在使用Java编写我的Selenium测试并使用TestNG和Maven。
当我查看target / surefire-reports中的报告时,唯一的问题是“套件”的“最后”测试。
如何获得一个结合了Pipeline并行作业中所有测试的报告?
示例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
此后,在向测试运行员发送测试结果等方面,此代码还有一些内容。
除报告方面外,这项工作很有效。
答案 0 :(得分:2)
我更喜欢使用ExtentReports,因为它有一个ExtentX服务器,允许您报告多个不同的测试报告。
我曾经使用过ReportNG,但是开发工作停滞不前,所以我不再推荐它了。它无论如何都不允许你组合报告。
除此之外,您可以使用CouchBase或类似的JSON数据库来存储测试结果,然后根据该信息生成您自己的报告。