1. 程式人生 > >TestNG 開源自動化測試框架

TestNG 開源自動化測試框架

摘要:
TestNG是一個開源自動化測試框架;TestNG表示下一代。 TestNG是類似於JUnit(特別是JUnit 4),但它不是一個JUnit擴充套件。它的靈感來源於JUnit。它的目的是優於JUnit的,尤其是當測試整合的類。

主要內容:
TestNG編寫測試:
編寫TestNG測試基本上包括以下步驟:

  1. 測試和編寫業務邏輯,在程式碼中插入TestNG的註解..
  2. 新增一個testng.xml檔案或build.xml中在測試資訊(例如類名,您想要執行的組,等..)
  3. 執行 TestNG.

TestNG基本註解(註釋):
@BeforeSuite 註解的方法將只執行一次,執行所有測試前此套件中。
@AfterSuite 註解的方法將只執行一次此套件中的所有測試都執行之後。
@BeforeClass 註解的方法將只執行一次先行先試在當前類中的方法呼叫。
@AfterClass 註解的方法將只執行一次後已經執行在當前類中的所有測試方法。
@BeforeTest 註解的方法將被執行之前的任何測試方法屬於內部類的 標籤的執行。
@AfterTest 註解的方法將被執行後,所有的測試方法,屬於內部類的標籤的執行。
@BeforeGroups 組的列表,這種配置方法將之前執行。此方法是保證在執行屬於任何這些組第一個測試方法,該方法被呼叫。
@AfterGroups 組的名單,這種配置方法後,將執行。此方法是保證執行後不久,最後的測試方法,該方法屬於任何這些組被呼叫。
@BeforeMethod 註解的方法將每個測試方法之前執行。
@AfterMethod 被註釋的方法將被執行後,每個測試方法。
@DataProvider 標誌著一個方法,提供資料的一個測試方法。註解的方法必須返回一個Object[] [],其中每個物件[]的測試方法的引數列表中可以分配。
@Test 方法,希望從這個DataProvider的接收資料,需要使用一個dataProvider名稱等於這個註解的名字。
@Factory 作為一個工廠,返回TestNG的測試類的物件將被用於標記的方法。該方法必須返回Object[]。
@Listeners 定義一個測試類的監聽器。
@Parameters 介紹如何將引數傳遞給@Test方法。
@Test 標記一個類或方法作為測試的一部分。

TestNG執行程式:
例子:

import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;
import
org.testng.annotations.BeforeSuite; import org.testng.annotations.AfterSuite; public class TestngAnnotation { // test case 1 @Test public void testCase1() { System.out.println("in test case 1"); } // test case 2 @Test public void testCase2() { System.out.println("in test case 2"
); } @BeforeMethod public void beforeMethod() { System.out.println("in beforeMethod"); } @AfterMethod public void afterMethod() { System.out.println("in afterMethod"); } @BeforeClass public void beforeClass() { System.out.println("in beforeClass"); } @AfterClass public void afterClass() { System.out.println("in afterClass"); } @BeforeTest public void beforeTest() { System.out.println("in beforeTest"); } @AfterTest public void afterTest() { System.out.println("in afterTest"); } @BeforeSuite public void beforeSuite() { System.out.println("in beforeSuite"); } @AfterSuite public void afterSuite() { System.out.println("in afterSuite"); } }

XML檔案:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
  <test name="test1">
    <classes>
       <class name="TestngAnnotation"/>
    </classes>
  </test>
</suite>

執行結果:

in beforeSuite
in beforeTest
in beforeClass
in beforeMethod
in test case 1
in afterMethod
in beforeMethod
in test case 2
in afterMethod
in afterClass
in afterTest
in afterSuite

===============================================
Suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================

以下內容下篇文章再進行詳細講解:
TestNG執行測試
TestNG套件測試
TestNG忽略測試
TestNG組測試
TestNG異常測試
TestNG依賴測試
TestNG引數化測試
TestNG執行JUnit測試
TestNG測試結果報告
TestNG外掛與ANT
TestNG Eclipse外掛

