1. 程式人生 > >Java+Selenium3框架設計準備篇1-TestNG簡單介紹

Java+Selenium3框架設計準備篇1-TestNG簡單介紹

       前面文章我們執行測試用例都是在main方法下,有沒有什麼方法不需要用main方法去執行用例,這就需要單元測試框架的支援,這篇簡單介紹TestNG單元測試框架的安裝和基本使用。

1.什麼是TestNG

你們也許很多人聽說過TestNG ,Junit,Nunit 這些工具,也肯定想它們到底有什麼區別。

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

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

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

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

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

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

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

2.TestNG一些特點

1)註釋,很多註釋提供

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

3)支援變數

4)自動生成測試報告

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

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

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

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

3.TestNG在Eclipse上的安裝過程

       由於下載站點被牆了,如果你有VPN,你可以安裝下面這個正常的流程來安裝。

步驟一,開啟Eclipse,點選Help-Install New Software

找到如下圖介面,拷貝紅框url到Eclipse中需要輸入站點那個介面上。


輸入testNG的下載站點。

跟著嚮導完成安裝,重啟Eclipse,選擇一個包滑鼠右鍵,如果看到底部倒數第二項有TestNG這個選單,說明安裝成功。如果你沒有VPN環境,你去我網盤下載檔案,解壓出來,把這個org.testng.eclipse_6.11.0.201703011520資料夾放到eclipse的路徑\eclipse\plugins

3.新建一個TestNG類

在一個包下,滑鼠右鍵,點選TestNG,然後選擇Create TestNG class

預設TestNG沒有新增到當前專案的lib中,需要安裝如圖新增。

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

舉例一個完整的基於TestNG的Selenium指令碼。注意下面我們把driver定義放到了類的成員變數裡,所以在該類下任何地方都能呼叫driver和保持driver的唯一性。

package lessons;

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

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() {
    	driver.quit();
   }

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

可以右鍵Run as -TestNG test,執行結果控制檯輸出如下:

Starting ChromeDriver 2.29.461591 (62ebf098771772160f391d75e589dc567915b233) on port 36423
Only local connections are allowed.
七月 13, 2017 4:28:26 下午 org.openqa.selenium.remote.ProtocolHandshake createSession
資訊: Detected dialect: OSS
PASSED: OpenBaidu

===============================================
    Default test
    Tests run: 1, Failures: 0, Skips: 0
===============================================


===============================================
Default suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================

檢視測試報告

       每次執行TestNG都會生成一個測試報告,你可以在執行結束後,右鍵你eclipse專案-重新整理,然後就可以看到專案的根目錄下生成一個test-output的資料夾,你可以開啟emailable-report.html,在eclipse專案中開啟這個web檔案格式會很難看,你可以在你workspace找到你的eclipse專案,找到這個報告檔案,用本地瀏覽器開啟,觀察體驗效果會更好。這裡不過多介紹這個報告,後面會介紹如何生成測試報告,並儲存到特定的資料夾路徑下。

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

相關推薦

Java+Selenium3框架設計準備1-TestNG簡單介紹

       前面文章我們執行測試用例都是在main方法下,有沒有什麼方法不需要用main方法去執行用例,這就需要單元測試框架的支援,這篇簡單介紹TestNG單元測試框架的安裝和基本使用。 1.什麼是

Java+Selenium3框架設計準備4-TestNG實現DDT(2)

本篇繼續介紹用TestNG和excel檔案實現DDT場景。我們需要準備一個test-data.xlsx檔案,並且放到eclipse專案下。 1.準備test-data.xlsx檔案 2.利用POI讀取excel檔案內容,並儲存到一個二維陣列中。 package demo;

Java+Selenium3框架設計準備7-TestNG如何disable一些case

       本文繼續學習TestNG的知識,有些時候,我們在寫指令碼的時候暫時不讓一些測試用例執行,怎麼辦呢?有兩種方法,程式碼登出這個用例區域,第二個是去除前面@Test註釋,這樣testNG執行

Java+Selenium3框架設計準備12-純JAVA方法實現日誌輸出

       前面一篇介紹如何通過開源jar包Log4j.jar實現日誌檔案輸出,Log4j確實很強大,能生成三種日誌檔案,一種是儲存到磁碟的日誌檔案,一種是控制檯輸出的日誌,還有一種是HTML格式的日誌檔案。有時候,我們不一定都需要這些檔案,在我們自動化測試框架裡,我們只

Java+Selenium3框架設計準備8-POM簡介

       頁面物件模型(Page Object Model)在Selenium Webdriver自動化測試中使用非常流行和受歡迎,作為自動化測試工程師應該至少聽說過POM這個概念。本篇介紹POM

Java+Selenium3框架設計1-跨瀏覽器支援

          本篇開始介紹Java+Selenium+POM的簡單自動化測試框架設計。第一個設計點,就是支援跨瀏覽器測試。從我個人角度來說,跨瀏覽器測試就是:同一個測試用例,支援用不同瀏覽器去執行。我們這裡只考慮winodws平臺的瀏覽器,而且只關注火狐和谷歌瀏覽器的

Java+Selenium3框架設計5-如何實現郵件傳送測試報告

       本篇繼續回答網友的問題,這個主題是如何通過郵件傳送測試報告。通過郵件傳送測試報告,這個很重要,也很有必要。不管你使用什麼自動化測試框架,都建議添加發送測試報告的功能。先來設計我們的傳送郵件的場景:假如我們測試報告是固定的名稱,放在固定的路徑下。 1.下載jav

Java+Selenium3框架設計6-如何解決多條類下用例執行只啟動一次瀏覽器的問題

       前面我們實現了在setUp方法中新增登入的用例。今天,還是為了解決我們遺留的問題,如果執行多條測試用例,這些用例在不同類檔案下,我們只需要啟動一次瀏覽器,登入一次,然後根據順序去執行多個

Java學習筆記——淺談數據結構與Java集合框架(第一、List)

技術分享 emp 鏈表 adc 下標 -c nod nal integer 橫看成嶺側成峰,遠近高低各不同。不識廬山真面目,只緣身在此山中。               ——蘇軾 這一塊兒學的是雲裏霧裏,咱們先從簡單的入手。逐漸的撥開迷霧見太陽。本次先做List集合的三

Java語言程序設計 基礎 編程練習題 12.7

練習題 frame add pack ++ set ase mage awt 1 package test.com; 2 3 import java.awt.GridLayout; 4 5 import javax.swing.*; 6 /* 7

第四節:框架前期準備之進程外Session的兩種配置方式

connect 也會 strong 缺點 col 客戶端 配置 ott 小學生 一. 基本介紹 1. 背景:Asp.Net默認的Session機制是進程內,存儲在服務器端內存中,有這麽幾個缺點:   ①:既然存在內存中,空間有限,不能存儲大數據量信息,數據量多的話S

RISC-V嵌入式開發準備1:編譯過程簡介

原文出處:https://mp.weixin.qq.com/s/-syKN0DibKGGPCllaeNqMg 隨著國內第一本RISC-V中文書籍《手把手教你設計CPU——RISC-V處理器篇》 正式上市,越來越多的愛好者開始使用開源的蜂鳥E203 RISC-V處理核,很多初學者留

Java面試題設計模式介面卡模式

目的 介面卡模式為了把不符合的介面實現,轉換為呼叫方期待的介面。 類圖 實戰案例 比如我的專案中,原來的一部分業務資料查詢的是資料庫,現在需要改為Hsqldb查詢。原來的程式碼結構如下: 程式碼 原來的資料操作介面DbDao: package com.p

[準備1]VMWare搭建Openstack——Ubuntu14.04作業系統安裝

最近一直在搞OpenStack,從0開始,以前完全沒有接觸過,因為有一些專案需求,也包括以前同事有一定的研究基礎,比照著現有的文件進行搭建,我這個人比較怪,對新東西不是先看原理,而是喜歡先看到實體再去

Python+Selenium框架設計之2-簡單介紹unittest單元測試框架

       前面文章已經簡單介紹了一些關於自動化測試框架的介紹,知道了什麼是自動化測試框架,主要有哪些特點,基本組成部分等。在繼續介紹框架設計之前,我們先來學習一個工具,叫unittest。    

[轉]Java面試題——設計模式

128、開發中都用到了那些設計模式?用在什麼場合? 答:每個模式都描述了一個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在重複相同的工作。主要用到了MVC的設計模式。用來開發JSP/Servlet或者J2EE的相關應用。簡單工廠模式等

Java面試題設計模式單例模式

1 餓漢式-不要求延遲載入的情況下使用 餓漢方式一:Enum public enum Singleton { INSTANCE; public void whateverMethod() { } } 餓漢方式二:靜態類變數 如果

關於Java集合框架,這講的還算不錯了,建議大家看看!

## 集合框架 為什麼要用集合而非陣列: 雖然陣列是儲存一組物件最有效的方式,但是陣列具有固定尺寸,但在寫程式時並不知道將需要多少個物件。而集合能夠自動地調整自己的尺寸。 列印陣列時,必須使用`Arrays.toString()`,但是列印集合可以直接列印。 建立集合物件如果不使用泛型,那麼預設可以存

設計模式筆記1簡單工廠模式

1.3 簡單 修改 作用 面向對象 對象 面向 tro 計算   如果想成為一名更優秀的軟件設計師,了解優秀軟件設計的演變過程比學習優秀設計本身更有價值。 1.1 面向對象的好處   通過封裝、繼承多態把程序的耦合度降低,使用設計模式使得程序更加靈活,容易修改,易於復用

C#設計模式(1)——簡單工廠模式

void 例子 代碼復用 操作 inf 這樣的 man ger troy 1.什麽是簡單工廠   現實中的工廠負責生產產品,編程中的簡單工廠顧名思義就是一個生產對象的類,它的主要作用是封裝改變。我們在平時的工作必不可免的和各種數據庫打交道,我們就以一個數據庫服務類為例來分