《手把手教你》系列基礎篇(七十二)-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的使用,基本上這些使用我們在框架設計里都會涉及。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM