TestNG是一個測試架構,它能覆寫不同層級的測試,例如,單元測試,內建測試,端對端測試等。可以把Selenium和TestNG結合一起,在Eclipse中用Java寫TestNG腳本。
TestNG的一些特點
1)注釋,很多注釋提供
2)支援資料驅動測試(@DataProvider)
3)支援變量
4)自動生成測試報告
5)通過配置testng.xml,我們可以隻執行測試失敗的用例
6)支援很多IDE工具(Eclipse等)
7)預設JDK支援監控運作和日志
8)獨立的程式伺服器測試方法(API)
testng.xml檔案内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- Suite相關設定,這裡paraller是執行的模式,有tests classes methods三種取值,thread-count表示兩個線程執行用例 -->
<suite name="Suite" parallel="tests" thread-count="2">
<test name="Test1">
<parameter name="Browser" value="Firefox" />
<classes>
<class name="lessons.TestCrossBrowser"/>
</classes>
</test>
<test name="Test2">
<parameter name="Browser" value="chrome" />
<classes>
<class name="lessons.TestCrossBrowser"/>
</classes>
</test>
</suite>
這裡需要注意每個test标簽下的name不能重名,下面解釋下parallel這個屬性,上面提到有三種值。
1)tests
TestNG 會在相同的線程中運作相同<test>标記下的所有方法,但是每個<test>下的方法會運作在不同的線程下。
應用:可以将非線程安全的類放在同一個<test>标簽下,并且使其可以利用TestNG多線程的特性的同時,讓這些類運作在相同的線程中。(不太了解)
2)methods
TestNG 會在不同的線程中運作測試方法,除非那些互相依賴的方法。那些互相依賴的方法會運作在同一個線程中,并且遵照其執行順序。
3)classes
TestNG 會在相同線程中相同類中的運作所有的方法,但是每個類都會用不同的線程運作
屬性 thread-count 允許你為目前的執行指定可以運作的線程數量。
3.運作testng.xml
右鍵testng.xml檔案,選擇Run AS->TestNG Suite,觀察運作結果,在控制台輸出地方可以看到運作了2個test。這裡我們第一次用到testng.xml檔案,以後在架構設計會介紹通過這個testng.xml來管理和運作我們成百上千的測試用例。