testNG常用方法
1、常用注释:
| 注解 | 描述 |
|---|---|
@BeforeSuite |
在该套件的所有测试都运行在注释的方法之前,仅运行一次。 |
@AfterSuite |
在该套件的所有测试都运行在注释方法之后,仅运行一次。 |
@BeforeClass |
在调用当前类的第一个测试方法之前运行,注释方法仅运行一次。 |
@AfterClass |
在调用当前类的第一个测试方法之后运行,注释方法仅运行一次 |
@BeforeTest |
注释的方法将在属于<test>标签内的类的所有测试方法运行之前运行。 |
@AfterTest |
注释的方法将在属于<test>标签内的类的所有测试方法运行之后运行。 |
@BeforeGroups |
配置方法将在之前运行组列表。 此方法保证在调用属于这些组中的任何一个的第一个测试方法之前不久运行。 |
@AfterGroups |
此配置方法将在之后运行组列表。该方法保证在调用属于任何这些组的最后一个测试方法之后不久运行。 |
@BeforeMethod |
注释方法将在每个测试方法之前运行。 |
@AfterMethod |
注释方法将在每个测试方法之后运行。 |
@DataProvider |
标记一种方法来提供测试方法的数据。 注释方法必须返回一个Object [] [],其中每个Object []可以被分配给测试方法的参数列表。 要从该DataProvider接收数据的@Test方法需要使用与此注释名称相等的dataProvider名称。 |
@Factory |
将一个方法标记为工厂,返回TestNG将被用作测试类的对象。 该方法必须返回Object []。 |
@Listeners |
定义测试类上的侦听器。 |
@Parameters |
描述如何将参数传递给@Test方法。 |
@Test |
将类或方法标记为测试的一部分。 |
2、设置测试方法的执行顺序
在执行同一个类里面的测试方法时,我们有时候需要对各个test排序,这时我们加入参数priority=int即可,如下代码所示, ff()会在f()前执行
@Test(priority=2)
public void f() {
Assert.assertEquals("a", "a");
} @Test(priority=1)
public void ff(){
Assert.assertEquals(1, 1);
}
3、依赖测试
当大家顺序执行测试的时候,无非就是因为业务是有流程的,我们希望整一个业务流可以顺序地执行下去,那么还有一个比priority更好的参数:dependOnMethods 或者dependsOnGroups,两个参数顾名思义就是依赖方法或测试组。如下代码所以m2()要依赖m1,这时如果m1()执行失败,那么m2的测试是会跳过的。dependsOnGroups同理
@Test
public void m1() {
System.out.println("方法m1");
}
@Test(dependsOnMethods="m1")
public void m2(){
System.out.println("方法m2");
}
4、赋参
传递参数给@Test可以用@parameters和@DataProvider,个人偏爱@DataProvider,使用方法如下:
@Test(dataProvider="users")
public void p1(String username,String password){
System.out.println("用户名:"+username);
System.out.println("密码:"+password);
} @DataProvider(name="users")
public Object[][] myUsers(){
Object[][] users = new Object[][]{
{"user1","password1"},
{"user2","password2"}
};
return users;
}
5、忽略测试
在平时,有时候我们未调试好的测试方法,我们并不想让它执行,那么可以使用参数“enabled=false”忽略这个方法,如下所示ff()方法会被忽略
@Test(priority=2)
public void f() {
Assert.assertEquals("a", "a");
} @Test(priority=1,enabled=false)
public void ff(){
Assert.assertEquals(1, 1);
}
testNG常用方法的更多相关文章
- Testng使用方法示例
TestNG TestNG是一个测试框架,灵感来自JUnit和NUnit.但引入了下面这些新的功能,使它更强大和更容易使用. 注解: 可在任意大的线程池运行您的测试(所有方法在它们自己的线程内,一个线 ...
- TestNG测试框架在基于Selenium进行的web自动化测试中的应用
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ TestNG+Selenium+Ant TestNG这个测试框架可以很好的和基于Selenium的 ...
- TestNG 框架的运用
TestNG这个测试框架可以很好的和基于Selenium的web自动化测试结合在一起,实现把我们写好的自动化测试用例以自定义顺序执行.下面分为十二步来对TestNG测试框架进行总结,包括环境的部署,从 ...
- Selenium+TestNG+CSV数据驱动
1.工程的目录结构: # saas SAAS_UI自动化测试工程 # 一.工程的目录结构 1.saas/src是工程的入口 a.saas/src/main/java/com/saas/encapsul ...
- JUnit4---Hamcrest匹配器常用方法总结
一.Hamcrest是什么? Hamcrest is a library of matchers, which can be combined in to create flexible expres ...
- 前端开发:Javascript中的数组,常用方法解析
前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...
- Jquery元素选取、常用方法
一:常用的选择器:(李昌辉) 基本选择器 $("#myDiv") //匹配唯一的具有此id值的元素 $("div") //匹配指定名称的所有元素 $(" ...
- python浅谈正则的常用方法
python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...
- TestNG 入门教程
原文出处:http://www.cnblogs.com/TankXiao/p/3888070.html 阅读目录 TestNG介绍 在Eclipse中在线安装TestNG 在Eclipse中离线安装T ...
随机推荐
- Docker学习——pinpoint部署
Pinpoint Install pinpoint-server 下载镜像 docker pull yous/pinpoint 查看镜像 docker images 启动容器 docker run - ...
- 机器学习之类别不平衡问题 (2) —— ROC和PR曲线
机器学习之类别不平衡问题 (1) -- 各种评估指标 机器学习之类别不平衡问题 (2) -- ROC和PR曲线 完整代码 ROC曲线和PR(Precision - Recall)曲线皆为类别不平衡问题 ...
- java中断
理解java中断 Java中断机制是一种协作机制,即通过中断并不能直接终止另一个线程,而需要被中断的线程自己处理中断.例如,当线程t1想中断线程t2,只需要在线程t1中将线程t2对象的中断标识置为tr ...
- 腾讯云GAME-TECH游戏开发者技术沙龙(深圳)开启报名啦~
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~. 作者:由腾讯游戏云发表在云+社区 腾讯云GAME-TECH沙龙继1月杭州站后,将于3月30日来到深圳站,与游戏厂商和游戏开发者,畅聊游戏安 ...
- 笔记:Maven 生命周期与命令行详解
Maven 拥有三套相互独立的生命周期,分别是 clean.default和site,clean 生命周期的目的是清理项目,default 生命周期的目的是构建项目,而site生命周期的目的是建立项目 ...
- window平台写的shell脚步在Linux不识别
---恢复内容开始--- 出现的问题是 写的shell脚步在Linux执行的时候不被识别 解决方案: 1.确保用户对文件有读写及执行权限 oracle@linux-106:~/RMAN/bin> ...
- poj1321 棋盘(dfs)
#include<iostream> #include<cstring> using namespace std; ]={},sum=; ][]; void dfs(int a ...
- oracle--dba和表的备份与恢复
数据库管理员 每个oracle数据库应该至少有一名数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库可能需要多个dba分别担负不同的管理职责,那么一个数据库管理员的主 ...
- Comparable接口和Comparator接口
1.一个类在设计之初就要实现对该类对象的排序功能,那么这个类要实现Comparable接口,实现public int compareTo(T t)方法.如代码中的Student类.对于实现Compar ...
- jsonp处理
def loads_jsonp(self,_jsonp): try: return json.loads(re.match(".*?({.*}).*",_jsonp,re.S).g ...