TestNG教學
測試是檢查應用程序的功能的過程是否按要求工作,在開發人員層面進行單元測試,在採取適當措施來測試每一個實體(類或方法)以確保最終產品符合要求。單元測試是非常必要的,這是軟件公司向他們的客戶提供高質量的軟件產品必要前提。
JUnit讓開發人員瞭解測試的實用性,尤其是在單元測試這一模塊上比任何其他測試框架都要簡單明瞭。憑藉一個相當簡單,務實,嚴謹的架構,JUnit已經能夠「感染」了一大批開發人員。 有關JUnit的特點,可以看看Junit教程瞭解。
JUnit缺點:
- 最初的設計,使用於單元測試,現在只用於各種測試。
- 不能依賴測試
- 配置控制欠佳(安裝/拆卸)
- 侵入性(強制擴展類,並以某種方式命名方法)
- 靜態編程模型(不必要的重新編譯)
- 不適合管理複雜項目應用,JUnit複雜項目中測試非常棘手。
TestNG是什麼?
TestNG按照官方的定義:
TestNG是一個測試框架,其靈感來自JUnit和NUnit,但引入了一些新的功能,使其功能更強大,使用更方便。
TestNG是一個開源自動化測試框架;TestNG表示下一代(Next Generation的首字母)。 TestNG類似於JUnit(特別是JUnit 4),但它不是JUnit框架的擴展。它的靈感來源於JUnit。它的目的是優於JUnit,尤其是在用於測試集成多類時。 TestNG的創始人是Cedric Beust(塞德里克·博伊斯特)。
TestNG消除了大部分的舊框架的限制,使開發人員能夠編寫更加靈活和強大的測試。 因爲它在很大程度上借鑑了Java註解(JDK5.0引入的)來定義測試,它也可以顯示如何使用這個新功能在真實的Java語言生產環境中。
TestNG的特點
- 註解
- TestNG使用Java和麪向對象的功能
- 支持綜合類測試(例如,默認情況下,不用創建一個新的測試每個測試方法的類的實例)
- 獨立的編譯時測試代碼和運行時配置/數據信息
- 靈活的運行時配置
- 主要介紹「測試組」。當編譯測試,只要要求
TestNG
運行所有的「前端」的測試,或「快」,「慢」,「數據庫」等 - 支持依賴測試方法,並行測試,負載測試,局部故障
- 靈活的插件API
- 支持多線程測試
TestNG(Next Generation)是一個測試框架,它受到JUnit和NUnit的啓發,而引入了許多新的創新功能,如依賴測試,分組概念,使測試更強大,更容易做到。 它旨在涵蓋所有類別的測試:單元,功能,端到端,集成等…
TestNG教程目錄
- TestNG Hello World示例 - 開始使用TestNG,創建一個簡單的測試用例以及如何執行它。
- TestNG配置註釋 - 此示例演示TestNG中支持的配置註釋列表。
- TestNG預期異常測試 - 這個例子演示瞭如何做異常測試 - @Test(expectedExceptions =?)。
- TestNG忽略測試 - 此示例演示如何啓用和禁用測試方法 -
[@Test](https://github.com/Test "@Test")(enabled = true)
。 - TestNG超時測試 - 確保測試方法必須在指定時間內完成 -
[@Test](https://github.com/Test "@Test")(timeOut = 5000)
。 - TestNG分組測試 - 此示例演示如何進行組測試 -
[@Test](https://github.com/Test "@Test")(groups =?)
,[@Test](https://github.com/Test "@Test")(dependsOnGroups??)
。 - TestNG套件測試 - 此示例演示如何使用
testng.xml
運行多個測試類。 - TestNG依賴性測試 - 此示例演示如何使用
dependOnMethods
和dependsOnGroups
來實現依賴性測試。 - TestNG參數測試(XML和DataProvider) - 此示例演示如何使用XML或@DataProvider將參數傳遞到測試方法中。
- TestNG參數測試(DataProvider) - 另一個@DataProvider示例。
- TestNG + Selenium - 負載測試 - 此示例演示如何使用Selenium在網站上執行負載測試。
- TestNG + Spring集成示例 - 此示例演示如何使用TestNG測試Spring組件。
- JUnit 4 Vs TestNG比較 - JUnit 4和TestNG之間詳細功能的比較。