章节十六、4-TestNG高级功能--Part1

一、 把测试方法分优先级执行-----》(priority=索引)

1、新建一个testng方法

 1 package testclasses;
 2 
 3 import org.testng.annotations.Test;
 4 import org.testng.annotations.BeforeMethod;
 5 import org.testng.annotations.AfterMethod;
 6 import org.testng.annotations.BeforeClass;
 7 import org.testng.annotations.AfterClass;
 8 import org.testng.annotations.BeforeTest;
 9 import org.testng.annotations.AfterTest;
10 
11 public class TestNG_Prioritiy {
12 
13     @Test
14     public void test1() {
15         System.out.println("在类中排序为第一的test");
16     }
17 
18     @Test
19     public void test2() {
20         System.out.println("在类中排序为第二的test");
21     }
22 
23     @Test
24     public void test3() {
25         System.out.println("在类中排序为第三的test");
26     }
27 
28     @Test
29     public void test4() {
30         System.out.println("在类中排序为第四的test");
31     }
32 
33     @BeforeClass
34     public void beforeClass() {
35         System.out.println("BeforeClass");
36     }
37 
38     @AfterClass
39     public void afterClass() {
40         System.out.println("AfterClass");
41     }
42 }

 默认的运行顺序为:

章节十六、4-TestNG高级功能--Part1_第1张图片

3、如果我们需要让test按照我们规定的方法,只需要在备注的test后面加上(priority=?)即可(索引位从0开始)

 1 package testclasses;
 2 
 3 import org.testng.annotations.Test;
 4 import org.testng.annotations.BeforeMethod;
 5 import org.testng.annotations.AfterMethod;
 6 import org.testng.annotations.BeforeClass;
 7 import org.testng.annotations.AfterClass;
 8 import org.testng.annotations.BeforeTest;
 9 import org.testng.annotations.AfterTest;
10 
11 public class TestNG_Prioritiy {
12 
13     @Test(priority=3)
14     public void test1() {
15         System.out.println("在类中排序为第一的test");
16     }
17 
18     @Test(priority=0)
19     public void test2() {
20         System.out.println("在类中排序为第二的test");
21     }
22 
23     @Test(priority=1)
24     public void test3() {
25         System.out.println("在类中排序为第三的test");
26     }
27 
28     @Test(priority=2)
29     public void test4() {
30         System.out.println("在类中排序为第四的test");
31     }
32 
33     @BeforeClass
34     public void beforeClass() {
35         System.out.println("BeforeClass");
36     }
37 
38     @AfterClass
39     public void afterClass() {
40         System.out.println("AfterClass");
41     }
42 }

打印结果为:

章节十六、4-TestNG高级功能--Part1_第2张图片

 

二、 如何给测试方法分组执行 -----》(groups= {"分组名"})

 1、给test方法进行分组

一个test方法可以在多个分组内,格式(groups= {"分组名","分组名"})

 1 package testclasses;
 2 
 3 import org.testng.annotations.Test;
 4 import org.testng.annotations.BeforeClass;
 5 import org.testng.annotations.AfterClass;
 6 
 7 public class TestNG_Grouping {
 8     
 9     @Test(groups= {"cars","suv"})
10     public void testBMWx6() {
11         System.out.println("Running Test - BMW X6");
12     }
13 
14     @Test(groups= {"cars","sedan"})
15     public void testAudiA6() {
16         System.out.println("Running Test - Audi A6");
17     }
18 
19     @Test(groups= {"bike"})
20     public void testKawasakiNinja() {
21         System.out.println("Running Test - Kawasaki Ninja");
22     }
23 
24     @Test(groups= {"bike"})
25     public void testHondaCBR() {
26         System.out.println("Running Test - Honda CBR");
27     }
28 
29     @BeforeClass
30     public void beforeClass() {
31         System.out.println("BeforeClass");
32     }
33 
34     @AfterClass
35     public void afterClass() {
36         System.out.println("AfterClass");
37     }
38 }

2、配置xml文件

 1 
 2 
 3 
 4     
 5     
 6         
 7         
 8             
 9                 
10                 
11             
12         
13         
14         
15             <class name="testclasses.TestNG_Grouping">class>
16         
17     
18 

运行结果:

从结果可知,只运行了TestNG_Grouping类中带注解groups=bike的test方法

章节十六、4-TestNG高级功能--Part1_第3张图片

 3、但是,我们也可以从运行结果中得知,带了Beforeclass和afterclass注解的方法没有运行,按常理Beforeclass和afterclass会在类中的test方法执行前后给运行一次,此处没有运行时因为我们对test进行分组时未对class进行分组,如果我想让Beforeclass和afterclass注解的方法一起运行就需要在注解后面加上(alwaysRun=true)

章节十六、4-TestNG高级功能--Part1_第4张图片

运行结果为:

4、在xml配置文件中,我们不仅可以如上面1、2中演示的那样把test在xml文件中按照groups的名称来单独执行,也可以对groups再进行分组然后一次性执行多个groups。

 1 
 2 
 3 
 4     
 5     
 6         
 7         
 8             
 9                 
10                 
11                 
12             
13             
14                 
15                 
16             
17             
18                 
19                 
20             
21         
22         
23         
24             <class name="testclasses.TestNG_Grouping">class>
25         
26     
27 

章节十六、4-TestNG高级功能--Part1_第5张图片

运行结果为:

章节十六、4-TestNG高级功能--Part1_第6张图片

 

 

如果有不明白的小伙伴可以加群“555191854”问我,群里都是软件行业的小伙伴相互一起学习。

内容具有连惯性,未标注的地方可以看前面的博客,这是一整套关于ava+selenium自动化的内容,从java基础开始。

欢迎关注,转载请注明来源。

你可能感兴趣的:(章节十六、4-TestNG高级功能--Part1)