报告多个Selenium Webdriver作业从Jenkins管道作业运行

时间:2017-01-23 19:30:21

标签: java maven selenium jenkins groovy

我有一个管道工作,使用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

此后,在向测试运行员发送测试结果等方面,此代码还有一些内容。

除报告方面外,这项工作很有效。

1 个答案:

答案 0 :(得分:2)

我更喜欢使用ExtentReports,因为它有一个ExtentX服务器,允许您报告多个不同的测试报告。

我曾经使用过ReportNG,但是开发工作停滞不前,所以我不再推荐它了。它无论如何都不允许你组合报告。

除此之外,您可以使用CouchBase或类似的JSON数据库来存储测试结果,然后根据该信息生成您自己的报告。