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二