前一篇文章咱們簡單瞭解了下單元測試的概念以及使用junit進行入門了。html
但想更好作自動化測試,仍是得了解下testng,畢竟,做爲一名技術人,NG(下一代)的測試框架總得了解與跟進。框架
testng比junit的強大與好用仍是在實際操做理解中體會。eclipse
有人說,通常來講,開發人員比較喜歡junit寫單元測試,而測試人員喜歡用testng來寫自動化測試。單元測試
而做爲初學入門技術選型,我的建議能夠直接上testng。長遠來看,testng更好的管理和執行自動化測試用例。測試
異同點對比啥的網上不少都有說法了,如:ui
http://www.javashuo.com/article/p-zadkbtqq-o.htmlspa
http://www.sohu.com/a/288820372_216613插件
1. 引入testng 插件包 code
1)在eclipse- Help-Install new SoftWare-Add 輸入連接http://beust.com/eclipse/ 一路next便可xml
2)也能夠下載testng的包(https://testng.org/doc/download.html),把它放到eclipse的目錄下,重啓生效
3)或者打開Eclipse, 而後打開網址:https://marketplace.eclipse.org/content/testng-eclipse,把這個Install按鈕直接拖拽到Eclipse中也會觸發安裝
2. 就能夠建立一個testng的測試類了,效果以下
3.跑一個testng測試類
代碼:
package testng; public class Caculator { /** * 傳入兩個參數,求和 * @param a * @param b * @return */ public int add(int a,int b){ return a+b; } /** * 傳入兩個參數,求差 * @param a * @param b * @return */ public int sub(int a,int b){ return a-b; } }
package testng; import org.junit.Assert; import org.junit.Before; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; public class testng { @Test public void f() { } Caculator a=null; @BeforeTest public void testBeforeClass() { a=new Caculator(); } @Test //測試 add()方法 public void testAdd(){ int result = a.add(1, 2); Assert.assertEquals(result, 4); } @Test //測試 sub()方法 public void testSub(){ int result = a.sub(2, 1); Assert.assertEquals(result, 2); } }
運行效果:
2. 配置testng.xml
瞭解testng,能跑起來,但想作高級一點的,如集成到其它環境或多個包之間一鍵跑用例,仍是要了解testng.xml:
1) eclipse 如何配置testng.xml?
進行選中一個測試的項目中,而後進行右鍵彈出下拉菜單中進行選擇爲「TestNG」.
這樣就會彈出了一個下一級菜單中進行選擇爲「convert to testng」
這樣就會在項目的列表中添加了一個testng.xml的一個文件。
配置以下(變動點爲紅色部分):
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite"> <test thread-count="5" name="Test"> <classes> <class name="testng.testng"> <methods> <include name="testAdd" /> </methods> </class> </classes> </test> <!-- Test --> </suite> <!-- Suite -->
運行效果:
若是要運行多個不一樣包中的測試用例,則能夠配置以下(變動點爲紅色部分)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite"> <test thread-count="5" name="Test"> <classes> <class name="testng.testng"> <methods> <include name="testAdd" /> </methods> </class> <class name="testng2.testng"> <methods> <include name="testAdd" /> </methods> </class> </classes> </test> <!-- Test --> </suite> <!-- Suite -->