功能測試的流程:
分析需求 → 排測試計劃 → 設(shè)計測試用例 → 執(zhí)行測試用例
TestNG說明
TestNG 最重要的是注腳 @Test 的使用,一個方法加上 @Test 就表示其是一個測試方法,我們把每一個測試用例封裝在不同的 @Test 方法中,那么也就用自動化代碼實現(xiàn)了功能測試用例的設(shè)計。
常用注腳:
@BeforeClass/@AfterClass
(1)表示的意義:每個測試類運行前和運行后進行執(zhí)行。
(2)運行次數(shù):每次啟動一個測試類,無論其中有多少個測試方法,這對注腳都只執(zhí)行一次。
(3)應(yīng)用場景:可以用于啟動瀏覽器和退出瀏覽器。
@BeforeMethod/@ AfterMethod
(1)表示的意義:
@BeforeMethod 在每個 @Test 方法之前會自動被執(zhí)行;
@AfterMethodz 在每個 @Test 方法之后會自動被執(zhí)行;
(2)運行次數(shù):這對注腳的運行次數(shù)與同一個測試類中包含多少個 @Test 方法有關(guān),如果一個測試類中有 N( N>0 的整數(shù))個 @Test 方法,那么這對注腳就別被執(zhí)行 N 次。
(3)應(yīng)用場景:我們知道瀏覽器是會產(chǎn)生緩存的,所以可以在這對注腳里寫清除或者刷新瀏覽器緩存的代碼。
其他注腳
還有@BeforeSuite/@AfterSuite與@BeforeTest/@AfterTest 。但是寫在 TestNG 啟動的 XML 文件中。
TestNG 的優(yōu)點
(1)用例可以依據(jù) testng-customsuite.xml 進行執(zhí)行順序、個數(shù)的優(yōu)化;
(2)可以通過數(shù)據(jù)驅(qū)動進行多線程測試;
(3)可以不再依靠主方法 Main 進行方法的執(zhí)行。
斷言類方法:
(1)通過獲取 UI 上的某個控件對象的某種屬性值和期望值進行比較來驗證是否正確。
(2)頁面跳轉(zhuǎn)后通過驗證頁面上某個控件對象是否存在,來判斷是否緩沖完成。
Assert 類常用的方法:
(1)Assert.assertEquals 判斷是否相等,Object 類型的對象需要實現(xiàn) haseCode及equals 方法。
(2)Assert.assertFalse(condition) 判斷是否為 false。
(3)Assert.assertNotEquals(actual1, actual2) 判斷是否不相等。
(4)Assert.assertNotNull(object) 判斷是否不為 null。
(5)Assert.assertNotSame(actual, expected, message) 判斷引用地址是否不相同。
(6)Assert.assertNull(object, message) 判斷是否為 null。
(7)Assert.assertSame(actual, expected) 判斷引用地址是否相同。
(8)Assert.assertTrue(condition) 判斷是否為 True。
總結(jié)
(1)掌握 TestNG 的使用方法。
(2)切記 Assert 斷言類的使用場景,場景不清晰就根本設(shè)置不好斷言,另外斷言并不是越多越好,代碼過多會影響程序的執(zhí)行效率。