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.什麽是簡單工廠 現實中的工廠負責生產產品,編程中的簡單工廠顧名思義就是一個生產對象的類,它的主要作用是封裝改變。我們在平時的工作必不可免的和各種數據庫打交道,我們就以一個數據庫服務類為例來分