TestNg JAVA 自動化單元測試框架Demo
阿新 • • 發佈:2018-12-30
環境準備
既然是java 的自動化單元測試框架,就必須要有java的環境了,這裡使用的編輯器是Eclipse,已經安裝過TestNg 外掛,如果環境準備好就可以開始了程式碼例項
程式碼結構如圖
新建一個java專案,之後新增一個TestNg類,之後會生成一個測試類,和一個xml檔案
(如果發現TestNg編輯是出錯,無法呼叫TestNg的標籤函式,那麼匯入TestNg.jar.可以右鍵點選專案,之後BuildPath ->add Libary->選擇TestNg 即可)
簡單地TestNg類package TestNgDemo; //使用TestNg 測試框架
對應的Xml配置檔案(TestNg 都是通過註釋標籤,有點類似Junit,並且通過xml檔案託管):
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite" parallel="false"> <test name="Test"> <classes> <class name="TestNgDemo.NewTest"/> </classes> </test> <!-- Test --> </suite> <!-- Suite -->
使用TestNg Xml 進行資料驅動傳遞引數package TestNgDemo; //使用TestNg 傳遞引數 import org.testng.annotations.Parameters; import org.testng.annotations.Test; import org.testng.annotations.BeforeMethod; import org.testng.annotations.AfterMethod; public class NewTest2 { @BeforeMethod public void beforeMethod() { System.out.println("每個方法執行時執行"); } //通過Parameters 獲取Xml 中指定的引數 @Parameters({"name","age"}) @Test public void case1(String name,int age) { System.out.println("case1 Name is"+ name); System.out.println("case1 Age is"+ age); } @Test public void case2() { System.out.println("case2"); } @AfterMethod public void afterMethod() { System.out.println("每個方法結束時執行"); } }
對應的xml如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite" parallel="false"> <parameter name="name" value="TestName" /> <parameter name="age" value="55" /> <test name="Test"> <classes> <class name="TestNgDemo.NewTest2"/> </classes> </test> <!-- Test --> </suite> <!-- Suite -->
通過xml設定分組,執行不同的casepackage TestNgDemo; //TestNg 分組執行 import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import org.testng.annotations.BeforeClass; import org.testng.annotations.AfterClass; public class NewTest3 { @BeforeMethod public void beforeMethod() { System.out.println("Begain"); } @Parameters({"name","age"}) @Test(groups="CaseGroup1") public void case1(String name,int age) { System.out.println("case1 Name is"+ name); System.out.println("case1 Age is"+ age); } @Test(groups="CaseGroup2") public void case2() { System.out.println("case2"); } @AfterMethod public void afterMethod() { System.out.println("End"); } }
對應的xml檔案如下,需要執行那個組的時候,就可以直接更改:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite" parallel="false"> <parameter name="name" value="TestName" /> <parameter name="age" value="55" /> <test name="Test"> <grroup> <define name = CaseGroup1/> <define name = CaseGRoup2/> <run> <include name = CaseGroup1/> </run> </grroup> <classes> <class name="TestNgDemo.NewTest3"/> </classes> </test> <!-- Test --> </suite> <!-- Suite -->
TestNg 是通過Xml檔案管理測試累的,可以看到,每個測試方法都可以看做一條Case,並且開頭都有@Test 作為測試標記
更多的TestNg xml管理的例子可以參考:
http://www.cnblogs.com/choosewang/articles/3079983.html
TestNg 主要的就是通過Xml 託管,註釋標籤呼叫