TestNG框架自動化簡述


------Web自動化測試之Webdriver+TestNG--從零到熟練(系列)

      在做頁面自動化測試的時候,有很多語言和框架可以選擇,如語言有java,python,php,而框架有各種unittest框架,TestNG框架等等。先前我們介紹過WebDriver+python做頁面自動化的教程,小伙伴們的熱情挺高,博客訪問量暴漲。

那么問題就來了,有的同學開始學習的就是python,這樣就比較容易上手,而有些兒同學學習的是java,也想學習自動化測試。WebDriver+java做頁面自動也非常方便,下面我們就開始介紹,在TestNG框架下使用WebDriver+java來做頁面自動測試。

1.1   TestNG簡介

既然要用TestNG來做自動化測試,我們就需要先了解一下什么是TestNG?

TestNG按照其文檔的定義是:

TestNG是一個測試框架,其靈感來自JUnit和NUnit的,但引入了一些新的功能,使其功能更強大,使用更方便。

TestNG是一個開源自動化測試框架;TestNG表示下一代。 TestNG是類似於JUnit(特別是JUnit 4),但它不是一個JUnit擴展。它的靈感來源於JUnit。它的目的是優於JUnit的,尤其是當測試集成的類。 TestNG的創造者是Cedric Beust(塞德里克·博伊斯特)

TestNG消除了大部分的舊框架的限制,使開發人員能夠編寫更加靈活和強大的測試。 因為它在很大程度上借鑒了Java注解(JDK5.0引入的)來定義的測試,它也可以告訴你如何使用這個新功能在真實的Java語言生產環境中。

1.2   TestNG的特點

TestNG的特點主要集中在以下幾點:

Ø  注解。

Ø  TestNG使用Java和面向對象的功能。

Ø  支持綜合類測試(例如,默認情況下,沒有必要創建一個新的測試每個測試方法的類的實例)。

Ø  獨立的編譯時間測試代碼運行時配置/數據信息。

Ø  靈活的運行時配置。

Ø  主要介紹“測試組”。當編譯測試,只要問TestNG運行所有的“前端”的測試,或“快”,“慢”,“數據庫”等。

Ø  支持依賴測試方法,並行測試,負載測試,局部故障。

Ø  靈活的插件API。

Ø  支持多線程測試。

1.3   TestNG的注釋

傳統的方式來表示JUnit 3中的測試方法是測試自己的名字前綴。標記一個類中的某些方法,具有特殊的意義,這是一個非常有效的方法,但命名不很好的擴展(如果我們想添加更多標簽為不同的框架?),而非缺乏靈活性(如果我們要通過額外的參數測試框架)。注釋被正式加入到JDK 5中的Java語言和TestNG作出選擇使用注釋注釋測試類。

這里是TestNG的支持列表中的注解:

(1)@BeforeSuite

注解的方法將只運行一次,運行所有測試前此套件中。

(2)@AfterSuite

注解的方法將只運行一次此套件中的所有測試都運行之后。

(3)@BeforeClass

注解的方法將只運行一次先行先試在當前類中的方法調用。

(4)@AfterClass

注解的方法將只運行一次后已經運行在當前類中的所有測試方法。

(5)@BeforeTest

注解的方法將被運行之前的任何測試方法屬於內部類的 標簽的運行。

(6)@AfterTest

注解的方法將被運行后,所有的測試方法,屬於內部類的標簽的運行。

(7)@BeforeGroups

組的列表,這種配置方法將之前運行。此方法是保證在運行屬於任何這些組第一個測試方法,該方法被調用。

(8)@AfterGroups

組的名單,這種配置方法后,將運行。此方法是保證運行后不久,最后的測試方法,該方法屬於任何這些組被調用。

(9)@BeforeMethod

注解的方法將每個測試方法之前運行。

(10)@AfterMethod

被注釋的方法將被運行后,每個測試方法。

(11)@DataProvider

標志着一個方法,提供數據的一個測試方法。注解的方法必須返回一個Object[] [],其中每個對象[]的測試方法的參數列表中可以分配。

 該@Test 方法,希望從這個DataProvider的接收數據,需要使用一個dataProvider名稱等於這個注解的名字。

(12)@Factory

作為一個工廠,返回TestNG的測試類的對象將被用於標記的方法。該方法必須返回Object[]。

(13)@Listeners

定義一個測試類的監聽器。

(14)@Parameters

介紹如何將參數傳遞給@Test方法。

(15)@Test

標記一個類或方法作為測試的一部分。

使用注釋的好處:

Ø  TestNG的標識的方法關心尋找注解。因此,方法名並不限於任何模式或格式。

Ø  我們可以通過額外的參數注解。

Ø  注釋是強類型的,所以編譯器將標記任何錯誤。

Ø  測試類不再需要任何東西(如測試案例,在JUnit3)擴展。

1.4 WebDriver簡介

   做頁面自動化不可能不知道WebDriver,也就是我們常說的Selenium2.0。Selenium 2.0主要的特性就是與WebDriver API的集成。WebDriver旨在提供一個更簡單,更簡潔的編程接口以及解決一些Selenium-RC API的限制。Selenium-Webdriver更好的支持頁面本身不重新加載而頁面的元素改變的動態網頁。WebDriver的目標是提供一個良好設計的面向對象的API,提供了對於現代先進web應用程序測試問題的改進支持。

   WebDriver通過大量的API函數來模擬用戶操作,從而組合各種測試用例。對於其基本原理在此就不多講了,針對不同的腳本語言,WebDriver提供了不同的API,不過大致是相通的,后面我們將具體講述.

1.5 本章小結

   本章我們介紹了TestNG框架的相關知識點,TestNG框架可以很好地幫我們完成WebDriver+java的頁面自動化工作。通過各種注釋的靈活運行,可以使你的測試用例更加完美,定制符合要求的測試用例。最后我們簡單地介紹了一下WebDriver,這個是做自動化測試的同學非常熟悉的。從Selenium1.0而后升級到WebDriver,框架功能越來越強,我們的自動化測試工作也就變的相當來說容易了許多。加上這個框架是開源的,我們可對其進行二次開發,開發出符合我們需求的自動化測試工具。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM