前面几章讲解了测试框架的结构和实现,接下来讲解如何实现测试框架的自动化和测试报告的生成。

持续集成

本框架我是采用Jenkins实现持续集成的,至于Jenkins环境的搭建和使用,我前面的blog有提到,如果大家不清楚的可以先去阅读我之前写的这篇文章,Jenkins安装和构建部署

  • 运行jenkins,首先创建一个job为appiumTurbo

    这里写图片描述

  • 源码管理
    将代码上传到github上进行托管,然后在jenkins上配置clone 到你本地或者远程的jenkins来:
    这里写图片描述

  • 构建触发器
    Poll SCM: 定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。Build periodically:周期进行项目构建(它不care源码是否发生变化),我的配置如下:
    每天凌晨2:00进行一次构建

这里写图片描述

  • 构建

    这里写图片描述

  • 构建后操作
    发送邮件


测试报告

每次构建完成后都会生成一个测试报告,由于testng自带生成测试报告,但是这个报告比较丑陋,下面开始用ReportNG来生成漂亮简洁的测试报告。

  • 在maven项目中添加依赖,在pom.xml文件中添加以下依赖关系:
    <!-- 依赖reportNg 关联testNg -->
    <dependency>
        <groupId>org.uncommons</groupId>
        <artifactId>reportng</artifactId>
        <version>1.1.4</version>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

        <!-- 依赖Guice -->
        <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>3.0</version>
            <scope>test</scope>
        </dependency>
  • 配置maven-surefire-plugin并加入reportNG listenser
    <build>
        <plugins>
            <!-- 添加插件,关联testNg.xml,添加ReportNg的监听器,修改最后的TestNg的报告 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>

                    <suiteXmlFiles>
                        <!-- <suiteXmlFile>res/${xmlFileName}</suiteXmlFile> -->
                        <suiteXmlFile>testng.xml</suiteXmlFile>
                    </suiteXmlFiles>

                    <properties>
                        <property>
                            <name>usedefaultlisteners</name>
                            <value>false</value>
                        </property>
                        <property>
                            <name>listener</name>
                            <value>org.uncommons.reportng.HTMLReporter,
                                org.uncommons.reportng.JUnitXMLReporter</value>
                        </property>
                    </properties>

                    <workingDirectory>target/</workingDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>
  • 最后构建完成后,在target目录下创建了一个surefire-reports目录,打开它下面的html文件夹,打开indel.xml,就可以看到相对美观的报告形式了,类似如图:

这里写图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