下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、引子古人云:蝸牛也是牛話說最近幾天半年會開的一個半勁,看到大家一個個捧著大獎和NS帥的掉灣的最帥哥合影,幸福的像花兒一樣,本牛內(nèi)心頗不平靜。人家鳥哥的私房菜都第三版了,本牛作為一個工作多年的新人還在原地打轉(zhuǎn),輾轉(zhuǎn)反側(cè),難以入睡,終于在數(shù)了一千只羊之后,做出一個沉重的決定:我得寫點(diǎn)東西。為了那閃耀著萬丈光芒的最佳新人獎,啊不,哪怕最佳新人提名獎也好,也為了阿炳同學(xué)求知的精神,更為了質(zhì)量部QA新人的質(zhì)量。我是一個PHP的菜鳥,Mysql也只是會使用,所以我寫的這些東西大多是以Java作為首選語言,但有些東西作為通用的思想是不受語言限制的。萬事開頭難,其實(shí)開過頭后也不容易。測試方面的技術(shù)好多啊,多的
2、像天上的繁星,一/K.仁.四個在有限的時(shí)間里,想做最多的了解,只能從最實(shí)用的著手,去除教條式的金科玉律。于是,一個切入點(diǎn)蹦了出來,那就是介紹號稱下一代Java測試技術(shù)的TestNG其實(shí)這個nextgeneration也只是相對于Junit3.8這個版本,在這個版本發(fā)布5年之后,從TestNG中借鑒了許多概念的Junit4才發(fā)行,所以了解TestNG同樣有助于學(xué)習(xí)Junit及Unit系列的眾多分支。軟件開發(fā)是一項(xiàng)風(fēng)險(xiǎn)事業(yè)。測試則是緩解項(xiàng)目風(fēng)險(xiǎn)最重要的手段之一。一般來說,我們應(yīng)該讓需求可測試,讓測試自動化,讓自動化測試變的容易。理念一定要先進(jìn),工具一定要先進(jìn)。將這些先進(jìn)的理念和工具應(yīng)用于項(xiàng)目中,提
3、高生產(chǎn)效率,這就是創(chuàng)新的意義所在。g明:本段不是原創(chuàng)?。?、 簡介TestNG是一個測試框架,不僅僅用來做單元測試,還包括集成測試。利用注解(annotation)來標(biāo)注測試類。2、 和Junit3.8的區(qū)另I4.4 .測試方法的名字不必以test開始,命名靈活;5.5 .測試方法可以返回值,不必是void的;6.6 .測試方法可以傳入?yún)?shù);7.7 .測試類不必從TestCase中繼承;8.8 .除了提供了BeforMethod和AfterMethod這些在測試方法之前和之后的調(diào)用的外,還有BeforeClass、AfterClass、BeforTest、AfterTest等調(diào)用;9.9 .提
4、供了依賴關(guān)系測試;10.10 .對測試方法進(jìn)行分組;11.11 .對異常的測試;3、 詳細(xì)介紹測試、套件和配置annotationTestNG在testng.xml中來描述和配置測試,包括配suite,test,group(includeandexclude某些組),class,method(includeandexclude某些測試方法),還包括package的指定。一個典型testng.xml內(nèi)容如下:<!DOCTYPEsuiteSYSTEM"http:/testng.Org/testng-1.0.dtd"><suitename="Suite
5、1"verbose="1"><testname="NOpackage"><classes><classname="NoPackageTest”/></classes></test><testname="Regression1"><classes><classname="test.sample.ParameterSample"/><classname="test.sample.Pa
6、rameterTest"/></classes></test></suite>術(shù)語:一個suite(套件)由一個或者多個測試組成;一個test(測試)由一個或者多個類組成;一個class(類)由一個或者多個方法組成;配置annotation是指所有以86砧伯和人他開頭的annotation0這些方法定義了TestNG生命周期中的事件,提供了一種靈活的、分層的方式來完成測試的初始化和清理工作。TestNG類的配置信息:BeforeSuite:被注解的方法,會在當(dāng)前suite中所有測試方法之前被調(diào)用。AfterSuite:被注解的方法,會在當(dāng)前s
7、uite中所有測試方法之后被調(diào)用。BeforeTest被注解的方法,會在測試(原文就是測試,不是測試方法)運(yùn)行前被調(diào)用AfterTest被注解的方法,會在測試(原文就是測試,不是測試方法)運(yùn)行后被調(diào)用BeforeGroups被注解的方法會在組列表中之前被調(diào)用。這個方法會在每個組中第一個測試方法被調(diào)用之前被調(diào)用。AfterGroups:被注解的方法會在組列表中之后被調(diào)用。這個方法會在每個組中最后一個測試方法被調(diào)用之后被調(diào)用。BeforeClass被注解的方法,會在當(dāng)前類第一個測試方法運(yùn)行前被調(diào)用AfterClass被注解的方法,會在當(dāng)前類所有測試方法運(yùn)行后被調(diào)用BeforeMethod:被注解的
8、方法,會在運(yùn)行每個測試方法之前調(diào)用AfterMethod:被注解的方法,會在每個測試方法運(yùn)行之后被調(diào)用重新執(zhí)行失敗的case在實(shí)際的測試工作中會遇到需要重新執(zhí)行失敗的case的情況,這個在TestNG中提供了很好的支持,只需要在TestNG的輸出目錄(默認(rèn)是test-output/)下執(zhí)行自動生成的一個名為testng-failded.xml的文件。這個xml文件包含了原來的testng.xml中所有失敗的case給測試方法傳遞參數(shù)利用testng.xml傳遞參數(shù)在testng.xml文件中,使用parameter節(jié)點(diǎn)在s3te或者test層指定參數(shù)。如果在suite和test層都指定某一個參
9、數(shù)的值,suite的優(yōu)先級會比test的要高,test中參數(shù)的值會被覆蓋,在測試方法中會讀取suite中這個參數(shù)的value。Testng.xml中內(nèi)容如下:<suitename="MavenAndTestng"><!-Parametersetting:參數(shù)可以在配置文件的suite和test之后定義,而如果兩個參數(shù)的名稱一樣,test中定義的參數(shù)值有較高的優(yōu)先級。-><parametername="xml-file"value="accounts.xml"/><parametername=&
10、quot;hostname"value=""/><parametername="printPara"value="HelloWord11111111111111"/><testverbose="2"name="a"annotations="JDK"><parametername="hostname"value=""/><classes><classname="
11、;testcases.TestCal"/><classname="testcases.TestPrint"/></classes></test></suite>在測試方法中調(diào)用參數(shù):TestParameters("hostname","xml-file")privatevoidparaTest(StringhostName,StringxmlFile)System.out.println(hostName);System.out.println(xmlFile);)Tes
12、tNG自動將testng.xml中的值轉(zhuǎn)換為參數(shù)的類型。下面是支持的類型:Stringint/Integerboolean/Booleanbyte/Bytechar/Characterdouble/Doublefloat/Floatlong/Longshort/Short如果犯了一下錯誤之一,TestNGa拋出一個異常:.在testng.xml中定義了一個參數(shù),但不能轉(zhuǎn)換成對應(yīng)方法的參數(shù)的類型;.測試方法中調(diào)用的參數(shù)在testng.xml中沒有定義;通過testng.xml傳遞參數(shù)簡單且明確,并且修改參數(shù)后不要從新編譯代碼,但是有一些局限。比如需要傳遞的參數(shù)不是基本的java類型,或者參數(shù)的值
13、只能在運(yùn)行時(shí)才創(chuàng)建,那么我們應(yīng)該考慮使用DataProvider)3.3.2利用DataProvider傳遞參數(shù)使用這種方式傳遞參數(shù)的好處:.可以向測試方法傳遞任意類型的參數(shù);.多個測試方法可以共用一個參數(shù)組合;.把同一個測試方法的參數(shù)提取成參數(shù)組合,可以減少代碼冗余;示例:DataProvider(name="TestAddParam")privateObjectdataValues()returnnewObject口口1,1,2,2,3,3,4,4;Test(dataProvider="TestAddParam")privatevoidTestAdd
14、(inta,intb)System.out.print("addwithparam:"+a+"+"+b);intresult=cal.add(a,b);System.out.println("="+result);Assert.assertEquals(result,a+b);利用TestNg進(jìn)行依賴測試TestNG通過丁6$1的兩個屬性(dependsOnGroups和dependsOnMethods)來支持依賴測試。示例:Test(groups="Check_test")/runasagroupprivatev
15、oidCheckSelect()booleanselect=false;if(select)Assert.assertTrue(select);)elseAssert.fail("SelectFail");)Test(dependsOnMethods="CheckSelect")publicvoidTestMul()intresult=cal.mul(2,5);Assert.assertEquals(result,10);)Test(dependsOnGroups="Check_test")publicvoidTestDev()Sys
16、tem.out.println("Mul");intresult=cal.dev(10,2);Assert.assertEquals(result,5);)分組測試在TestNG可以通過Tes©group屬性指定一個測試方法或者一個測試類屬于一個或者多個組。示例:.一個方法屬于多個組:Test(groups="group1","group2")privatevoidCheckSelect().指定一個類所有方法的分組:Test(groups="group3")publicclassATestPublicv
17、oidtest1()/這個方法屬于group3).類的分組和方法的分組交織的情況Test(groups="group3")publicclassATestpublicvoidtest1()/這個方法屬于group3Test(groups="group4")publicvoidtest1()/這個方法同時(shí)屬于group3和group4一些分組規(guī)則的建議:.按照測試類型:單元測試、功能測試、集成測試、系統(tǒng)測試、驗(yàn)收測試、性能測試;.按照測試規(guī)模:小規(guī)模、中規(guī)模、大規(guī)模;.按照功能描述:webui、html、js、database;.按照測試速度:慢測試、快測試;.按照過程描述:冒煙測試、里程碑測試、發(fā)布測試;.按照平
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2019粵教版 高中美術(shù) 選擇性必修2 中國書畫 《第二單元 中國書法》大單元整體教學(xué)設(shè)計(jì)2020課標(biāo)
- 2024屆河北省邯鄲市六校第一次教學(xué)質(zhì)量檢測試題(合肥一模)數(shù)學(xué)試題
- 茶樓合伙協(xié)議書范本
- 北京統(tǒng)一租賃房屋租賃合同
- 童謠兒歌我來讀活動
- 腎臟移植手術(shù)
- 山東省濱州市2024-2025學(xué)年八年級上學(xué)期期中考試語文試題(含答案)
- 湖南省益陽市赫山區(qū)箴言龍光橋?qū)W校2024-2025學(xué)年一年級上學(xué)期期中考試數(shù)學(xué)試題(無答案)
- 【初中地理】影響氣候的因素課件-2024-2025學(xué)年湘教版地理七年級上冊
- 電影機(jī)械行業(yè)相關(guān)投資計(jì)劃提議
- 汽車前大燈光型檢測系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)論文
- 掘進(jìn)工作面貫通專項(xiàng)辨識評估報(bào)告
- 蘇教版科學(xué)四年級上全冊單元達(dá)標(biāo)測試卷(一)附答案
- 強(qiáng)生干式生化V350檢測儀標(biāo)準(zhǔn)操作程序(SOP)
- 四年級家長會語文科(完美版)課件
- 扁桃體炎-課件
- 蘇教版五年級數(shù)學(xué)上冊《小數(shù)乘小數(shù)》說課稿
- 2023年學(xué)習(xí)興稅(網(wǎng)絡(luò)信息)知識考試復(fù)習(xí)題庫(含答案)
- 探放水操作工安全風(fēng)險(xiǎn)管控措施
- DBJ-T13-368-2021 福建省陶粒增強(qiáng)型輕質(zhì)墻板應(yīng)用技術(shù)標(biāo)準(zhǔn)
- 2023屆江蘇省泰州市興化一中化學(xué)高一下期末達(dá)標(biāo)檢測試題含解析
評論
0/150
提交評論