下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、引子古人云:蝸牛也是牛話說最近幾天半年會(huì)開的一個(gè)半勁,看到大家一個(gè)個(gè)捧著大獎(jiǎng)和NS帥的掉灣的最帥哥合影,幸福的像花兒一樣,本牛內(nèi)心頗不平靜。人家鳥哥的私房菜都第三版了,本牛作為一個(gè)工作多年的新人還在原地打轉(zhuǎn),輾轉(zhuǎn)反側(cè),難以入睡,終于在數(shù)了一千只羊之后,做出一個(gè)沉重的決定:我得寫點(diǎn)東西。為了那閃耀著萬丈光芒的最佳新人獎(jiǎng),啊不,哪怕最佳新人提名獎(jiǎng)也好,也為了阿炳同學(xué)求知的精神,更為了質(zhì)量部QA新人的質(zhì)量。我是一個(gè)PHP的菜鳥,Mysql也只是會(huì)使用,所以我寫的這些東西大多是以Java作為首選語言,但有些東西作為通用的思想是不受語言限制的。萬事開頭難,其實(shí)開過頭后也不容易。測(cè)試方面的技術(shù)好多啊,多的
2、像天上的繁星,一/K.仁.四個(gè)在有限的時(shí)間里,想做最多的了解,只能從最實(shí)用的著手,去除教條式的金科玉律。于是,一個(gè)切入點(diǎn)蹦了出來,那就是介紹號(hào)稱下一代Java測(cè)試技術(shù)的TestNG其實(shí)這個(gè)nextgeneration也只是相對(duì)于Junit3.8這個(gè)版本,在這個(gè)版本發(fā)布5年之后,從TestNG中借鑒了許多概念的Junit4才發(fā)行,所以了解TestNG同樣有助于學(xué)習(xí)Junit及Unit系列的眾多分支。軟件開發(fā)是一項(xiàng)風(fēng)險(xiǎn)事業(yè)。測(cè)試則是緩解項(xiàng)目風(fēng)險(xiǎn)最重要的手段之一。一般來說,我們應(yīng)該讓需求可測(cè)試,讓測(cè)試自動(dòng)化,讓自動(dòng)化測(cè)試變的容易。理念一定要先進(jìn),工具一定要先進(jìn)。將這些先進(jìn)的理念和工具應(yīng)用于項(xiàng)目中,提
3、高生產(chǎn)效率,這就是創(chuàng)新的意義所在。g明:本段不是原創(chuàng)?。?、 簡介TestNG是一個(gè)測(cè)試框架,不僅僅用來做單元測(cè)試,還包括集成測(cè)試。利用注解(annotation)來標(biāo)注測(cè)試類。2、 和Junit3.8的區(qū)另I4.4 .測(cè)試方法的名字不必以test開始,命名靈活;5.5 .測(cè)試方法可以返回值,不必是void的;6.6 .測(cè)試方法可以傳入?yún)?shù);7.7 .測(cè)試類不必從TestCase中繼承;8.8 .除了提供了BeforMethod和AfterMethod這些在測(cè)試方法之前和之后的調(diào)用的外,還有BeforeClass、AfterClass、BeforTest、AfterTest等調(diào)用;9.9 .提
4、供了依賴關(guān)系測(cè)試;10.10 .對(duì)測(cè)試方法進(jìn)行分組;11.11 .對(duì)異常的測(cè)試;3、 詳細(xì)介紹測(cè)試、套件和配置annotationTestNG在testng.xml中來描述和配置測(cè)試,包括配suite,test,group(includeandexclude某些組),class,method(includeandexclude某些測(cè)試方法),還包括package的指定。一個(gè)典型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ù)語:一個(gè)suite(套件)由一個(gè)或者多個(gè)測(cè)試組成;一個(gè)test(測(cè)試)由一個(gè)或者多個(gè)類組成;一個(gè)class(類)由一個(gè)或者多個(gè)方法組成;配置annotation是指所有以86砧伯和人他開頭的annotation0這些方法定義了TestNG生命周期中的事件,提供了一種靈活的、分層的方式來完成測(cè)試的初始化和清理工作。TestNG類的配置信息:BeforeSuite:被注解的方法,會(huì)在當(dāng)前suite中所有測(cè)試方法之前被調(diào)用。AfterSuite:被注解的方法,會(huì)在當(dāng)前s
7、uite中所有測(cè)試方法之后被調(diào)用。BeforeTest被注解的方法,會(huì)在測(cè)試(原文就是測(cè)試,不是測(cè)試方法)運(yùn)行前被調(diào)用AfterTest被注解的方法,會(huì)在測(cè)試(原文就是測(cè)試,不是測(cè)試方法)運(yùn)行后被調(diào)用BeforeGroups被注解的方法會(huì)在組列表中之前被調(diào)用。這個(gè)方法會(huì)在每個(gè)組中第一個(gè)測(cè)試方法被調(diào)用之前被調(diào)用。AfterGroups:被注解的方法會(huì)在組列表中之后被調(diào)用。這個(gè)方法會(huì)在每個(gè)組中最后一個(gè)測(cè)試方法被調(diào)用之后被調(diào)用。BeforeClass被注解的方法,會(huì)在當(dāng)前類第一個(gè)測(cè)試方法運(yùn)行前被調(diào)用AfterClass被注解的方法,會(huì)在當(dāng)前類所有測(cè)試方法運(yùn)行后被調(diào)用BeforeMethod:被注解的
8、方法,會(huì)在運(yùn)行每個(gè)測(cè)試方法之前調(diào)用AfterMethod:被注解的方法,會(huì)在每個(gè)測(cè)試方法運(yùn)行之后被調(diào)用重新執(zhí)行失敗的case在實(shí)際的測(cè)試工作中會(huì)遇到需要重新執(zhí)行失敗的case的情況,這個(gè)在TestNG中提供了很好的支持,只需要在TestNG的輸出目錄(默認(rèn)是test-output/)下執(zhí)行自動(dòng)生成的一個(gè)名為testng-failded.xml的文件。這個(gè)xml文件包含了原來的testng.xml中所有失敗的case給測(cè)試方法傳遞參數(shù)利用testng.xml傳遞參數(shù)在testng.xml文件中,使用parameter節(jié)點(diǎn)在s3te或者test層指定參數(shù)。如果在suite和test層都指定某一個(gè)參
9、數(shù)的值,suite的優(yōu)先級(jí)會(huì)比test的要高,test中參數(shù)的值會(huì)被覆蓋,在測(cè)試方法中會(huì)讀取suite中這個(gè)參數(shù)的value。Testng.xml中內(nèi)容如下:<suitename="MavenAndTestng"><!-Parametersetting:參數(shù)可以在配置文件的suite和test之后定義,而如果兩個(gè)參數(shù)的名稱一樣,test中定義的參數(shù)值有較高的優(yōu)先級(jí)。-><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>在測(cè)試方法中調(diào)用參數(shù):TestParameters("hostname","xml-file")privatevoidparaTest(StringhostName,StringxmlFile)System.out.println(hostName);System.out.println(xmlFile);)Tes
12、tNG自動(dòng)將testng.xml中的值轉(zhuǎn)換為參數(shù)的類型。下面是支持的類型:Stringint/Integerboolean/Booleanbyte/Bytechar/Characterdouble/Doublefloat/Floatlong/Longshort/Short如果犯了一下錯(cuò)誤之一,TestNGa拋出一個(gè)異常:.在testng.xml中定義了一個(gè)參數(shù),但不能轉(zhuǎn)換成對(duì)應(yīng)方法的參數(shù)的類型;.測(cè)試方法中調(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ù)的好處:.可以向測(cè)試方法傳遞任意類型的參數(shù);.多個(gè)測(cè)試方法可以共用一個(gè)參數(shù)組合;.把同一個(gè)測(cè)試方法的參數(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)行依賴測(cè)試TestNG通過丁6$1的兩個(gè)屬性(dependsOnGroups和dependsOnMethods)來支持依賴測(cè)試。示例: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);)分組測(cè)試在TestNG可以通過Tes©group屬性指定一個(gè)測(cè)試方法或者一個(gè)測(cè)試類屬于一個(gè)或者多個(gè)組。示例:.一個(gè)方法屬于多個(gè)組:Test(groups="group1","group2")privatevoidCheckSelect().指定一個(gè)類所有方法的分組:Test(groups="group3")publicclassATestPublicv
17、oidtest1()/這個(gè)方法屬于group3).類的分組和方法的分組交織的情況Test(groups="group3")publicclassATestpublicvoidtest1()/這個(gè)方法屬于group3Test(groups="group4")publicvoidtest1()/這個(gè)方法同時(shí)屬于group3和group4一些分組規(guī)則的建議:.按照測(cè)試類型:單元測(cè)試、功能測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試、性能測(cè)試;.按照測(cè)試規(guī)模:小規(guī)模、中規(guī)模、大規(guī)模;.按照功能描述:webui、html、js、database;.按照測(cè)試速度:慢測(cè)試、快測(cè)試;.按照過程描述:冒煙測(cè)試、里程碑測(cè)試、發(fā)布測(cè)試;.按照平
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際工程合同與索賠 心得
- 合伙分股合同模板
- 眼內(nèi)炎治療新進(jìn)展
- 2024合同協(xié)議書法司法解釋中英文對(duì)照
- 2024薪酬制物業(yè)管理合同
- 2024工程裝修施工合同范文
- 歐陸風(fēng)云3(EU3)常用秘籍與國家代碼
- 2024勞動(dòng)合同的注意事項(xiàng)
- 沈陽城市學(xué)院《影視導(dǎo)演》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽城市學(xué)院《訴訟可視化》2023-2024學(xué)年第一學(xué)期期末試卷
- 消防安全培訓(xùn)內(nèi)容
- 2024-2030年鋁型材行業(yè)市場(chǎng)深度調(diào)研及前景趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2024-2030年辣椒種植行業(yè)市場(chǎng)深度分析及發(fā)展策略研究報(bào)告
- 變電站綠化維護(hù)施工方案
- 校園展美 課件 2024-2025學(xué)年人美版(2024)初中美術(shù)七年級(jí)上冊(cè)
- 2024版《糖尿病健康宣教》課件
- ktv保安管理制度及崗位職責(zé)(共5篇)
- 腦出血試題完整版本
- (正式版)QBT 2174-2024 不銹鋼廚具
- 監(jiān)控維修施工方案
- 混凝土早強(qiáng)劑檢驗(yàn)報(bào)告(出廠)
評(píng)論
0/150
提交評(píng)論