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

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

TestNG是什麼?

TestNG按照官方的定義:

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

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

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.

兩種線上安裝方式:

1、通過Eclipse Marketplace安裝;

1)開啟Eclipse Help ->MarketPlace,在搜尋框裡面輸入TestNG搜尋,然後安裝TestNG外掛。

2)點選“Install”,稍等幾分鐘,等待外掛下載

3)下載成功後,點選“Confirm”,進行安裝(其中第二個Maven專案可選擇安裝也可以不安裝,但是巨集哥建議都安裝上)

4)稍等一會等待安裝

2、通過Update Site安裝;

1) 通過update site也可以進行外掛的安裝,方法是:在Eclipse中點選Help選單,選擇Install New Software選項,在彈出頁面中輸入安裝地址:http://beust.com/eclipse即可安裝。

3、離線安裝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,可以加巨集哥的微信拉你進群,請備註:進群)          

                                                                 

您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得點波 推薦 哦!!!(點選右邊的小球即可!(^__^) 嘻嘻……)

相關推薦

Java自動化測試框架-01 - TestNG入門 - 雞肋盛宴詳細教程

TestNG是什麼? TestNG按照官方的定義: TestNG是一個測試框架,其靈感來自JUnit和NUnit,但引入了一些新的功能,使其功能更強大,使用更方便。 TestNG是一個開源自動化測試框架;TestNG表示下一代(Next Generation的首字母)。 TestNG類似於JUnit

Java自動化測試框架-07 - TestNGFactory - 歡快暢遊夢幻工廠詳細教程

簡介   最近忙著裝修部落格園,沒時間更新文章,今天終於抽出時間把上次寫的一半的文章給寫完了,新的部落格園風格,希望大家喜歡。今天繼續介紹testng的相關知識--工廠。 工廠允許你動態的建立測試。例如,假設你需要建立一個測試方法,並用它來多次訪問一個web頁面,而且每次都帶有不同的引數: @Factory註

Java自動化測試框架-02 - TestNG理論到實踐 - 紙上得來終覺淺絕知此事要躬行詳細教程

理論 TestNG,即Testing, NextGeneration,下一代測試技術,是一套根據JUnit 和NUnit思想而構建的利用註釋來強化測試功能的一個測試框架,即可以用來做單元測試,也可以用來做整合測試。因為TestNG是從Junit的思想構建而來,所以TestNG具備junit等所不具備的多重功

Java自動化測試框架-03 - TestNGTest Group - 我們一起組團打怪升級詳細教程

簡介   其實這篇文章的group巨集哥在上一篇中就提到過,但是就是舉例一筆帶過的,因此今天專門有一篇文章來講解Group的相關知識。希望大家茅塞頓開 ,有著更進一步認識和了解測試組。 一、Test Group(測試組)   TestNG 允許你將複雜的測試方法歸類為不同的組。不僅僅是可以宣告某個方法屬

Java自動化測試框架-04 - TestNGTest Method - 道法自然法力無邊詳細教程

簡介 按照上一篇的計劃,這一篇給小夥伴們分享一下測試方法。 一、設定引數 測試方法是可以帶有引數的。每個測試方法都可以帶有任意數量的引數,並且可以通過使用TestNG的@Parameters向方法傳遞正確的引數。 設定方式有兩種方法:使用testng.xml或者Data Providers 

Java自動化測試框架-08 - TestNG並行性和超時 詳細教程

