1.簡介
上一篇講解了依賴測試的各種方法,今天繼續講解依賴測試的方法,這一篇主要是講解和分享通過xml檔案配置組名依賴方法( 主要是測試組的用法)。廢話不說,直接上乾貨。
2.例項
測試組:一個組可包含多個測試方法,可進行組巢狀。
2.1程式碼設計
1.test1屬於功能測試,test2屬於介面測試,test3屬於介面和功能測試 ,test4是不屬於任何組,如下圖所示:
2.參考程式碼
package library; import org.testng.annotations.Test; /** * @author 北京-巨集哥 * * @公眾號:北京巨集哥 * * 《手把手教你》系列基礎篇(七十七)-java+ selenium自動化測試-框架設計基礎-TestNG依賴測試(詳解教程) * * 2022年3月05日 */ public class TestDepend { @Test(groups = {"Function"}) public void test1() { System.out.println("Function-Test"); } @Test(groups = {"API"}) public void test2() { System.out.println("API-Test"); } @Test(groups = {"function","api"}) public void test3() { System.out.println("function and api"); } @Test public void test4() { System.out.println("not in API and not in Function"); } }
3.執行程式碼,右鍵Run AS->TestNG Suite,控制檯輸出,如下圖所示:
2.2僅執行API測試
1.僅執行API測試 時,xml檔案的配置,如下圖所示:
2.參考程式碼
<?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="Test"> <parameter name="Browser" value="Firefox" /> <classes> <class name="lessons.TestDiffBrowser"/> </classes> </test> Test --> <!--<test name="Test1"> <parameter name="Browser" value="Chrome" /> <classes> <class name="lessons.TestDiffBrowser"/> </classes> </test> Test --> <test name="example1"> <groups> <run> <include name="API" /> </run> </groups> <classes> <class name="library.TestDepend" /> </classes> </test> </suite> <!-- Suite -->
3.選中xml檔案,執行程式碼,右鍵Run AS->TestNG Suite,控制檯輸出,如下圖所示:
2.3僅執行function
從上邊例項可以看出,結果是隻執行了API方法的測試用例,如果只執行功能測試,這時把api換成function即可,如下圖所示:
2.4執行API和功能測試
1.xml檔案的配置,如下圖所示:
2.參考程式碼
<?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="Test"> <parameter name="Browser" value="Firefox" /> <classes> <class name="lessons.TestDiffBrowser"/> </classes> </test> Test --> <!--<test name="Test1"> <parameter name="Browser" value="Chrome" /> <classes> <class name="lessons.TestDiffBrowser"/> </classes> </test> Test --> <test name="example1"> <groups> <run> <include name="API" /> <include name="Function" /> </run> </groups> <classes> <class name="library.TestDepend" /> </classes> </test> </suite> <!-- Suite -->
3.選中xml檔案,執行程式碼,右鍵Run AS->TestNG Suite,控制檯輸出,如下圖所示:
3.exclude
例項2中,介紹的是include。這裡巨集哥再介紹一下exclude。執行除了某用例之外的其他用例。例如,執行除了API介面的其他用例。
1.xml檔案的配置,如下圖所示:
2.參考程式碼
<?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="Test"> <parameter name="Browser" value="Firefox" /> <classes> <class name="lessons.TestDiffBrowser"/> </classes> </test> Test --> <!--<test name="Test1"> <parameter name="Browser" value="Chrome" /> <classes> <class name="lessons.TestDiffBrowser"/> </classes> </test> Test --> <test name="example1"> <groups> <run> <exclude name="API" /> </run> </groups> <classes> <class name="library.TestDepend" /> </classes> </test> </suite> <!-- Suite -->
3.選中xml檔案,執行程式碼,右鍵Run AS->TestNG Suite,控制檯輸出,如下圖所示:
4.正規表示式來寫組名
這裡先把組名API改成了 API test,正則用來代替組名較長的時候
1.xml檔案的配置,如下圖所示:
2.參考程式碼
<?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="Test"> <parameter name="Browser" value="Firefox" /> <classes> <class name="lessons.TestDiffBrowser"/> </classes> </test> Test --> <!--<test name="Test1"> <parameter name="Browser" value="Chrome" /> <classes> <class name="lessons.TestDiffBrowser"/> </classes> </test> Test --> <test name="example1"> <groups> <run> <include name="API.*" /> </run> </groups> <classes> <class name="library.TestDepend" /> </classes> </test> </suite> <!-- Suite -->
3.選中xml檔案,執行程式碼,右鍵Run AS->TestNG Suite,控制檯輸出,如下圖所示:
5.組巢狀
每個用例都要歸屬於一個組名,所有組都歸All管理,這樣在xml中run一個All 即可。
1.xml檔案的配置,如下圖所示:
2.參考程式碼
<?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="Test"> <parameter name="Browser" value="Firefox" /> <classes> <class name="lessons.TestDiffBrowser"/> </classes> </test> Test --> <!--<test name="Test1"> <parameter name="Browser" value="Chrome" /> <classes> <class name="lessons.TestDiffBrowser"/> </classes> </test> Test --> <test name="example1"> <groups> <define name="All"> <include name="API Test" /> <include name="Function" /> </define> <run> <include name="All" /> </run> </groups> <classes> <class name="library.TestDepend" /> </classes> </test> </suite> <!-- Suite -->
3.選中xml檔案,執行程式碼,右鍵Run AS->TestNG Suite,控制檯輸出,如下圖所示:
6.其他
根據xml配置檔案中的 groups 的<dependencies>來做用例組依賴執行。
1.xml檔案的配置,如下圖所示:
2.參考程式碼
<?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="Test"> <parameter name="Browser" value="Firefox" /> <classes> <class name="lessons.TestDiffBrowser"/> </classes> </test> Test --> <!--<test name="Test1"> <parameter name="Browser" value="Chrome" /> <classes> <class name="lessons.TestDiffBrowser"/> </classes> </test> Test --> <test name="example1"> <groups> <dependencies> <group name="API" depends-on="Function Not"/> </dependencies> </groups> <classes> <class name="library.TestDepend" /> </classes> </test> </suite> <!-- Suite -->
3.選中xml檔案,執行程式碼,右鍵Run AS->TestNG Suite,控制檯輸出,如下圖所示:
測試用例組的順序是:先執行被依賴的組的方法用例,再執行沒有依賴關係的 最後執行需要依賴關係的用例方法。
7.小結
好了,今天時間不早了,而且知識點特別的簡單,今天就分享到這裡,下一篇巨集哥利用實際例子講解一下依賴測試。