1. 程式人生 > 其它 >《手把手教你》系列基礎篇(七十二)-java+ selenium自動化測試-框架設計基礎-TestNG簡單介紹(詳解教程)

《手把手教你》系列基礎篇(七十二)-java+ selenium自動化測試-框架設計基礎-TestNG簡單介紹(詳解教程)

1.簡介

前面文章細心的小夥伴會發現巨集哥在執行測試用例的時候有的是在main方法下,而有的不需要用main方法去執行用例,那麼為什麼有的就不需要在main方法下就能夠成功執行測試用例了。這就需要單元測試框架的支援,這篇巨集哥就來簡單介紹TestNG單元測試框架的安裝和基本使用。

2.什麼是testng?

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

 TestNG是一個測試框架,它能覆蓋不同層級的測試,例如,單元測試,整合測試,端對端測試等。我們可以把Selenium和TestNG結合一起,在Eclipse中用Java寫TestNG指令碼。

3.testng的特點

1)註釋,很多註釋提供

2)支援資料驅動測試(@DataProvider)

3)支援變數

4)自動生成測試報告

5)通過配置testng.xml,我們可以只執行測試失敗的用例

6)支援很多IDE工具(Eclipse等)

7)預設JDK支援監控執行和日誌

8)獨立的程式伺服器測試方法(API)

4.TestNG 、Junit和Nunit區別

1)三者都是獨立於測試框架,在市場上都可以免費得到。

2)TestNG和Junit在JAVA上使用,Nunit在C#上使用

3)Junit是Eclipse自帶工具,TestNG需要自己安裝外掛

4)相對TestNG而言,Junit的註釋很少

5)Junit不能生成html格式報告,TestNG能生成豐富的html報告

其他對比就不講了,有興趣可以到各自官網去檢視。

5.在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.

兩種線上安裝方式:

5.1通過Eclipse Marketplace安裝

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

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

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

4)稍等一會等待安裝

5.2通過Update Site安裝

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

5.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,這樣就完成了。

5.4驗證外掛安裝是否成功

1)開啟Eclipse,新建-other,選擇“TestNG——>TestNG Class”。

2)出現上邊截圖這個說明外掛安裝成功。

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

6..新建一個TestNG類

1)在一個包下,滑鼠右鍵,New->other,點選TestNG,然後選擇TestNG class,如下圖所示:

 2)點選Next,class name命名為:FirstTestNgClass,勾選Beforeclass和Afterclass,如下圖所示:

 3)點選“Finish”完成類的建立。

在BeforeClass中寫啟動瀏覽器指令碼。在AfterClass中寫退出瀏覽器程式碼,在@Test中寫我們測試指令碼。記住,所有有關測試指令碼,都需要寫到@Test下的方法,也就是說,你寫這個函式或者方法是關於測試指令碼的,那麼你就要在該方法前面加上@Test這個註釋,可以新增多個@Test的測試函式。

7.專案實戰

7.1程式碼設計

巨集哥把啟動瀏覽器和瀏覽器最大化放在了setup方法裡,一般setup方法是寫一些用例的前置條件,而@Test註釋的方法才是我們測試指令碼,afterClass方法裡一般寫清除測試資料之類的操作,webUI自動化測試一般寫退出瀏覽器操作。

7.2參考程式碼

package lessons;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;

/**
 * @author 北京-巨集哥
 * 
 * @公眾號:北京巨集哥
 * 
 * 《手把手教你》系列基礎篇(七十二)-java+ selenium自動化測試-框架設計基礎-TestNG簡單介紹(詳解教程)
 *
 * 2022年2月21日
 */
public class FirstTestNgClass {

  WebDriver driver;
  @Test
  public void OpenBaidu() {
      
      driver.get("https://www.baidu.com");
      driver.findElement(By.id("kw")).sendKeys("Selenium");
      driver.findElement(By.id("su")).click();
  }
  @BeforeClass
  public void beforeClass() {
      
      System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
      driver = new ChromeDriver();
      driver.manage().window().maximize();
      
  }

  @AfterClass
  public void afterClass() {
      
    try {
        Thread.sleep(2000);
        driver.quit();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
  }

}

7.3執行程式碼

1)執行程式碼,右鍵Run AS->TestNG Test,控制檯輸出,如下圖所示:

2)執行程式碼後電腦端的瀏覽器的動作,如下小視訊所示:

8.測試報告

TestNG自帶測試報告,每次執行TestNG都會生成一個測試報告,你可以在執行結束後,右鍵你eclipse專案-重新整理,然後就可以看到專案的根目錄下生成一個test-output的資料夾,你可以右鍵open with->Web Browser開啟emailable-report.html,如下圖所示:

9.小結

好了,時間不早了,今天關於TestNG的安裝和簡單使用就介紹到這裡,下面幾篇文章都會陸續介紹TestNG的使用,基本上這些使用我們在框架設計裡都會涉及。