一、並行性和超時 您可以指示TestNG以各種方式在單獨的執行緒中執行測試。 可以通過在suite標籤中使用 parallel 屬性來讓測試方法執行在不同的執行緒中。這個屬性可以帶有如下這樣的值: 二、並行套件(suites) 如果您正在執行多個套件檔案(例如“ java org.tes

Java自動化測試框架-10 - TestNG測試結果

1.-測試結果 1.1-成功,失敗和斷言 測試被認為是成功的,如果它不引發任何異常完成,還是它扔的預期異常(請參閱文件expectedExceptions屬性上找到的@Test註釋)。 您的測試方法通常由可能引發異常的呼叫或各種斷言(使用Java“ assert”關鍵字)組成。&ldq

Java自動化測試框架-11 - TestNGannotation與併發測試 詳細教程

1、簡介 TestNG中用到的annotation的快速預覽及其屬性。 2、TestNG基本註解(註釋) 註解 描述 @BeforeSuite 註解的方法只執行一次,在當前suite所有測試執行之前執行 @AfterSuite 註解的方法只執行一次,在當前suite所有測試執行之後執行 @B

Java自動化測試框架-12 - TestNGxml檔案詳解 詳細教程

1.簡介 現在這篇,我們來學習TestNG.xml檔案,前面我們已經知道,TestNG就是執行這個檔案來執行測試用例的。通過本篇,你可以進一步瞭解到:這個檔案是配置測試用例,測試套件。簡單來說,利用這個檔案,我們可以跑同一個類或者多個不同類裡面的測試用例。 TestNG通過設定testng.xml檔案能做以下

Selenium自動化測試框架-01

環境準備 出錯 set exp erl 自動啟動 releases 容易 lar 1.Selenium簡介 Selenium是一款適用於Web應用程序的便攜式軟件測試框架,通過模擬瀏覽器執行操作的工具。 Selenium為編寫測試提供了一個回放工具,無需學習測試腳本語言。它

Macaca 自動化測試框架全解析簡單介紹

今天來整理下使用阿里巴巴開源的自動化測試框架macaca github地址:https://www.oschina.net/p/macaca 簡單介紹 Macaca 是一套面向使用者端軟體的測試解決方案,提供了自動化驅動,周邊工具,整合方案,旨在解決終端上的測試、自

Java自動化測試框架-05 - 來給你的測試報告化個妝整個形 - 詳細教程

簡介   前邊通過巨集哥的講解和分享想必小夥伴們和童鞋們都已經見過testng框架生成的測試報告,是不是它的樣子和長相實在是不敢讓大傢伙恭維。那麼今天巨集哥就當一回美容師,由巨集哥來給它美美容;當一回外科醫生,做一名整形醫生。由巨集哥來主刀,給它整整形。讓她變得豐滿、美麗、可愛一些。 本來面貌 執行完測

Java自動化測試框架-06 - 來給你的測試報告化個妝整個形 - 詳細教程

簡介 經過上一次的化妝和整形,有客戶提出需求能不能將那個普通會員的套餐再升級一下,再漂亮一點。所以這次咱們就來看看從哪裡下刀可以使它變得再漂亮一點點。 上一篇文章修改了一些基本的ReportNG資訊,連結:Java自動化測試框架-05 - 來給你的測試報告化個妝整個形 - (上),本文將繼續帶大家進行修改

《手把手教你》系列練習2-python+ selenium自動化測試詳細教程

1. 簡介   今天我們還是繼續練習練習基本功,各位小夥伴要耐住住性子,要耐得住寂寞啊,不要急躁,後面你會感謝你在前邊的不斷練習的。到後面也是檢驗你前邊的學習成果的一次很好實踐。 本文介紹如何通過link text、partial link text、class name和name 來定位

《手把手教你》系列練習3-python+ selenium自動化測試詳細教程

1.  簡介   前面介紹了,XPath, id , class , link text, partial link text, tag name, name 七大元素定位方法,本文介紹webdriver支援的最後一個方法:by_css。css和XPath類似,也需要掌握一些語法,才能寫出正確的,完

《手把手教你》系列練習4-python+ selenium自動化測試詳細教程

1.  簡介   今天我們繼續前邊的練習,學習和練習一下:如何使用webdriver方法獲取當前測試頁面的URL、如何獲取當前頁面的title、如何開啟瀏覽器的一個新建頁面、如何操作單選按鈕等等,這些小練習,來鞏固基礎。 2. webdriver方法獲取當前測試頁面的URL   本小節介紹如何通過w

《手把手教你》系列練習5-python+ selenium自動化測試詳細教程

1.  簡介   今天我們繼續前邊的練習,學習和練習一下:如何使用webdriver方法獲取操作複選框-CheckBox、測試不同的解析度、如何斷言title、如何獲取某一個元素的text屬性值等等,這些小練習,來鞏固基礎。 2.操作複選框-Checkbox 本小節介紹Selenium中,如何操作複

《手把手教你》系列練習6-python+ selenium自動化測試詳細教程

1. 簡介   前面文章我們瞭解瞭如何獲取元素的text屬性值,和判斷元素是否顯示在頁面(is_displayed()方法),本文我們來學習下,判斷一個控制元件是否被選中狀態、獲取頁面元素的大小、組合鍵-全選文字、組合鍵-退格鍵刪除文字和滑鼠右鍵等練習的內容。 2. 驗證控制元件是否被選中 還是以百度首頁點選

《手把手教你》系列練習7-python+ selenium自動化測試 -壓軸詳細教程

1. 簡介   “壓軸”原本是戲曲名詞,指一場摺子戲演出的倒數第二個劇目。在現代社會中有很多應用,比如“壓軸戲”,但壓軸也是人們知識的一個盲區。“壓軸”本意是指倒數第二個節目,而不是人們常說的倒數第一個,倒數第一個節目稱“壓臺

《手把手教你》系列練習8-python+ selenium自動化測試 -壓臺詳細教程

1. 簡介    本文是練習篇的最後一篇文章,雖然練習篇的文章到此就要和大家說拜拜了,但是我們的學習之路才剛剛開始。不要停下你的腳步,大步朝前走吧!比你優秀的人還在走著,我們有什麼理由停下自己的腳步了,生命不止,學習亦是如此。好了,巨集哥的毒雞湯好 喝吧,喝夠了就開始學習吧。   本文主要是練習如何