TestNG系列(二)TestNG注解
前言
TetsNG提供了很多注解,允许测试人员灵活地组织测试用例
一、@Test
@Tets是TestNG的核心注解,被注解的方法,表示为一个测试方法。
description属性
@Test(description = "yuhao")
public void case1(){
System.out.println("case1方法");
}
在测试报告中体现出来

enabled属性
设置为false时,被注解的方法将不会执行
groups属性
对测试方法进行分组,可在类级别或方法级别添加组,类级别分组,表示类里面的所有方法都属于该分组。分组在XML中的调用与普通方法不同,在说XML时会详细介绍。
@Test(groups = "yuhao")
public void case1(){
System.out.println("case1方法");
}
dependsOnMethods属性
测试方法case1依赖于case2,case2先于case1执行。如果case2失败了则case1也不执行,这叫硬依赖(如果方法发生异常但是被捕获到,此方法不算执行失败,如果异常被抛出则此方法执行失败)。
@Test(dependsOnMethods = {"case2"})
public void case1(){
System.out.println("case1方法");
}
@Test
public void case2(){
System.out.println("case1方法");
}
dependsOnGroups属性
类似于dependsOnMethods一个用方法名做依赖,一个使用组名做依赖。
invocationCount属性
方法执行次数
@Test(invocationCount = 5)
public void case1(){
System.out.println("case1方法");
}
threadPoolSize属性
线程池的内线程的个数
timeOut属性
超时时间-毫秒
alwaysRun属性
在添加依赖关系时,加上alwaysRun=“true”的属性,无论依赖是否成功,此方法都会继续执行。
二、@Before
@BeforeClass,被注解的方法在此类所有测试方法前执行
@BeforeMethod,被注解的方法在每个@Tets方法前执行
@BeforeSuite,被注解的方法在当前Suite中方法执行前执行
@BeforeTest,被注解的方法在每个@Test方法前执行
@BeforeGropu,被注解的方法在指定组内方法执行前执行
三、@After
@AfterClass,被注解的方法在此类所有测试方法后执行
@AfterMethod,被注解的方法在每个@Tets方法后执行
@AfterSuite,被注解的方法在当前Suite中方法执行后执行
@AfterTest,被注解的方法在每个@Test方法后执行
@AfterGropu,被注解的方法在指定组内方法执行后执行
四、@Lgnore
被此方法注解的方法在测试时都将被忽略执行
五、@Listeners
定义一个测试类的监听器,只能添加到测试类上,不能添加的具体方法。
六、@Parameters
此注解用来传递参数,可以传递单个、多个、默认值
传递单个参数
测试用例
@Parameters({ "user" })
@Test
public void testcase1(String user) {
System.out.println(user);
}
XML文件
<suite name="Suite" parallel="false">
<parameter name="user" value="yogouo"/>
<test name="autotest">
<classes>
<class name="com.TetsNG.testcase"/>
</classes>
</test>
</suite>
传递多个参数
测试用例
@Parameters({ "user","data" })
@Test
public void testcase1(String user,String data) {
System.out.println(user+data);
}
XML文件
<suite name="Suite" parallel="false">
<parameter name="user" value="yogouo"/>
<parameter name="data" value="2019-12-09">
<test name="autotest">
<classes>
<class name="com.TetsNG.testcase"/>
</classes>
</test>
</suite>
默认值
测试用例
@Parameters({ "user" })
@Test
public void testcase1(@Optional("yogouo") String user) {
System.out.println(user);
}
XML文件
<suite name="Suite" parallel="false">
<test name="autotest">
<classes>
<class name="com.TetsNG.testcase"/>
</classes>
</test>
</suite>
TestNG系列(二)TestNG注解的更多相关文章
- Appium+Java 自动化测试系列二:Maven+Testng
新建Maven项目作为测试项目分为3个步骤: 1.Eclipse安装Testng 插件 2.新建Maven项目 3.引入Testng 一.Eclipse安装Testng插件 TestNG安装可选择在线 ...
- testNG官方文档翻译-2 注解
这里是一份TestNG中的可用注解及其属性的概述. 一.用于一个TestNG类的信息配置的注解: @BeforeSuite:被BeforeSuite注解的方法将在其所在suite中的所有test运行之 ...
- sed修炼系列(二):sed武功心法(info sed翻译+注解)
sed系列文章: sed修炼系列(一):花拳绣腿之入门篇sed修炼系列(二):武功心法(info sed翻译+注解)sed修炼系列(三):sed高级应用之实现窗口滑动技术sed修炼系列(四):sed中 ...
- Java接口自动化测试之TestNG学习(二)
在maven项目的pom.xml文件中导入TestNG <?xml version="1.0" encoding="UTF-8"?> <pro ...
- testng系列-ReportNG
生成reportng报告操作步骤: 一.maven的pom.xml文件需要添加内容: <properties> <!-- maven 参数配置,这里引用不同的testng.xml - ...
- TestNG系列(四)TestNG监听器
前言 监听器实际上是一些预定义的java接口,用户创建这些接口的实现类(即implements某监听接口,并实现里面的方法),并加入到testng中,testng便会在运行的不同时刻调用这些类中你自定 ...
- TestNG系列(一)TestNG+Eclipse环境配置
前提 1.JDK的安装与环境变量的配置 2.Eclipse的下载与安装 以上这些是基础中的基础,不再详细介绍. Eclipse安装TestNG插件 打开eclipse--->help---> ...
- java基础解析系列(六)---深入注解原理及使用
java基础解析系列(六)---注解原理及使用 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---Integer ja ...
- Spring 注解(二)注解工具类 AnnotationUtils 和 AnnotatedElementUtils
Spring 注解(二)注解工具类 AnnotationUtils 和 AnnotatedElementUtils Spring 系列目录(https://www.cnblogs.com/binary ...
- TestNG 五 运行TestNG
一.并行运行于超时 可以通过在suite标签中使用 parallel 属性来让测试方法运行在不同的线程中.这个属性可以带有如下这样的值: <suite name="My suite&q ...
随机推荐
- Codeforces 1183F - Topforces Strikes Back
Div. 3的题,竟然卡了好久,自闭.jpg 好像我的思路不太一样呢QAQ 首先注意到,如果一个数是另一个的因子,那它肯定不会出现在答案中. 我们先把所有数排序,然后对每个数,我们要往前再找两个数(或 ...
- 死磕 java线程系列之终篇
(手机横屏看源码更方便) 简介 线程系列我们基本就学完了,这一个系列我们基本都是围绕着线程池在讲,其实关于线程还有很多东西可以讲,后面有机会我们再补充进来.当然,如果你有什么好的想法,也可以公从号右下 ...
- 网站安全配置Nginx防止网站被攻击
https://blog.csdn.net/u011078940/article/details/51426288
- Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)
简介 经过一段时间的准备,完善的差不多了,继续分享有关Appium自动化测试框架综合实践.想必小伙伴们有点等不及了吧! driver配置封装 kyb_caps.yaml 配置表 参考代码 platfo ...
- ES6学习笔记01 -- 暂时性死区 ( temporal dead zone )
参考文档: let 和 const 命令 - ECMAScript6入门 暂时性死区(temporal dead zone) 理解ES6中的TDZ(暂时性死区) ES6 中 let 暂时性死区详解 ...
- 『嗨威说』算法设计与分析 - 贪心算法思想小结(HDU 2088 Box of Bricks)
本文索引目录: 一.贪心算法的基本思想以及个人理解 二.汽车加油问题的贪心选择性质 三.一道贪心算法题点拨升华贪心思想 四.结对编程情况 一.贪心算法的基本思想以及个人理解: 1.1 基本概念: 首先 ...
- (二十六)golang--切片
基本介绍: 切片是数组的引用: 切片的使用和数组类似: 切片的长度是可以变化的: 切片的定义 var a []int,注意和数组定义的区别: 切片不仅可以使用len函数,还有cap函数来计算切片的容量 ...
- 力扣(LeetCode)从不订购的客户-数据库题 个人题解
SQL架构 某网站包含两个表,Customers 表和 Orders 表.编写一个 SQL 查询,找出所有从不订购任何东西的客户. Customers 表: +----+-------+ | Id | ...
- 领扣(LeetCode)第三大的数 个人题解
给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 1: 输入: [3, 2, 1] 输出: 1 解释: 第三大的数是 1. 示例 2 ...
- django_4:数据库1——django操作数据库
创建数据库记录(插入) 使用python3 manage.py shell(python3亲测好使) ipython3 manage.py shell(亲测不好使) 方式一. [root@centos ...