總結:
TestNG消除了大部分的舊框架的限制,使開發人員能夠編寫更加靈活和強大的測試。 因為它在很大程度上借鑑了Java註解(JDK5.0引入的)來定義的測試,它也可以告訴你如何使用這個新功能在真實的Java語言生產環境中。

歡迎加QQ群 -> 陽臺測試 -> 239547991(群號)

相關推薦

TestNG 開源自動化測試框架

摘要: TestNG是一個開源自動化測試框架;TestNG表示下一代。 TestNG是類似於JUnit(特別是JUnit 4),但它不是一個JUnit擴充套件。它的靈感來源於JUnit。它的目的是優於JUnit的,尤其是當測試整合的類。 主要內容: Tes

jenkins、ant、selenium、testng搭建自動化測試框架

<?xml version="1.0" encoding="UTF-8"?> <project name="Demo" default="run" basedir="."> <echo message="import libs" /> <path i

哪一個更適合你?——熱門開源自動化測試框架對比分析

時間一晃已來到 2018 年的最新一個季度,TestProject 對比了在去年比較熱門的 7 款開源自動化測試框架的優缺點,以幫助你選擇適合自己的測試框架。1. Robot FrameworkRobot Framework(RF)是用於驗收測試和驗收測試驅動開發(ATDD)

基於TestNG自動化測試框架ATS

一、需求        由於目前很多公司缺少相應的整合測試框架,對於場景的測試全部是黑盒測試,黑盒測試目前在公司測試有一個很大的缺點:每一次迭代都需要測試人員測試所有的功能,如果有一個場景沒有測試到就有可能導致嚴重的bug,這樣就帶來了測試人員在每次迭代釋出的時候重複勞動;為

Eclipse+TestNG搭建接口自動化測試框架

eclipse 資源分享 由於 myeclipse 配置文件 需要 globals setting 做了 一、環境安裝 1、前提 安裝好jdk 配置好Java環境變量 安裝Eclips 這些網上都有,就不再詳細介紹。 資源分享鏈接:http://pan.baidu.com

解決TestNG 自動化測試框架如何安裝到eclipse中

sem err dmr nco mwl wql urn ycm vro TestNG 自動化測試框架如何安裝到eclipse中 ??? 解釋: TestNG 其實就是一個插件(個人理解為eclipse 中的插件 ) 開門見山---寫步驟 :

【selenium】selenium 自動化測試框架部署1:selenium + JUnit + eclipse + testNG 環境部署

目錄 二、Firefox:Selenium IDE 安裝 三、jdk:下載和安裝 四、eclipse:下載和安裝 五、必要的jar包下載 六、eclipse:自動化測試框架環境部署 七、Firefox:Try Xpath 安裝 八、eclipse:安裝testNG外掛

selenium+java+testNG+pageObject深入理解自動化測試框架

關於selenium+java+testNg的環境配置文章,本文主要講述測試框架的架構實現。 我們知道,搭建一個合理的測試框架能夠將自動化測試做大做大,一個合適的自動化測試框架能夠極大的降低程式碼的數量,便於後續的維護。文章先從測試框架的模型,思想講起,然後將各個部分做實現

(JAVA+TESTNG 二)Eclipse+TestNG搭建介面自動化測試框架

http://qa.blog.163.com/blog/static/190147002201510275306185/ http://www.51testing.com/html/40/n-3709140.html 一、環境安裝 1、前提 安裝好jdk 配置好Java環

自動化測試框架selenium+java+TestNG——配置篇

   最近來總結下自動化測試 selenium的一些常用框架測試搭配,由簡入繁,最簡單的就是selenium+java+TestNG了,因為我用的是java,就只是總結下java了。 TestNG線上安裝:  開啟Eclipse   Help ->Install

(JAVA+TESTNG 三)Eclipse+TestNG搭建介面自動化測試框架

轉載http://www.cnblogs.com/findyou/p/5388853.html 1、介面說明 例:北京市天氣 介面的址:http://www.weather.com.cn/data/cityinfo/101010100.html 請求方式:GET請求結果:

