TestNG 圖解說明
TestNG 是什麼:
TestNG,即Testing,Next Generation,下一代測試技術,是一套根據JUnit 和NUnit思想而建構的利用注釋來強化測試功能的一個測試架構,即可以用來做單元測試,也可以用來做內建測試。
TestNG 如何安裝
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TN0kTNxUTM0EzMxgDM1EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
輸入http://beust.com/eclipse/
如果出現就點ok
點yes
TESTNG 類建立
重新開機之後我們在測試工程中建立一個TESTNG 的包名
在TESTNG 包名處右擊滑鼠
現在增加部分代碼
選擇Run――TESTNG
執行上面最簡單的一個代碼時大家一定發現了在每個方法前有一個@ 标簽,這個标簽在TESTNG 中叫注解
現在跟大家普及下TESTNG 中的标簽是什麼意思,執行順序是怎樣的呢
TESTNG 注解
首先我們在建立TESTNG 時出現以下界面對吧
以下是每個注解的具體描述資訊
為了便于了解上述注解的使用方式我這邊在建立Class 時全選上所有注解
模闆生成之後增加列印語句
.
運作TESTNG
其中的BeforeMethod/AfterMethod 會在每個方法中調用一次,這種适用場所,比如我執行完第一個用例之後要重置資料才能執行第二條用例時,可以用這種方式,BeforeMethod 就放重置資料的方法,讓每個方法執行之前都去調用這個方法
現在再用實際例子跑一次蘇甯易購網
建立以下代碼
用TESTNG 運作該類
檢視記錄運作結果是PASS 的
切換到另一視圖
可以精确看到每個方法執行花費多長時間,也可以看到執行是通過還是不通過
TESTNG 結果展示
将工程重新整理之後在SRC 同級目錄下你可以看到一個TEST-OUTPUT 的目錄
.
打開該目錄選擇emailable-report.html‘,
TESTNG 中XML 簡單配置
現在對上述測試類稍作修改,做成XML 調用方式
在TESTNG.XML 中輸入以下代碼
選擇TESTNG.XML 後點右我鍵選擇RUN –TESTNG TEST
執行完再檢視結果
TESTNG 執行順序
TESTNG 在實際執行過程中順序是如何排的呢
其實他并不是按代碼中從上往下執行的,他是控字母+數字排序
建立以下類
運作TESTNG TEST
發現他并沒有按我們代碼中1,2,3,4 的順序執行
那如果我想按代碼寫的順序執行如何辦呢
可以在注解中增加順序
(priority=XX) XX 代表第幾次執行
我們将上述代碼再修改下,先将1,2,3,4 的順序再打亂下
再用标記的方式讓系統執行按1,2,3,4 的順序執行
假如調試時我可能隻要執行部分方法,也就是說要跳過一部分方法怎麼辦呢,同樣是在注解中增加參數
這時我們可以增加enabled=false 表過該方法不執行
在執行過程中3的方法就沒有執行了
TESTNG Resport 記錄展示
在RESTPORT 中展示Log
再新增一個ReporterLogs TESTNG類
輸入以下内容
執行之後打開 emailable-report.html 會發現如圖所示的畫面
Log.info("資訊驗證Ok");
Reporter.log("測試方法已驗證通過");
可以看出兩個log 展示的地方不一樣,Reporter.log 隻是在結果中展示,用于展示一些概述性的東西時比較好,比如一個方法執行通過就列印下,具體步驟我們就用log.info 方式記錄
TESTNG 參數化
TESTNG 中的參數與資料提供者介紹
參數需要在注解中加入這個格式
@Parameters({"參數1","參數2"})
現在我們還是以蘇甯易購網站為例稍作修改
建立一個測試類
同時修改TESTNG.XML
這樣設定代表資料是從xml 中取,之後傳級測試類中的參數
點選TESTNG.XML 運作testng 之後結果展示:
另一種資料提供者
也是通過增加注解方式實作
标準格式是:
@DataProvider(name="XXXX")
現再建立一個測試類
輸入以下代碼
運作TESTNG
我們雖然隻有一個測試方法,但同一個沒試方法有兩組資料,是以被執行兩次