前面几章讲解了测试框架的结构和实现,接下来讲解如何实现测试框架的自动化和测试报告的生成。
持续集成
本框架我是采用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,就可以看到相对美观的报告形式了,类似如图: