Java--TestNG

Posted 学习是不让自己瞎想的最好方式

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java--TestNG相关的知识,希望对你有一定的参考价值。

 

TestNG类的配置信息: 
  @BeforeSuite:在此套件中的所有测试运行之前,将运行带注释的方法。 
  @AfterSuite:在此套件中的所有测试运行后,将运行带注释的方法。 
  @BeforeTest:在运行属于<test>标记内的类的任何测试方法之前,将运行带注释的方法。 
  @AfterTest:在运行了属于<test>标记内的类的所有测试方法之后,将运行带注释的方法。 
  @BeforeGroups:此配置方法之前将运行的组列表。保证在调用属于任何这些组的第一个测试方法之前不久运行此方法。 
  @AfterGroups:此配置方法将在之后运行的组列表。保证在调用属于任何这些组的最后一个测试方法后不久运行此方法。 
  @BeforeClass:在调用当前类中的第一个测试方法之前,将运行带注释的方法。 
  @AfterClass:在运行当前类中的所有测试方法之后,将运行带注释的方法。 
  @BeforeMethod:带注释的方法将在每个测试方法之前运行。 
  @AfterMethod:带注释的方法将在每个测试方法之后运行。

 

TestNG类的超类中的注释行为:

  在这种情况下,TestNG保证“@Before”方法以继承顺序执行(首先是最高超类,然后是继承链),而“@After”方法则按相反的顺序执行(向上继承链)。

 

TestNG.xml文件样例:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
 3 <!-- @BeforeSuite -->
 4 <suite name="All Test Suite">
 5     <test verbose="1" preserve-order="true" name="Z:\project\XunitDemo">
 6         <!-- @BeforeGroups -->
 7         <groups>
 8             <dependencies>
 9                 <group name="group1" depends-on="" >
10                     <classes>
11                         <class name="QFDemo.LoginTest">
12                             <methods>
13                                 <parameter name="username" value="lisi"></parameter>
14                                 <!-- 通过方法名来运行 -->
15                                 <include name="testUserLogin"></include>
16                                 <exclude name="testUserLogin1"></exclude>
17                             </methods>
18                         </class>
19                         <!-- 通过类名来运行 -->
20                         <class name="QFDemo.DataProviderParameterTest"></class>
21                     </classes>
22                 </group>
23                 <!-- 通过groupName来运行 -->
24                 <group name="group2" depends-on="">
25                     <run>
26                         <!-- 测试方法上可以定义groups = {"",""} -->
27                         <include name="1group1"></include>
28                         <exclude name="1group2"></exclude>
29                     </run>
30                 </group>
31             </dependencies>
32         </groups>
33     </test>
34 </suite>
35 <!-- @AfterSuite -->

 

数据驱动(参数类型可以任意对象:List、Map、String等):

 1 package QFDemo;
 2 
 3 import org.testng.annotations.BeforeGroups;
 4 import org.testng.annotations.DataProvider;
 5 import org.testng.annotations.Test;
 6 
 7 import java.util.ArrayList;
 8 import java.util.List;
 9 
10 public class DataProviderParameterTest {
11 
12     @BeforeGroups(groups = "group10")
13     public void groupsSetUp(){
14         System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!groups!!!!!!!!!!!!!!!!!!!!!!!");
15     }
16 
17     @Test(parameters = {"user","password"})
18     public void testTwo(String user, String password){
19         System.out.println("user is : " + user + " password is : " + password);
20     }
21 
22     @Test(dataProvider = "listString", groups = "group10")
23     public void testOne(List<String> stringList){
24         for (String s:stringList){
25             System.out.println(s);
26         }
27     }
28 
29     @DataProvider(name = "listString")
30     public Object[][] provideP(){
31         List<String> listOne = new ArrayList<String>();
32         listOne.add("a");
33         listOne.add("b");
34         listOne.add("over");
35         return new Object[][] {{listOne}};
36     }
37 }

 

详情请至:https://testng.org/doc/documentation-main.html#introduction

 











以上是关于Java--TestNG的主要内容,如果未能解决你的问题,请参考以下文章

接口测试——Java + TestNG 国家气象局接口(json解析)实例

接口测试(java+testng+ant+jenkins)第一篇 java

接口测试(java+testng+ant+jenkins)第五篇 java二

接口测试(java+testng+ant+jenkins)第二篇testng

java—TestNG单元测试框架

java+testng接口测试入门