Java自動化測試框架-01 - TestNG之入門篇 - 大佬的雞肋,菜鳥的盛宴(詳細教程)

TestNG是什麼? TestNG按照官方的定義: TestNG是一個測試框架,其靈感來自JUnit和NUnit,但引入了一些新的功能,使其功能更強大,使用更方便。 TestNG是一個開源自動化測試框架;TestNG表示下一代(Next Generation的首字母)。 TestNG類似於JUnit

Java自動化測試框架-02 - TestNG之理論到實踐 - 紙上得來終覺淺,絕知此事要躬行(詳細教程)

理論 TestNG,即Testing, NextGeneration,下一代測試技術,是一套根據JUnit 和NUnit思想而構建的利用註釋來強化測試功能的一個測試框架,即可以用來做單元測試,也可以用來做整合測試。因為TestNG是從Junit的思想構建而來,所以TestNG具備junit等所不具備的多重功

Java自動化測試框架-03 - TestNG之Test Group篇 - 我們一起組團打怪升級(詳細教程)

簡介   其實這篇文章的group巨集哥在上一篇中就提到過,但是就是舉例一筆帶過的,因此今天專門有一篇文章來講解Group的相關知識。希望大家茅塞頓開 ,有著更進一步認識和了解測試組。 一、Test Group(測試組)   TestNG 允許你將複雜的測試方法歸類為不同的組。不僅僅是可以宣告某個方法屬

Java自動化測試框架-04 - TestNG之Test Method篇 - 道法自然,法力無邊(詳細教程)

簡介 按照上一篇的計劃,這一篇給小夥伴們分享一下測試方法。 一、設定引數 測試方法是可以帶有引數的。每個測試方法都可以帶有任意數量的引數,並且可以通過使用TestNG的@Parameters向方法傳遞正確的引數。 設定方式有兩種方法:使用testng.xml或者Data Providers 

Java自動化測試框架-07 - TestNG之Factory篇 - 歡快暢遊夢幻工廠(詳細教程)

簡介   最近忙著裝修部落格園,沒時間更新文章,今天終於抽出時間把上次寫的一半的文章給寫完了,新的部落格園風格,希望大家喜歡。今天繼續介紹testng的相關知識--工廠。 工廠允許你動態的建立測試。例如,假設你需要建立一個測試方法,並用它來多次訪問一個web頁面,而且每次都帶有不同的引數: @Factory註

Java自動化測試框架-08 - TestNG之並行性和超時篇 (詳細教程)

一、並行性和超時 您可以指示TestNG以各種方式在單獨的執行緒中執行測試。 可以通過在suite標籤中使用 parallel 屬性來讓測試方法執行在不同的執行緒中。這個屬性可以帶有如下這樣的值: 二、並行套件(suites) 如果您正在執行多個套件檔案(例如“ java org.tes

Java自動化測試框架-10 - TestNG測試結果篇

1.-測試結果 1.1-成功,失敗和斷言 測試被認為是成功的,如果它不引發任何異常完成,還是它扔的預期異常(請參閱文件expectedExceptions屬性上找到的@Test註釋)。 您的測試方法通常由可能引發異常的呼叫或各種斷言(使用Java“ assert”關鍵字)組成。&ldq

Java自動化測試框架-11 - TestNG之annotation與併發測試篇 (詳細教程)

1、簡介 TestNG中用到的annotation的快速預覽及其屬性。 2、TestNG基本註解(註釋) 註解 描述 @BeforeSuite 註解的方法只執行一次,在當前suite所有測試執行之前執行 @AfterSuite 註解的方法只執行一次,在當前suite所有測試執行之後執行 @B

Java自動化測試框架-12 - TestNG之xml檔案詳解篇 (詳細教程)

1.簡介 現在這篇,我們來學習TestNG.xml檔案,前面我們已經知道,TestNG就是執行這個檔案來執行測試用例的。通過本篇,你可以進一步瞭解到:這個檔案是配置測試用例,測試套件。簡單來說,利用這個檔案,我們可以跑同一個類或者多個不同類裡面的測試用例。 TestNG通過設定testng.xml檔案能做以下