码迷,mamicode.com
首页 > 其他好文 > 详细

TestNg使用

时间:2015-10-14 19:50:13      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:

先来看个例子:

技术分享
 1 public class day5 {
 2     public WebDriver Driver;
 3     @BeforeClass
 4     //多数会用来做初始化使用
 5     public void Bclass()
 6     {
 7         System.out.println("BeforeClass");
 8     }
 9     
10     @DataProvider
11     public Object[][] logindata()
12     {
13         return new Object[][]{{"Ain"},{"Bin"}};
14     }
15     
16     @DataProvider(name="logoutdata")
17     public Object[][] logoutinfo()
18     {
19         return new Object[][]{{"Aout"},{"Bout"},{"Cout"}};
20     }
21     
22     
23     @BeforeMethod
24     public void setup()
25     {
26         System.out.println("setup");
27         System.setProperty("webdriver.firefox.bin", "D:/Mozilla Firefox/firefox.exe");
28         Driver=new FirefoxDriver();
29         Driver.manage().window().maximize();
30         Driver.navigate().to("http://www.baidu.com");
31     }
32     
33     @Test(dataProvider="logindata")
34     public void testA(String info)
35     {
36         System.out.println(info);
37     }
38     
39     @Test(dataProvider="logoutdata")
40     public void testB(String info)
41     {
42         System.out.println(info);
43     }
44     
45     @Test(dataProvider="logindata")
46     public void baidu(String info)
47     {
48         Driver.findElement(By.xpath(".//*[@id=‘kw‘]")).sendKeys(info);
49     }
50     
51     @AfterMethod
52     public void teardown()
53     {
54         System.out.println("teardown");
55         Driver.close();
56     }
57     
58     @AfterClass
59     public void Aclass()
60     {
61         System.out.println("AfterClass");
62         Driver.quit();
63     }
64     
65 
66 }
View Code

TestNg常用注解介绍

@Test

? 表示的意义: 1. 示该方法是一个测试方法,在运行时,会自动的运行有@Test注脚的方法

技术分享
1     @Test
2     public void testA(String info)
3     {
4         System.out.println(info);
5     }
View Code

 

@BeforeMethod/@ AfterMethod

? 表示的意义:

1. beforemethod这个注脚是指加了该注脚的方法在测试方法运行之前会自动的被调用运行

2. aftermethod该注脚的方法在每一个测试方法运行之后会自动的被调用运行

技术分享
 1     @BeforeMethod
 2     public void setup()
 3     {
 4         System.out.println("setup");
 5         System.setProperty("webdriver.firefox.bin", "D:/Mozilla Firefox/firefox.exe");
 6         Driver=new FirefoxDriver();
 7         Driver.manage().window().maximize();
 8         Driver.navigate().to("http://www.baidu.com");
 9     }
10 
11     @AfterMethod
12     public void teardown()
13     {
14         System.out.println("teardown");
15         Driver.close();
16     }
View Code

 

@BeforeClass/@AfterClass

? 表示的意义:

1. @BeforeClass与@AfterClass,这两个注脚的方法,也就是在每个类运行之前与之后会自动的被调用

? 用处:

1. 在自动化脚本运行时,一个类里面的所有测试方法设计的是在同一个浏览器里面运行,那么就是说在这个类对象产生之 前,就要把浏览器给启动起来,这时候@BeforeClass可以启动浏览器,@AfterClass就可以关闭浏览器了

技术分享
 1     @BeforeClass
 2     //多数会用来做初始化使用
 3     public void Bclass()
 4     {
 5         System.out.println("BeforeClass");
 6     }
 7 
 8 
 9 
10     @AfterClass
11     public void Aclass()
12     {
13         System.out.println("AfterClass");
14         Driver.quit();
15     }
View Code

 

@BeforeSuite/@AfterSuite /@BeforeTest/@AfterTest

? 用处: 这四个注解是分别用在Suite与Test上的,Suite与Test是定义在XML中的

 

TestNg数据驱动

? 什么是数据驱动:

1. 数据驱动是指在一个脚本固定的情况下,用数据来控制该脚本是否运行,以及运行的次数,还有每次运行时对应的参数.

? 数据驱动的应用场景:

1. 比如我们在测试登录时,要测试用不同的帐户登录,难道我们需要针对每一个帐户去写一个脚本吗?这样显然是不明智 的,于是,testng为我们提供了这样一个注脚,让我们只需要提供出数据,就可以控制脚本运行的次数及相应的参数.

? 实现方式:

1. 用注解@DataProvider. 

技术分享
 1     @DataProvider
 2     public Object[][] logindata()
 3     {
 4         return new Object[][]{{"Ain"},{"Bin"}};
 5     }
 6     
 7     @DataProvider(name="logoutdata")
 8     public Object[][] logoutinfo()
 9     {
10         return new Object[][]{{"Aout"},{"Bout"},{"Cout"}};
11     }
View Code

1. @DataProvider注脚的方法的返回值是Object对象的二维数组

2. @DataProvider可以指定名称如@DataProvider(name="testData"),这样在测试方法中 @Test(dataProvider="testData"),如果没有跟(name="testData"),则测试方法中的dataProvider的值就应该为 @DataProvider注脚的方法名 

 

TestNg用XML运行

– 以class为基本点 

技术分享

– 以method为基本点 

技术分享

– 以package为基本点

技术分享

 

TestNg用例管理

? 用例管理原则—用例独立少依赖

TestNg使用

标签:

原文地址:http://www.cnblogs.com/leoliyue/p/4878301.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!