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依賴性測試 - 此示例演示如何使用dependOnMethodsdependsOnGroups來實現依賴性測試。
  • TestNG參數測試(XML和DataProvider) - 此示例演示如何使用XML或@DataProvider將參數傳遞到測試方法中。
  • TestNG參數測試(DataProvider) - 另一個@DataProvider示例。
  • TestNG + Selenium - 負載測試 - 此示例演示如何使用Selenium在網站上執行負載測試。
  • TestNG + Spring集成示例 - 此示例演示如何使用TestNG測試Spring組件。
  • JUnit 4 Vs TestNG比較 - JUnit 4和TestNG之間詳細功能的比較。