Java自動化測試框架-01 - TestNG之入門篇 - 大佬的雞肋,菜鳥的盛宴(詳細教程)

TestNG是什麼?

TestNG按照官方的定義:html

TestNG是一個測試框架,其靈感來自JUnit和NUnit,但引入了一些新的功能,使其功能更強大,使用更方便。前端

TestNG是一個開源自動化測試框架;TestNG表示下一代(Next Generation的首字母)。 TestNG相似於JUnit(特別是JUnit 4),但它不是JUnit框架的擴展。它的靈感來源於JUnit。它的目的是優於JUnit,尤爲是在用於測試集成多類時。 TestNG的創始人是Cedric Beust(塞德里克·博伊斯特)。java

TestNG消除了大部分的舊框架的限制,使開發人員可以編寫更加靈活和強大的測試。 由於它在很大程度上借鑑了Java註解(JDK5.0引入的)來定義測試,它也能夠顯示如何使用這個新功能在真實的Java語言生產環境中。數據庫

TestNG的特色編程

  • 註解
  • TestNG使用Java和麪向對象的功能
  • 支持綜合類測試(例如,默認狀況下,不用建立一個新的測試每一個測試方法的類的實例)
  • 獨立的編譯時測試代碼和運行時配置/數據信息
  • 靈活的運行時配置
  • 主要介紹「測試組」。當編譯測試,只要要求TestNG運行全部的「前端」的測試,或「快」,「慢」,「數據庫」等
  • 支持依賴測試方法,並行測試,負載測試,局部故障
  • 靈活的插件API
  • 支持多線程測試

TestNG(Next Generation)是一個測試框架,它受到JUnit和NUnit的啓發,而引入了許多新的創新功能,如依賴測試,分組概念,使測試更強大,更容易作到。 它旨在涵蓋全部類別的測試:單元,功能,端到端,集成等…瀏覽器

TestNG,即Testing, Next Generation,下一代測試技術,是一套根據JUnit 和NUnit思想而構建的利用註釋來強化測試功能的一個測試框架。TestNG設計涵蓋全部類型的測試:單元,功能,端到端,集成等。學習TestNG以前須要先學習編程語言Java、配置本地JDK環境(JDK1.5版本或以上)和安裝java開發工具eclipse。微信

TestNG下載並安裝

從這裏 http://testng.org/doc/download.html 下載當前版本的TestNG,打開zip分發來獲取TestNG解壓縮文件,其中包含如下子文件:網絡

  • Testng-6.jar(請直接添加到您的項目中,也可能沒法僅使用此jar來成功構建代碼,由於TestNG官方版本不包括全部外部jar文件,以減小包的大小)
  • 文檔(TestNG教程資料)
  • 示例代碼
  • Testng 源代碼
  • Readme文檔

對於初學者,宏哥推薦你從示例代碼和文檔開始和編寫TestNG。多線程

若是使用Eclipse IDE,建議按照如下方法插件,建議使用更新站點:框架

對於Eclipse 3.4及更高版本,請輸入 http://beust.com/eclipse
對於Eclipse 3.3及更低版本,請輸入 http://beust.com/eclipse1

在Eeclipse中安裝testNG

在官網上部導航區域點擊「Download」連接,該頁面介紹了集成TestNG的不一樣方式。

在「Eclipse plug-in」區域介紹了兩種Eclipse安裝插件的方式。

硬性要求:JDK1.7以上版本、Eclipse4.2以上版本。

Java 1.7+ is required for running the TestNG for Eclipse plugin.

Eclipse 4.2 and above is required. Eclipse 3.x is NOT supported any more, please update your Eclipse to 4.2 or above.

兩種在線安裝方式:

一、經過Eclipse Marketplace安裝;

1)打開Eclipse Help ->MarketPlace,在搜索框裏面輸入TestNG搜索,而後安裝TestNG插件。

2)點擊「Install」,稍等幾分鐘,等待插件下載

3)下載成功後,點擊「Confirm」,進行安裝(其中第二個Maven項目可選擇安裝也能夠不安裝,可是宏哥建議都安裝上)

4)稍等一會等待安裝

二、經過Update Site安裝;

