TestNg
TestNg 是java的一個自動化單元測試框架
參考:http://testng.org/doc/index.html環境準備
既然是java 的自動化單元測試框架,就必須要有java的環境了,這裏使用的編輯器是Eclipse,已經安裝過TestNg 插件,如果環境準備好就可以開始了代碼實例
代碼結構如圖
新建一個java項目,之後添加一個TestNg類,之後會生成一個測試類,和一個xml文件
(如果發現TestNg編輯是出錯,無法調用TestNg的標籤函數,那麼導入TestNg.jar.可以右鍵點擊項目,之後BuildPath ->add Libary->選擇TestNg 即可)
簡單地TestNg類package TestNgDemo; //使用TestNg 測試框架 import org.testng.Assert; import org.testng.annotations.Test; import org.testng.annotations.BeforeClass; import org.testng.annotations.AfterClass; public class NewTest { //測試開始前執行一次 @BeforeClass public void beforeClass() { System.out.println("開始前執行一次"); } @Test public void case1() { System.out.println("case1"); } @Test public void case2() { int a = 2; int b = 3; int sum = a+b; Assert.assertEquals(sum, 5, "Result Error"); System.out.println("case2"); } //測試結束時執行一次 @AfterClass public void afterClass() { System.out.println("結束時執行一次"); } }
對應的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 託管,註釋標籤調用
TestNg JAVA 自動化單元測試框架Demo
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.