【java测试-testng1】常用注解的使用

1.testng是什么?

是一个测试框架,其灵感来自JUnit和NUnit,但引入了一些新的功能,使其功能更强大,使用更方便。

 

2.testng常用注解

2.1.pom.xml引入依赖

<dependency>
       <groupId>org.testng</groupId>
       <artifactId>testng</artifactId>
       <version>6.10</version>
</dependency>

2.2.编写测试类

package com.coke.testng;

import org.testng.annotations.*;


public class Basic {

    @Test
    public void test1(){
        System.out.println("这是第1个测试用例...");
    }

    @Test
    public void test2(){
        System.out.println("这是第2个测试用例...");
    }

    // 忽略测试
    @Test(enabled = false)
    public void test3(){
        System.out.println("这是第3个测试用例...");
    }

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

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

    @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()...");
    }
}
package com.coke.testng;

import org.testng.annotations.Test;

// 超时测试

public class TimeOutTest {

    @Test(timeOut = 4000)
    public void testSuccess() throws InterruptedException {
        Thread.sleep(3000);
    }


    @Test(timeOut = 2000)
    public void testFail() throws InterruptedException {
        Thread.sleep(3000);
    }

}
package com.coke.testng;

import org.testng.annotations.Test;

public class RunTimeTest {

    /**
     * 异常测试,当实际结果与预期的异常一致时,认为测试通过,反之失败
     */

    @Test(expectedExceptions = RuntimeException.class)
    public void runTimeExceptionFail(){
        System.out.println("这是一个失败的异常测试用例...");
    }


    @Test(expectedExceptions = RuntimeException.class)
    public void runTimeExceptionSuccess(){
        System.out.println("这是一个成功的异常测试用例...");

        // 手动抛出异常
        throw new RuntimeException();
    }

    @Test
    public void test1(){
        System.out.println("test1()方法执行了");
        // 当被依赖的方法执行失败了,后面的测试用例都是ignore
        throw new RuntimeException();
    }

    @Test
    public void test2(){
        System.out.println("test2()方法执行了");
    }

    // 依赖测试
    @Test(dependsOnMethods = {"test1"})
    public void test3(){
        System.out.println("test3()方法执行了");
    }
}

2.3.常用注解总结:

/*
@Test 注释的方法,表名该方法是测试方法
@BeforeClass 该方法执行在所有测试方法之前,只执行一次
@AfterClass 该方法执行在所有测试方法之后,只执行一次
@BeforeMethod 该方法执行在每个测试方法之前
@AfterMethod 该方法执行在每个测试方法之后
@BeforeSuite 该方法执行在每个测试套件开始之后,只执行一次
@AfterSuite 该方法执行在每个测试套件结束之前,只执行一次
@Test(enabled = false) 忽略该测试方法
@Test(timeOut = 4000) 测试方法执行时间超过4s,认为失败
@Test(expectedExceptions = RuntimeException.class) 异常测试,当实际结果与预期的异常一致时,认为测试通过,反之失败 @Test(dependsOnMethods = {"test1"}) 当被依赖的方法执行失败了,后面的测试用例都是ignore
*/

 

posted @ 2021-01-11 08:47  愚人李愚  阅读(202)  评论(0编辑  收藏  举报