Java(10):Java+TestNG的使用

TestNG官方文档:

TestNG - Welcome

https://testng.org/doc/documentation-main.html#testng-xml

https://testng.org/doc/documentation-main.html

TestNG介绍

TestNG有几个显著且好用的特点。

1、注解功能,系列中会写到各个注解的作用及示例
2、参数化测试
3、支持组的概念
4、多线程测试
5、支持依赖测试方法,并行测试,负载测试,局部故障

 Idea集成TestNG

1、项目中配置了maven,则引入以下依赖就行
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.10</version>
            <scope>test</scope>
        </dependency>
2、编写测试业务逻辑,在代码中插入TestNG的注解
3、在TestNG对应的配置文件testng.xml或build.xml中配置测试信息
4、运行TestNG即可。

集成完后库有

TestNG使用

TestNg例子

package com.ciphergateway.testcast;

import org.testng.Assert;
import org.testng.annotations.Test;

public class intercase {
    @Test
    public void Test1() {
        System.out.println("Test1");
        Assert.assertTrue(true);
    }

    @Test
    public void Test2() {
        System.out.println("Test2");
        Assert.assertTrue(true);
    }
}

 执行结果:

组测试

分组测试即为使用group,如果你使用xml的话就是里边的<groups>标签,如果是直接在class中,是通过@Test(groups="group2")这种方式来分组.这个group说明可以是在单个的测试方法上,也可以在class上,只要具有同样的group名称都会在同一个group中,同时group名称可以有多个,类似@Test(groups = {"group1","group2"})这种,范例如下:

package com.ciphergateway.testcast;



import org.testng.Assert;

import org.testng.annotations.*;



public class test2 {

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

    @Test(groups="group1")
    public void test11() {
        System.out.println("test11 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和test11
    @BeforeGroups(groups="group1")
    public void beforeGroups()
    {
        System.out.println("beforeGroups");
    }

    //只对group1有效,即test1和test11
    @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");
    }
}

执行结果:

在TestNG对应的配置文件testng.xmlmaven-surefire-plugin使用

testng.xml例子:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="HuTests">

    <test name="a-t1" preserve-order="true" >

        <classes>

            <class name="com.ciphergateway.testcast.intercase" />

            <class name="com.ciphergateway.testcast.test2" />

        </classes>

    </test>

</suite>

use TestNG suite XML files

<plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-surefire-plugin</artifactId>

        <version>2.22.1</version>

        <configuration>

          <suiteXmlFiles>

            <suiteXmlFile>testng.xml</suiteXmlFile>

          </suiteXmlFiles>

        </configuration>

</plugin>

参考:https://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html

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

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

TestNG断言

TestNG的断言种类很多,包括相等/不相等,true/false、为null/不为null、相同/不相同等。-->本次还未用到,下次总结

参考:

学习Maven之Maven Surefire Plugin(JUnit篇) - 辵鵵 - 博客园

https://www.dazhuanlan.com/oppanuna/topics/1364119

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁宁可可

您的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值