在IDE里执行测试脚本执行完后可以将测试结果导出成JUnit或者html格式的都可以,但后续我们做持续集成的时候期望一步到位执行可以生成这两种格式的报告,那怎么让执行后直接生成呢?我们现在来具体看下。
我们会借助ReportNG插件来达到上面的目的,ReportNG是一种TestNG里用来进行HTML/XML格式展示的插件。
那因为我们是通过Maven来进行依赖管理的,ReportNG又会依赖其他的库,我们在pom.xml里添加如下的配置就可以了:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.appium</groupId>
<artifactId>appium</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>5.0.3</version>
</dependency>
<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>
<dependency>
<groupId>velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>velocity</groupId>
<artifactId>velocity-dep</artifactId>
<version>1.4</version>
</dependency>
<!--add these two to avoid errors-->
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>4.1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>21.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<properties>
<property>
<name>usedefaultlisteners</name>
<value>false</value>
</property>
</properties>
<!-- 后续可以更改这个suite名词来执行指定的suite-->
<suiteXmlFiles>
<suiteXmlFile>suite.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
<!--define enconding -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
</project>
依赖配置完后还需要去suite.xml里添加HTML和JUnit报告的插件如下:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<listeners>
<listener class-name="appium.listeners.TestListener"/>
<listener class-name="appium.listeners.RerunListener"/>
<listener class-name="org.uncommons.reportng.HTMLReporter"/>
<listener class-name="org.uncommons.reportng.JUnitXMLReporter"/>
</listeners>
<test name="Regression1">
<classes>
<class name="appium.testcases.login.LoginPermissionCheck"/>
<class name="appium.testcases.versioncheck.VersionCheck"/>
</classes>
</test>
</suite>
这时候鼠标右键执行下suite.xml看下执行完会不会产生xml和html格式的报告。
执行完可以到在测试工程根目录下产生了个test-output的文件夹,文件夹下有xml和html格式的报告,如下图所示: