testNG

1.testng.xml结构规则

  
  

  
  
  
    
      
      
    

    
      
      
      
    
  

  
  
    
      
        
        
        
      
    
  

2.TestNG注解

用于在测试类中注解:


TestNG注解.png
注解 描述
@BeforeSuite 在该套件的所有测试都运行在注释的方法之前,仅运行一次。
@AfterSuite 在该套件的所有测试都运行在注释方法之后,仅运行一次。
@BeforeClass 在调用当前类的第一个测试方法之前运行,注释方法仅运行一次。
@AfterClass 在调用当前类的第一个测试方法之后运行,注释方法仅运行一次。
@BeforeTest 注释的方法将在属于标签内的类的所有测试方法运行之前运行。
@AfterTest 注释的方法将在属于标签内的类的所有测试方法运行之后运行。
@BeforeGroups 配置方法将在之前运行组列表。 此方法保证在调用属于这些组中的任何一个的第一个测试方法之前不久运行。
@AfterGroups 此配置方法将在之后运行组列表。该方法保证在调用属于任何这些组的最后一个测试方法之后不久运行。
@BeforeMethod 注释方法将在每个测试方法之前运行。
@AfterMethod 注释方法将在每个测试方法之后运行。
@DataProvider 标记一种方法来提供测试方法的数据。 注释方法必须返回一个Object [] [],其中每个Object []可以被分配给测试方法的参数列表。 要从该DataProvider接收数据的@Test方法需要使用与此注释名称相等的dataProvider名称。
@Factory 将一个方法标记为工厂,返回TestNG将被用作测试类的对象。 该方法必须返回Object []
@Listeners 定义测试类上的侦听器。
@Parameters 描述如何将参数传递给@Test方法。
@Test 将类或方法标记为测试的一部分
3.Java文件的测试用例中通过获取数据
  • 方法一,Parameters:

    @Test(parameters=“para1”)
    public void testcase(string para1){
      
      System.out.println("参数值为:"+"para1");
    }
    
    调用数据的方法:
    @Test(parameters="para1")
    

说明:如果有多个参数,可以使用:@Test(parameters={"para1","para2"})

  • 方法二,DataProvider:

    @DataProvider
    public Object[][] dataprovider(){
        return new Object[][]{{1,2,3},{3,2,1}};
    }
    
    调用数据方法:
    @Test(dataprovider="dataprovider")
    

说明:

  1. @DataProvider只能返回Object数组结果
  2. Object的行中的每一列标识一个参数(比如上面的例子是3个参数),列数决定了调用的方法要执行的次数(比如上面的例子是执行2次)
  3. 方法的执行次数为赋值参数的遍数。比如提供数组为1行,则只执行一次;如果是数组为3行,则执行3次。
  4. 获取数据的dataprovider()和方法调用数据时的“dataprovider”要相同,这里的值是区分大小写的

扩展:

  1. @DataProvider写在单独的class里,增强复用性。
    这时调用该数据的方法为:@Test(dataprovider="XXX",dataClass=YYY.class)
    说明:读取YYY.class下的@DataProvider为XXX的Object数组数据
  2. @DataProvider下定义的数组,通过其他文件读取,比如读取excel,返回一个Object数组
  3. @DataProvider和@Parameters不能同时声明,但是可以通过其他方法实现同时使用。
  4. @DataProvide可以通过parallel实现并行执行线程,默认10个,可以在testng.xml中进行修改(
    @DataProvider(name = "dataprovider1",parallel = true)
    public Object[][] dataprovide(){
    ​ return new Object[][]{{1,2},{2,1}};
    }

你可能感兴趣的:(testNG)