前言

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注解的更多相关文章

  1. Appium+Java 自动化测试系列二:Maven+Testng

    新建Maven项目作为测试项目分为3个步骤: 1.Eclipse安装Testng 插件 2.新建Maven项目 3.引入Testng 一.Eclipse安装Testng插件 TestNG安装可选择在线 ...

  2. testNG官方文档翻译-2 注解

    这里是一份TestNG中的可用注解及其属性的概述. 一.用于一个TestNG类的信息配置的注解: @BeforeSuite:被BeforeSuite注解的方法将在其所在suite中的所有test运行之 ...

  3. sed修炼系列(二):sed武功心法(info sed翻译+注解)

    sed系列文章: sed修炼系列(一):花拳绣腿之入门篇sed修炼系列(二):武功心法(info sed翻译+注解)sed修炼系列(三):sed高级应用之实现窗口滑动技术sed修炼系列(四):sed中 ...

  4. Java接口自动化测试之TestNG学习(二)

    在maven项目的pom.xml文件中导入TestNG <?xml version="1.0" encoding="UTF-8"?> <pro ...

  5. testng系列-ReportNG

    生成reportng报告操作步骤: 一.maven的pom.xml文件需要添加内容: <properties> <!-- maven 参数配置,这里引用不同的testng.xml - ...

  6. TestNG系列(四)TestNG监听器

    前言 监听器实际上是一些预定义的java接口,用户创建这些接口的实现类(即implements某监听接口,并实现里面的方法),并加入到testng中,testng便会在运行的不同时刻调用这些类中你自定 ...

  7. TestNG系列(一)TestNG+Eclipse环境配置

    前提 1.JDK的安装与环境变量的配置 2.Eclipse的下载与安装 以上这些是基础中的基础,不再详细介绍. Eclipse安装TestNG插件 打开eclipse--->help---> ...

  8. java基础解析系列(六)---深入注解原理及使用

    java基础解析系列(六)---注解原理及使用 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---Integer ja ...

  9. Spring 注解(二)注解工具类 AnnotationUtils 和 AnnotatedElementUtils

    Spring 注解(二)注解工具类 AnnotationUtils 和 AnnotatedElementUtils Spring 系列目录(https://www.cnblogs.com/binary ...

  10. TestNG 五 运行TestNG

    一.并行运行于超时 可以通过在suite标签中使用 parallel 属性来让测试方法运行在不同的线程中.这个属性可以带有如下这样的值: <suite name="My suite&q ...

随机推荐

  1. ip地址-正则

    import re reip = re.compile(r'(?<![\.\d])(?:\d{1,3}\.){3}\d{1,3}(?![\.\d])')

  2. 口胡题fr

    T1五种贡献恶心的要死.$1.grand$$2.father$$3.brother$$4.son$$5.grandson$我们选择维护三个量.1.儿子和,$sx$2.孙子和,$gsx$3.自己的值,$ ...

  3. Python3获取豆瓣图书标签的前20本热门书籍(一)

    介绍 第一篇主要获取豆瓣的大分类.大分类下的具体分类以及具体分类下的前20本热门书籍,第二篇对获取的数据进行分析. 准备 Python3.6.requests.BeautifulSoup4 演示 代码 ...

  4. Oracle“ORA-00911: 无效字符”解决方式

    在工作中碰到ORA-00911:无效字符的问题, 代码如下: <select id="querySendMsg" parameterType="map" ...

  5. python购物车练习题

    # 购物车练习# 1.启动程序后,让用户输入工资,打印商品列表# 2.允许用户根据商品编号购买商品# 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒# 4.可随时退出,退出时,打印已购买 ...

  6. 一文教您如何通过 Java 压缩文件,打包一个 tar.gz Filebeat 采集器包

    欢迎关注笔者的公众号: 小哈学Java, 专注于推送 Java 领域优质干货文章!! 个人网站: https://www.exception.site/essay/create-tar-gz-by-j ...

  7. 「Luogu 1821」[USACO07FEB]银牛派对Silver Cow Party

    更好的阅读体验 Portal Portal1: Luogu Portal2: POJ Description One cow from each of N farms \((1 \le N \le 1 ...

  8. Python 基础 内置函数 迭代器与生成器

    今天就来介绍一下内置函数和迭代器 .生成器相关的知识 一.内置函数:就是Python为我们提供的直接可以使用的函数. 简单介绍几个自己认为比较重要的 1.#1.eval函数:(可以把文件中每行中的数据 ...

  9. 不需要spring管理,自己根据名字取到对应的bean

    package com.yiban.abc.util; import org.springframework.beans.BeansException; import org.springframew ...

  10. 类型擦除真的能完全擦除一切信息吗?java 泛型揭秘

    背景 我们都知道泛型本质上是提供类型的"类型参数",它们也被称为参数化类型(parameterized type)或参量多态(parametric polymorphism).其实 ...