码迷,mamicode.com
首页 > 编程语言 > 详细

java—TestNG单元测试框架

时间:2020-07-05 13:40:44      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:not   属性   term   stat   pack   ann   assert   sse   res   

//依赖坐标
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.14.3</version>
    <scope>test</scope>
</dependency> 

TestNG的常用注解

1、@Test 

标记为测试方法

技术图片

 

 

 

2、 @BeforeMethod/@AfterMethod
在某个测试方法(method)执行之前/结束之后

3、@BeforeClass/@AfterClass
在某个测试类(class)所有开始之前/结束之后
 
4、@BeforeTest/@AfterTest
在某个测试(test)所有测试方法执行开始之前/结束之后
 
5、@BeforeSuite/@AfterSuite
在某个测试套件(suite)所有测试方法执行开始之前/结束之后

package com.learn.testing;

import org.testng.annotations.*;

public class TestingTest {
    @BeforeMethod
    public void setUpMethod(){
        System.out.println("测试方法之前");
    }
    @AfterMethod
    public void tearDownMethod(){
        System.out.println("测试方法之后");
    }
    @BeforeClass
    public void setUpClass(){
        System.out.println("测试类之前");
    }
    @AfterClass
    public void tearDownClass(){
        System.out.println("测试类之后");
    }
    @Test
    public void printA(){
        System.out.println("A");
    }
    @Test
    public void printB(){
        System.out.println("B");
    }
}


结果:

测试类之前

测试方法之前

A

测试方法之后

测试方法之前

B

测试方法之后

测试类之后

 

 

Test注解常用属性 

1、忽略测试:

当我们在测试的过程中,因为某些方面的原因,比如测试方法没有写完,或者有问题,我们暂时希望它不得到执行,我们就可以添加忽略标签来跳过此方法的运行。
@Test(enabled = false)

 

 2、超时测试:

“超时”表示如果自动化测试花费的时间超过指定的毫秒数,那么TestNG将会中止它并将其标记为失败。这样在某些业务场景下,我们认为一个请求时间过长我们就可以直接宣判他因为超时而失败。
@Test(timeout=1000)
timeout属性的单位为毫秒。

@Test(timeOut=1000)
    public void printA() throws InterruptedException {
        Thread.sleep(2000);
        System.out.println("A");
    }

 

3、依赖测试:

测试方法依赖于某些方法
示例:
@Test(dependsOnMethods={"test2"})
方法执行顺序
step1:先执行被依赖的方法

step2:再依次执行没配置依赖的方法

step3:最后执行需要依赖的测试方法

(本来的执行顺序是按照字母先后执行的)

public class TestingTest02 {

    @Test(dependsOnMethods = {"printC", "printB"})
    public void printA() {
        System.out.println("A");
    }

    @Test
    public void printB() {
        System.out.println("B");
    }

    @Test
    public void printC() {
        System.out.println("C");
    }

}

结果:
B
C
A

//A依赖于BC,所以先执行BC

 

4、测试方法优先级:

@Test(priority = 1)

数字越小,优先级越高

 

 

TestNG常用断言 

1、Assert.assertTrue();
判断是否为True


2、Assert.assertFalse();
判断是否为false


3、Assert.assertEquals()
判断是否相等

String expectedValue ="lemon";
        int statusCode=200;
        Assert.assertEquals("lemo",expectedValue);
        Assert.assertEquals(404,statusCode);
        Assert.assertTrue(statusCode==404);
        Assert.assertTrue(statusCode==200);
        //web自动化一般根据什么来去做断言:
        //1、URL地址  2、title  3、页面提示信息  4、元素属性

 

java—TestNG单元测试框架

标签:not   属性   term   stat   pack   ann   assert   sse   res   

原文地址:https://www.cnblogs.com/erchun/p/13242239.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!