白盒測試筆記之:testng 單元測試

  • 前言

前一篇文章咱們簡單瞭解了下單元測試的概念以及使用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插件

 

  • testng 實例
  1. 新建一個testng測試用例

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 -->
相關文章
相關標籤/搜索