TestNG詳解(單元測試框架)
一、TestNG的優點
1.1 漂亮的HTML格式測試報告
1.2 支持並發測試
1.3 參數化測試更簡單
1.4 支持輸出日誌
1.5 支持更多功能的註解
二、編寫TestNG測試用例的步驟
2.1 使用 Eclipse生成TestNG的測試程序框架
2.2 在生成的程序框架中編寫測試代碼邏輯
2.3 根據測試代碼邏輯,插入TestNG註解標簽
2.4 配置Testng.xml文件,設定測試類、測試方法、測試分組的執行信息
2.5 執行TestNG的測試程序
三、如何安裝TestNG?
啟動Eclipse,選擇Help-》Install New Software-》點擊add-》name中輸入TestNG,location中輸入“http://beust.com/eclipse/”,點擊ok-》在彈出的install對話框中勾選TestNG復選框-》Next-》Accept-》Finish
四、testNG用例執行後如何查看執行結果?
4.1 在Console標簽欄中展示測試用例的執行結果,如圖:
4.2 在工程下也會生成一個test-output文件夾,如圖:
五、TestNG常用註解:執行順序如下
@BeforeSuite > @BeforeTest > @BeforeMethod > @Test > @AfterMethod > @AfterTest > @AfterSuite
@BeforeSuite |
表示會在當前測試集合中的任意一個測試用例開始運行前執行 |
@AfterSuite |
表示會在當前測試集合中的所有測試程序運行結束之後執行 |
@BeforeTest |
表示會在Test中的任意一個測試用例開始運行前執行 |
@AfterTest |
表示會在Test中的所有測試用例運行結束後執行 |
@BeforeGroups |
分組測試用例的任一測試用例開始運行前執行 |
@AfterGroups |
分組測試用例的所有測試用例運行結束後執行 |
@BeforeClass |
在當前測試類的任意一個測試用例開始運行前執行 |
@AfterClass |
在當前測試類的所有測試用例運行結束後執行 |
@BeforeMethod |
在每個測試方法開始運行前執行 |
@AfterMethod |
在每個測試方法運行結束後執行 |
@Test |
被認為是一個測試方法,既一個測試用例 |
六、如何創建TestNG測試集合?
6.1 測試集合:在自動化測試的執行過程中,通常會產生批量運行多個測試用例的需求,此需求稱為運行測試集合(Test Suite)
6.2 TestNG的測試用例可以是相互獨立的,也可以按照特定的順序來執行(配置TestNG.xml)
6.3 如何配置testNG.xml文件?
<suite name = "TestNG Suite"> //自定義的測試集合名稱 <test name = "test1"> //自定義的測試名稱 <classes> //定義被運行的測試類 <class name = "cn.gloryroad.FirstTestNGDemo" /> //測試類的路徑 <class name = "cn.gloryroad.NewTest" /> </classes> </test> </suite>
七、測試用例的分組(group)
7.1 只執行一組分組配置如下:
<suite name = "TestNG Suite">
<test name = "Grouping">
<groups>
<run>
<include name = "動物" />
</run>
</groups>
<classes>
<class name = "cn.gloryroad.Grouping"/>
</classes>
</test>
</suite>
7.2 執行多組分組時配置如下(兩種形式都可以):
<suite name = "TestNG Suite"> <test name = "Grouping"> <groups> <run> <include name = "動物" /> //name分組名稱 <include name = "人" /> </run> </groups> <classes> <class name = "cn.gloryroad.Grouping"/> </classes> </test> </suite>
<suite name = "TestNG Suite"> <test name = "Grouping"> <groups>
<define name = "All">
<include name = "動物" />
<include name = "人" />
</define>
<run>
<include name = "All" />
</run>
</groups>
<classes> <class name = "cn.gloryroad.Grouping"/> </classes> </test> </suite>
八、依賴測試(dependsOnMethod)
@Test(dependsOnMethod = {"方法名稱"})
被依賴的方法優先於此方法執行
九、特定順序執行測試用例(priority)
@Test(priority = 0/1/2/3/4/…)
按照數字大小順序優先執行,優先執行1,然後是2…
十、如何跳過某個測試方法(enabled = false)
@Test(priority = 0/1… , enabled = false)
執行結束後,在測試報告中顯示跳過的測試用例數,例如skip=1
十一、測試報告中自定義日誌(Reporter.log(“輸入自定義內容”)),例如:
@Test(groups = {"人"})
public void student(){
System.out.println("學生方法被調用");
Reporter.log("學生方法自定義日誌");
}
TestNG詳解(單元測試框架)