摘要:類似于特別是,但它不是框架的擴展相較于而言,功能更強大,使用起來更加方便,比較適合測試人員來進行集成測試或是接口回歸測試。自帶生成的測試報告不太美觀,可以使用進行美化。
TestNG是一個開源自動化測試框架,TestNG表示下一代(Next Generation的首字母)。 TestNG類似于JUnit(特別是JUnit 4),但它不是JUnit框架的擴展,相較于Junit而言,功能更強大,使用起來更加方便,比較適合測試人員來進行集成測試或是接口回歸測試。
TestNG有以下幾大特點:使用java和面向對象的功能;
方法的名稱就不必受限于某種固定的格式,可以通過注釋來識別需要執行的方法;
方法中需要的一些參數可以通過注釋傳遞;
注釋是強類型的,所以有錯誤可以在編譯期體現出來;
支持分組測試,依賴測試,并行測試,負載測試等;
支持多線程測試。
描述 @Test 將類或是方法標記為測試的一部分 @BeforeSuite 在該套件的所有測試都運行在注釋的方法之前,僅運行一次。 @AfterSuite 在該套件的所有測試都運行在注釋的方法之后,僅運行一次 @BeforeClass 在調用當前類的所有測試方法之前執行,注釋方法僅運行一次 @AfterClass 在調用當前類的所有測試方法之后執行,注釋方法僅運行一次 @BeforeTest 注釋的方法將在屬于TestNG參數化測試標簽內的類的所有測試方法運行之前運行 @AfterTest 注釋的方法將在屬于 標簽內的類的所有測試方法運行之后運行。 @BeforeGroups 此方法是保證在運行屬于任何這些組的第一個測試方法之前,該方法被調用 @AfterGroups 此方法是保證運行屬于任何這些組的所有測試方法執行之后,該方法被調用 @BeforeMethod 被注釋的方法將在每個測試方法之前執行 @AfterMethod 被注釋的方法將在每個測試方法之后執行 @DataProvider 被注釋的方法的作用是提供測試數據,如果某個測試方法希望從這個DataProvider接收數據,就必須使用一個名字等于這個注解名字的DataProvider @Parameters 介紹如何將參數傳遞給測試方法
TestNG提供了2種傳遞參數的方式。
這種方式的優點是使得代碼和測試數據分離,方便維護;缺點就是如果需要傳遞的參數不是基本的java類型,或是需要的值只能在運行時創建,這種方法就不再適用。
這種能夠提供比較復雜的參數(也叫data-driven testing)。
我們項目中使用的是第二種
如圖示:首先給測試方法添加值為WithdrawBatchQueryLoopData的屬性dataProvider,然后提供一個name與之對應的@DataProvider方法,這個方法里的具體實現,就是從配置文件或是數據庫中讀取數據。
分組測試是TestNG中的創新功能,分組測試使得我們可以進行各種靈活的測試,在想要并行多組不同的測試時,不需要重新進行編譯。
分組可以應用在方法上(一個方法可以屬于一到多個分組),也可以應用在類上,應用在類上時,這個類中的所有public方法都變成測試方法,即便他們沒有被注解,也可以繼續在需要增加屬性的方法上重復@Test注解。分組執行測試方法有多種形式:
可以通過在testng.xml配置,來指定具體要執行的分組
也可以通過集成到jenkins中,通過參數化構建來設置要執行的分組
還可以通過運行Run Configurations時,設置要執行的分組
需要注意的一點:Group標簽會導致@BeforeMethod失效
@BeforeMethod的作用是標明所注解的方法在每一個測試方法運行之前會執行一次。例如: @BeforeMethod Public void beforeMehod() @Test Public void testCase1() @Test Public void testCase2() 正常的執行的順序為:beforeMehod—> testCase1—> beforeMehod—> testCase2 但是,在將testCase放入某一個Group之后,@BeforeMethod就失效了 @BeforeMethod Public void beforeMehod() @Test(groups = "group1") Public void testCase1() @Test(groups = "group1") Public void testCase2() 再次執行腳本,執行順序變為testCase1—>testCase2
解決方法:
1、將@BeforeMethod同樣加入group1
2、設置@BeforeMethod的屬性alwaysRun=true
TestNG依賴測試我們經常會遇到要測試的多個接口之間存在依賴關系,即某一個接口的執行需要依賴上一個接口的返回結果,比如執行批付查詢時,需要先執行批量代付,那么這時就使用到了TestNG的依賴測試,TestNG使用dependsOnMethods配合alwaysRun來設置測試方法之間的依賴關系,使用dependsOnGroups來設置分組之間的依賴關系
強依賴:在測試方法運行之前,所有的依賴方法都必須運行并且成功,哪怕只有一個失敗,測試方法都不會被調用(是skip而不是fail)
軟依賴(alwaysRun=true):測試方法在依賴方法運行之后總是會被執行,即便某些依賴方法運行失敗。
TestNG預期異常測試測試中,有時候我們期望某些代碼拋出異常。
TestNG通過@Test(expectedExceptions) 來判斷期待的異常, 并且判斷Error Message
TestNG測試報告執行完測試用例之后,會在項目的test-output(默認目錄)下生成測試報告
打開index.html文件可以看到測試結果摘要,包括:套件名、測試用例成功數、測試用例失敗數、測試用例忽略數、執行時間和testng.xml文件。
測試用例都成功的話,測試結果以綠底標志,測試用例有失敗的話,測試結果以紅底標志。testNG自帶生成的測試報告不太美觀,可以使用testng-xslt進行美化。
來源:宜信技術學院 作者:王海燕
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/8886.html
摘要:單元測試框架作為的標準庫,是其他單元測試框架的基礎。可以和和配合使用編寫單元測試。官網地址單元測試覆蓋率工具單元測試中還需要用到代碼覆蓋率工具。代碼覆蓋率統計工具用來發現沒有被測試覆蓋的代碼,完善單元測試的覆蓋率。 在應用程序中,單元是具有一個或多個輸入和單個輸出的軟件中最小可測試部分。單元...
摘要:協議學習常見請求方法學習和學習接口的基本概念接口文檔認識接口測試用例編寫接口測試工具使用軟件測試自動化進階性能測試性能測試的技術要求很高,不僅僅要對性能測試的指標測試分類測試設計有很深刻的理解。 ...
摘要:大交通研發質量體系建設為了幫助用戶更好地完成消費決策閉環,馬蜂窩上線了大交通業務,為用戶提供購買機票火車票等服務。 質量是決定產品能否成功、企業能否持續發展的關鍵因素之一。如何做好質量體系建設,這是個比較大的話題,包含的范圍很廣,也沒有固定的衡量標準。 打開一個互聯網公司招聘網站,搜索「測試工程師」崗位時,你會發現幾乎全部 JD 都包含一條要求「建設或者參與建設所負責業務的質量體系」。...
摘要:大交通研發質量體系建設為了幫助用戶更好地完成消費決策閉環,馬蜂窩上線了大交通業務,為用戶提供購買機票火車票等服務。 質量是決定產品能否成功、企業能否持續發展的關鍵因素之一。如何做好質量體系建設,這是個比較大的話題,包含的范圍很廣,也沒有固定的衡量標準。 打開一個互聯網公司招聘網站,搜索「測試工程師」崗位時,你會發現幾乎全部 JD 都包含一條要求「建設或者參與建設所負責業務的質量體系」。...
閱讀 1318·2021-11-15 11:37
閱讀 2575·2021-09-22 10:56
閱讀 3399·2021-09-06 15:11
閱讀 811·2021-08-31 09:45
閱讀 2910·2021-07-28 11:16
閱讀 1815·2019-08-30 15:44
閱讀 484·2019-08-30 13:22
閱讀 3352·2019-08-30 13:18