Java优秀测试框架 - TestNG

我们为什么需要TestNG?

  Java有好几个测试框架,JUnit是比较常见的一个,Spring系列默认的测试框架就是JUnit。TestNG也是Java的一个测试框架,与JUnit功能类似, 但支持更多的注解与功能。

  我们常使用JUnit做单元测试,而在做自动化测试时,更偏向于选择TestNG。

TestNG搭建

  Maven工程中,添加TestNG依赖包即可,可自行选择版本:

		<dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>7.1.0</version>
            <scope>test</scope>
        </dependency>

TestNG注解及功能

  TestNG的注解与JUnit类似,但会更丰富,更细致:

注解 描述
@Test 标记一个类里所有的public void方法,或某个方法,作为测试案例。
@BeforeSuite 对于套件测试,在此套件中的所有测试执行之前运行,仅运行一次。
@AfterSuite 对于套件测试,在此套件中的所有测试执行之后运行,仅运行一次。
@BeforeClass 在调用当前类之前运行,只运行一次。
@AfterClass 在调用当前类之后运行,只运行一次。
@BeforeTest 对于套件测试,在属于标签内的所有类的测试方法执行之前运行。
@AfterTest 对于套件测试,在属于标签内的所有类的测试方法都已执行完之后运行。
@BeforeGroups 在调用属于该组的第一个测试方法之前运行。
@AfterGroups 在调用属于该组的最后一个测试方法执行之后运行 。
@BeforeMethod 注解的方法将每个测试方法之前运行。
@AfterMethod 在每个测试方法执行之前都会运行。
@DataProvider 标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。
@Factory 作为一个工厂,返回TestNG的测试类的对象将被用于标记的方法。该方法必须返回Object[]。
@Listeners 定义一个测试类的监听器。
@Parameters 用于将参数传递给@Test方法。

TestNG配置文件

  对比JUnit,TestNG最显眼的区别就是多了一个配置文件。

  有了这个配置文件的存在,可以更方便的管理测试案例的执行。

1.新增配置文件

  在项目根目录下,新增testng.xml格式的配置文件,文件名任意,配置文件可以有多个。

  maven工程在pom文件中,指定配置文件路径后,可以直接运行配置文件:

			<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M4</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>./testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TestNGJava中的一个开源自动化测试框架,它可以用于生成测试用例。TestNG的灵感来源于JUnit,但是它在多类测试集成方面更加优秀TestNG使用注解来识别需要执行的测试方法,这样方法名称就不再受限制,而且可以传递其他参数给注解。另外,TestNG还支持多线程测试,灵活的插件API等特性。使用TestNG生成测试用例的基本格式如下: 1. 导入TestNG的相关包: ```java import org.testng.annotations.*; ``` 2. 创建测试类,并使用`@Test`注解来标记测试方法。例如: ```java public class DemoTest { @BeforeClass public void setUp() { // 初始化代码 } @Test(groups = {"fast"}) public void aFastTest() { // 快速测试的代码 } @Test(groups = {"slow"}) public void aSlowTest() { // 慢速测试的代码 } } ``` 3. 创建一个xml文件,该文件代表一个测试集。在xml文件中可以定义多个test,每个test可以指定要执行的测试用例的class,以及要执行哪些用例。如果不指定method,则默认执行该class中的所有用例。例如: ```xml <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="Test Suite"> <test name="Test 1"> <classes> <class name="com.demo.apitest.testcase.DemoTest"> <methods> <include name="aFastTest" /> </methods> </class> </classes> </test> <test name="Test 2"> <classes> <class name="com.demo.apitest.testcase.DemoTest"> <methods> <include name="aSlowTest" /> </methods> </class> </classes> </test> </suite> ``` 通过以上步骤,你可以使用TestNG来生成并执行自动化测试用例。你可以根据需要在测试类中添加更多的测试方法,并在xml文件中进行配置,以满足你的测试需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值