一、本地Allure安装
1、Allure安装包下载
百度网盘链接: https://pan.baidu.com/s/1sYWTYSbz5ahT5-MCwELpRA 提取码: 6ywd
下载后放置安装路径解压即可,例:D:\Program Files\allure-2.7.0
2、Allure环境变量配置
环境变量Path增加allure安装路径\allure-2.7.0\bin,例:D:\Program Files\allure-2.7.0\bin;
3、验证Allure是否安装成功
cmd命令输入 allure --version,显示版本信息则安装成功
二、增加TestNg.xml
在对应模块与pom文件同目录下增加TestNg.xml文件,如下所示:
TestNg.xml内容如下,若有新增其他测试类需在classes节点下增加对应的class路径文件:
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">
<test name="Test">
<classes>
<class name="demo.testng.MethodTest"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
三、配置pom.xml
1、
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!--TestNg Aullre Report使用-->
<aspectj.version>1.9.2</aspectj.version> <!--AspectJ是一个基于Java语言的AOP框架-->
<allure.version>2.13.0</allure.version>
<xmlFileName>TestNg.xml</xmlFileName>
</properties>
2、
<!--TestNg-->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
</dependency>
<!--Allure报告依赖包-->
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-testng</artifactId>
<version>${allure.version}</version>
<scope>test</scope>
</dependency>
<!--Allure报告生成插件依赖包-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
3、
<build>
<finalName>${project.name}</finalName>
<plugins>
<!--Allure报告构建生成-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<!--生成allure-result的目录-->
<systemProperties>
<!--是否忽略html,解释见下图。与之后在reportNg报告上显示截图相关。当前已经使用allure了,这里可以直接去掉啦-->
<!--<org.uncommons.reportng.escape-output>false</org.uncommons.reportng.escape-output>-->
<!--定义输出在项目 target 目录-->
<property>
<name>allure.results.directory</name>
<value>target/allure-results</value>
</property>
</systemProperties>
<!--测试失败后,是否忽略并继续测试-->
<testFailureIgnore>true</testFailureIgnore>
<argLine>
-Dfile.encoding=UTF-8
</argLine>
<suiteXmlFiles>
<!--该文件位于工程根目录时,直接填写名字,其它位置要加上路径-->
<suiteXmlFile>${xmlFileName}</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
四、TestNg测试用例编写
应用场景:对获取身份证年龄方法进行测试
增加测试类如下:
public class MethodTest {
/**
* 测试场景:根据身份证获取年龄
* 多个用例数据,验证是否计算正确
* 测试数据(身份证)+ 预期结果(年龄)
*/
@DataProvider
public Object[][] data(){
return new Object[][]{
{"350421201707052265",2,"生日小于当前月日"},//临界点
{"350421201707032265",3,"生日等于当前月日"},//临界点
{"350421201907042265",1,"未满1岁"}//不满一岁按一岁算
};
}
@Test(dataProvider = "data",description = "根据身份证获取年龄")
//输入参数值需按顺序一一对应dataprovider填写的数据内容顺序
public void testIdcardUtil(String testData,int expectedResult,String message){
int testResult = IdcardUtil.getAgeByIdCard(testData);
Assert.assertEquals(testResult,expectedResult,message);
}
}
方法类如下:
public class IdcardUtil {
public static int getAgeByIdCard(String idCard) {
int iAge = 0;
String year = idCard.substring(6, 10);
Calendar cal = Calendar.getInstance();
int iCurrYear = cal.get(Calendar.YEAR);
iAge = iCurrYear - Integer.valueOf(year);
return iAge;
}
}
五、TestNg测试用例集执行
运行maven test执行测试用例。
操作步骤:Idea右侧窗口点开Maven Projects,找到对应模块点击test,执行完成后即可在模块目录下找到target/allure-results
allure报告文件:
六、查看allure报告
方法1:allure serve target/allure-results直接查看报告
1)cmd命令进入到target所在目录
例:本次的duceap-boot-test-starter-metadata
2)执行命令查看报告
allure serve target/allure-results
命令说明:该命令启动的端口是随机分配,若需要使用固定端口可加入-p 2020,例:allure serve -p 2020 target/allure-results
3)命令执行时会自动使用默认浏览器打开地址,需要使用谷歌浏览器才能正常展示。
方法2:allure生成报告并打开查看
1)allure生成报告命令
allure generate target/allure-results/(源文件夹路径) -o target/allure-reports/(目标文件夹路径,需是空文件夹,无需手动创建,生成会自动创建)
2)打开生成的报告
有3种方式打开生成报告:allure open命令、tomcat启动应用、开发工具打开(idea或pycharm),具体操作如下:
1、Allure打开报告命令
allure open allure-reports
2、tomcat启动应用
报告放入tomcat的webapps中,执行bin\startup.bat启动应用,访问对应路径端口即可
3、开发工具打开(例:idea)
打开文件夹,右击index.html>Open in Browser>Chrome
七、Spring整合testng
1、加入@SpringBootTest
2、AbstractTestNGSpringContextTests:测试类只有继承了该类才能拥有注入实例能力,否则注入报错