当前位置: 首页 > 工具软件 > TestNG > 使用案例 >

testng介绍

江鹏
2023-12-01

1、testng是什么?
TestNG是Java中的一个测试框架

2、testng用来干什么?
即可以用来做单元测试,也可以用来做集成测试。

3、特点
-注解
-TestNG使用Java和面向对象的功能
-支持综合类测试(例如,默认情况下,没有必要创建一个新的测试每个测试方法的类的实例)
-独立的编译时间测试代码运行时配置/数据信息
-灵活的运行时配置
-主要介绍“测试组”。当编译测试,只要问TestNG运行所有的“前端”的测试,或“快”,“慢”,“数据库”等
-支持依赖测试方法,并行测试,负载测试,局部故障
-灵活的插件API
-支持多线程测试

4、测试方法
testng异常测试
TestNG通过@Test(expectedExceptions) 来判断期待的异常, 并且判断Error Message

testng组测试

public class GroupTest {       
      @Test(groups = {"systemtest"})   
      public void testLogin(){       
      System.out.println("this is test login");    }    
          
     @Test(groups = {"functiontest"})    
      public void testOpenPage(){        
      System.out.println("this is test Open Page");   
    }
 }
然后在testng.xml中 按组执行测试用例 
           <groups>        
           <run>        
           <include name="functiontest" />        
           </run>    
           </groups>

testng参数化测试

第一种: testng.xml 方式使代码和测试数据分离,方便维护
    @Test
    @Parameters("test1")
    public void ParaTest(String test1){
        System.out.println("This is " + test1);
    }
    testng.xml中
            <parameter name="test1" value="Tank" />
        <parameter name="test1" value="Xiao" />
    第二种:@DataProvider能够提供比较复杂的参数。 (也叫data-driven testing)
    @DataProvider(name="user")
    public Object[][] Users(){
        return new Object[][]{
                {"root","passowrd"},
                {"cnblogs.com", "tankxiao"},
                {"tank","xiao"}
        };
    }

    @Test(dataProvider="user")
    public void verifyUser(String userName, String password){
        System.out.println("Username: "+ userName + " Password: "+ password);
    }

testng忽略测试

有时候测试用例还没准备好, 可以给测试用例加上@Test(enable = false), 来禁用此测试用例

testng依赖测试

@Test
public void setupEnv(){
System.out.println(“this is setup Env”);
}
@Test(dependsOnMethods = {“setupEnv”})
public void testMessage(){
System.out.println(“this is test message”);
}

testng注释说明

@BeforeSuite - 对于套件测试,在此套件中的所有测试运行之前运行。
@AfterSuite - 对于套件测试,在此套件中的所有测试运行之后运行。
@BeforeTest - 对于套件测试,在运行属于标签内的类的任何测试方法之前运行。
@AfterTest - 对于套件测试,在运行属于标签内的类的所有测试方法都已运行之后运行。
@BeforeGroups:在调用属于该组的第一个测试方法之前运行。
@AfterGroups:在调用属于组的最后一个测试方法之后运行。
@BeforeClass- 在当前类的第一个测试方法之前运行。
@AfterClass - 运行当前类中的所有测试方法之后都运行。
@BeforeMethod - 在每个测试方法之前运行。
@AfterMethod - 在每个测试方法之后运行。

@DataProvider 标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。
@Factory 作为一个工厂,返回TestNG的测试类的对象将被用于标记的方法。该方法必须返回Object[]。
@Listeners 定义一个测试类的监听器。
@Parameters 介绍如何将参数传递给@Test方法。
@Test 标记一个类或方法作为测试的一部分。

 类似资料: