TestNG在自动化测试框架中应用详解
来源:互联网 发布:wps不同表格数据求和 编辑:程序博客网 时间:2024/04/29 11:38
1、TestNG支持的注解和执行顺序
@beforeSuite (测试套件执行前执行一次,可以包括N个java包,N个java类)
@beforeTest (介于测试套件suite和测试类之间的级别)
@beforeClass (测试类中的所有方法执行之前执行一次)
@beforeMethod (测试类中每个测试方法执行之前执行一次)
@Test (测试类)
@afterMethod(测试类中每个测试方法执行后执行一次)
@afterClass (测试类中所有方法执行后执行一次)
@afterTest (同beforTest)
@afterSuite (测试套件执行后执行一次,同beforeSuite)
2、分组
在注解@Test后面加上(groups=”param”)进行分组,param为组名。
@Test(groups="pass") public void pass() { Assert.assertEquals("", ""); } @Test(groups="fail") public void fail() { Assert.fail(); }
3、配置TestNG Xml文件运行分组测试
运行指定测试包或者测试类
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"><suite name="SiEWeb"> <test name="DemoTest"> <packages> <package name="demo"/> </packages> <classes> <class name="demo.testng" /> </classes> </test></suite>
运行测试包../demo和测试类../demo/testng.java
运行不包括指定组名的测试方法
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"><suite name="SiEWeb"> <test name="DemoTest"> <groups> <run> <exclude name="fail" /> </run> </groups> <classes> <class name="demo.testng" /> </classes> </test></suite>
运行测试类../demo/testng.java,但是不包括组名为fail的测试方法
运行指定组名的测试方法
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"><suite name="SiEWeb"> <test name="DemoTest"> <groups> <run> <include name="fail" /> </run> </groups> <classes> <class name="demo.testng" /> </classes> </test></suite>
运行组名为fail的所有测试方法
一个方法可以有多个组名的分组测试
@Test(groups={"pass","run"}) public void pass() { Assert.assertEquals("", ""); } @Test(groups={"fail","run"}) public void fail() { Assert.fail(); }
只执行组名为fail的方法,执行fail
不执行组名为fail的方法,执行pass
执行组名为run的方法,执行fail和pass
不执行组名为run的方法,都不执行
4、建立依赖关系
dependsOnGroups
@Test(groups={"pass","run"}) public void pass() { Assert.assertEquals("", ""); } @Test(groups={"fail","run"},dependsOnGroups="pass") public void fail() { Assert.fail(); }
代码中方法fail的依赖关系dependsOnGroups=”pass”,即组名为pass的所有方法执行结果成功才会执行方法fail,任何一个方法不成功,则不执行fail
@Test(groups={"pass","run"}) public void pass() { Assert.assertEquals("", ""); } @Test(groups={"fail","run"},dependsOnMethods="pass") public void fail() { Assert.fail(); }
代码中方法fail的依赖关系dependsOnMethods=”pass”,即方法名为pass的执行结果成功才会执行fail,否则不执行
5、持续集成部署
引入maven插件maven-surefire-plugin
<plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.19.1</version> <configuration> <testFailureIgnore>true</testFailureIgnore> </configuration> <executions> <execution> <id>default-test</id> <phase>test</phase> <goals> <goal>test</goal> </goals> <configuration> <skip>false</skip> <suiteXmlFiles> <suiteXmlFile>${testngXML}</suiteXmlFile> </suiteXmlFiles> </configuration> </execution> </executions></plugin>
在插件中引入参数testngXML,按需求将测试类分成N个组进行测试,每个组对应一个testNG的XML文件,在持续集成系统的maven插件中配置运行参数
mvn -DtestngXML=test.xml clean test
此时只会执行工程包下面名为test.xml的testng XML文件。
6、testNG报告
通过testNG测试框架执行后的所有测试,会在工程包下面生成一个test-output的文件夹,最新的测试结果在index.html中展示。
最新的详细测试结果在emailable-report.html中显示
- TestNG在自动化测试框架中应用详解
- 自动化测试框架selenium+java+TestNG——TestNG详解
- 自动化测试框架selenium+java+TestNG——TestNG详解之一
- web自动化测试框架(Selenium+TestNG)
- Eclipse+TestNG搭建接口自动化测试框架
- Eclipse+TestNG搭建接口自动化测试框架
- 自动化测试框架Selenium+java+TestNG
- 自动化测试中TestNG的使用
- 自动化测试--TestNG
- Eclipse+TestNG+ant+selenium++jenkins+svn自动化测试框架搭建
- selenium+java+testNG+pageObject深入理解自动化测试框架
- selenium+java+testNG+pageObject深入理解自动化测试框架
- selenium+java+testNG+pageObject深入理解自动化测试框架
- 接口自动化测试TestNG框架环境搭建 (1)
- Eclipse+TestNG+ant+selenium++jenkins+svn自动化测试框架搭建
- Web自动化测试一:Eclipse+TestNG单元测试框架搭建
- jenkins、ant、selenium、testng搭建自动化测试框架
- Java反射机制在Android自动化测试框架的应用
- 纯JS写的一个轮播图
- 写了 35 年代码的老程序员的最大遗憾
- (02)JS大法好,Ryan Dahl和NodeJS
- FIG草根时代计划
- Leetcode - Path Sum
- TestNG在自动化测试框架中应用详解
- kubuntu 15 添加中文输入法
- php要掌握的基本知识
- 快排的递归和非递归实现和效率对比
- 自定义导航控件
- 移动项目换workspace后导入项目
- 如何启动、关闭和设置ubuntu防火墙
- mysql存储过程
- 数组做数据成员(1)