1) 經過update site也能夠進行插件的安裝,方法是:在Eclipse中點擊Help菜單,選擇Install New Software選項,在彈出頁面中輸入安裝地址:http://beust.com/eclipse便可安裝。

三、離線安裝TestNG插件:

受網絡等因素影響,在線安裝方式速度比較慢,能夠經過以下方式離線安裝TestNG插件。

1)經過testng下載網址找到插件下載地址,

2)瀏覽器直接訪問網址, http://beust.com/eclipse

3)選擇最下部的zipped文件夾連接;

4)選擇版本,如:「7.0.0.201908240652/

 

5)點擊超連接,便可下載離線安裝文件。

6)解壓壓縮包,文件目錄以下圖所示。能夠把features和plugins中的內容分別拷貝到eclipse對應文件夾;

       或把解壓後的整個目錄拷貝到dropins中。

       驗證是否安裝成功:

     a) 打開命令行,到當前eclipse的目錄下,輸入eclipse -clean,從新啓動eclipse,這樣eclipse就會加上新的插件了。
     b) 若是插件不能生效,則請將eclipse\configuration\org.eclipse.update目錄刪除後再啓動eclipse。

7) 不解壓文件,經過eclipse的Install new software安裝。

8)點擊Add,彈出Install Repository對話框,填寫Name,點擊「Archive」按鈕,選擇本地要安裝的Jar或者Zip文件,以下圖:

9)點擊OK,以下圖:

10)根據需求勾選上列表框中的安裝項,點擊「Next」,而後根據提示一直往下操做,直到Finish,這樣就完成了。

驗證插件安裝是否成功

打開Eclipse,新建-other,選擇「TestNG——>TestNG Class」。

出現這個說明插件安裝成功。

至此環境搭建完成,能夠開始寫測試的case了。

小試牛刀

1)安裝成功後,在項目的package上右鍵能夠看到TestNG-->Create TestNG class。

 

 

2)這裏能夠勾選TestNG的註解方法。

3)咱們先勾選一下@BeforeTest、@AfterTest、@DataProvider,自動生成的類文件以下:

 


4)這裏報錯了,是由於咱們尚未將TestNG加入到咱們的library中來,點擊錯誤,會有import Library的選項,點擊便有了,如圖

5)從一個簡單的測試case開始入手,代碼以下:

6)將鼠標點擊代碼任意處,右鍵Run As --> TestNG Test,

 7)console控制檯運行後結果以下:

從測試的結果能夠看到執行的順序是beforeTest()-->Test()-->afterTest(),同時Test()方法從dataProvider dp裏面接收參數。關於這部分知識宏哥在下一篇會講解,敬請期待和關注宏哥!!!

8)TestNG默認狀況下,會生成兩種類型的測試報告HTML和XML,測試報告位於 "test-output" 目錄下。右鍵項目刷新一下項目就能夠看到:

9)用瀏覽器打開/test-output/Default suite/Default test.html

10)能夠看到以下圖的測試報告:

11)參考代碼
package hongge;

import org.testng.annotations.Test;
import org.testng.annotations.DataProvider;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;

/**
 * @author 北京-宏哥
 * 
 * java自動化測試交流羣:694280102
 *
 * Java自動化測試框架-01 - TestNG之入門篇
 *
 * 2019年10月16日
 */
public class NewTest {
  @Test(dataProvider = "dp")
  public void f(Integer n, String s) {
      System.out.println("第一個參數是"+n+",第二個參數是"+s);
  }

  @DataProvider
  public Object[][] dp() {
    return new Object[][] {
      new Object[] { 1, "a" },
      new Object[] { 2, "b" },
    };
  }
  @BeforeTest
  public void beforeTest() {
      System.out.println("------------開始測試------------");
  }

  @AfterTest
  public void afterTest() {
      System.out.println("------------結束測試------------");
  }

} 

 小結

 好了,今天就分享到這裏!!!

有問題加入java自動化測試交流羣:694280102

 

我的公衆號                                                             微信羣 (微信羣已滿100,能夠加宏哥的微信拉你進羣,請備註:進羣)          

                                                                 

您的確定就是我進步的動力。若是你感受還不錯,就請鼓勵一下吧!記得點波 推薦 哦!!!(點擊右邊的小球便可!(^__^) 嘻嘻……)

相關文章
相關標籤/搜索