TestNG基础入门

TestNG是开源自动化测试工具,覆盖多类型测试:单元测试,功能测试,集成测试,它的功能非常强大

Testng是一套开源测试框架,是从Junit继承而来,testng意为test next generation

支持多种类型的单元测试(异常测试, 超时测试,依赖测试….)

支持参数化 & 提供了丰富的测试用例组织方式(Suite, Test, Method)

生成测试报告,并支持测试报告扩展(Allure,ReportNG)

TestNG注解

TestNG支持多种注解,可以进行各种组合,如下进行简单的说明:

@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

将类或方法标记为测试的一部分,此标记若放在类上,则该类所有公共方法都将被作为测试方法

接口测试只需要知道接口协议即可,不需要知道后台语言

suite套件,最大

test

class

import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterGroups;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class newTest {

    @Test(groups="group1")
    public void test1() {
        System.out.println("test1 from group1");
        Assert.assertTrue(true);
    }

    @Test(groups="group1")
    public void test12() {
        System.out.println("test12 from group1");
        Assert.assertTrue(true);
    }

    @Test(groups="group2")
    public void test2()
    {
        System.out.println("test2 from group2");
        Assert.assertTrue(true);
    }

    @BeforeTest
    public void beforeTest()
    {
        System.out.println("beforeTest");
    }

    @AfterTest
    public void afterTest()
    {
        System.out.println("afterTest");
    }

    @BeforeClass
    public void beforeClass()
    {
        System.out.println("beforeClass");
    }

    @AfterClass
    public void afterClass()
    {
        System.out.println("afterClass");
    }

    @BeforeSuite
    public void beforeSuite()
    {
        System.out.println("beforeSuite");
    }

    @AfterSuite
    public void afterSuite()
    {
        System.out.println("afterSuite");
    }

    //只对group1有效,即test1和test12
    @BeforeGroups(groups="group1")
    public void beforeGroups()
    {
        System.out.println("beforeGroups");
    }

    //只对group1有效,即test1和test12
    @AfterGroups(groups="group1")
    public void afterGroups()
    {
        System.out.println("afterGroups");
    }

    @BeforeMethod
    public void beforeMethod()
    {
        System.out.println("beforeMethod");
    }

    @AfterMethod
    public void afterMethod()
    {
        System.out.println("afterMethod");
    }
}

image-20240403162408375

依赖测试

@Test(dependsOnMethod = {"方法名称"})

特定顺序测试

@Test(priority = 0/1/2/3/4/)

跳过测试

@Test(priority = 0/1, enabled = false)

suite>:套件就是将所有的测试类整理在一块,形成一套测试用例
test>:测试集就是测试类的集合,一般把项目的某一个模块设计成一个测试集
classes>:测试集下的所有测试类
class>:具体测试类,name 属性指定测试类的路径
methods>:测试类下具体的测试方法,如果不写此标签则默认包含测试类下的所有方法

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值