版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本章內(nèi)容8.1自動(dòng)化測(cè)試概述8.2功能測(cè)試工具8.3性能測(cè)試工具8.4測(cè)試管理工具沈陽(yáng)師范大學(xué)軟件學(xué)院1本節(jié)內(nèi)容8.1自動(dòng)化測(cè)試概述8.1.1什么是自動(dòng)化測(cè)試8.1.2自動(dòng)化測(cè)試的過(guò)程8.1.3自動(dòng)化測(cè)試優(yōu)缺點(diǎn)8.1.4自動(dòng)化測(cè)試與手工測(cè)試沈陽(yáng)師范大學(xué)軟件學(xué)院28.1.1什么是自動(dòng)化測(cè)試8.1.1什么是自動(dòng)化測(cè)試自動(dòng)化測(cè)試就是希望能夠通過(guò)自動(dòng)化測(cè)試工具或其他手段,按照測(cè)試工程師的預(yù)定計(jì)劃自動(dòng)執(zhí)行測(cè)試,意在減輕手工測(cè)試的重復(fù)性勞動(dòng),從而達(dá)到提高軟件質(zhì)量的目的。自動(dòng)化測(cè)試是把以人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過(guò)程。自動(dòng)化測(cè)試可以分為基于白盒/灰盒測(cè)試的自動(dòng)化和基于黑盒測(cè)試的自動(dòng)化?;诎缀?灰盒測(cè)試的自動(dòng)化,主要是針對(duì)黑盒無(wú)法覆蓋的軟件功能部分,通過(guò)白盒的方式,利用編寫的程序進(jìn)行自動(dòng)化測(cè)試。沈陽(yáng)師范大學(xué)軟件學(xué)院38.1.2自動(dòng)化測(cè)試的過(guò)程8.1.2自動(dòng)化測(cè)試的過(guò)程實(shí)施自動(dòng)化測(cè)試之前需要對(duì)軟件開發(fā)過(guò)程進(jìn)行分析,以觀察其是否適合使用自動(dòng)化測(cè)試。通常需要同時(shí)滿足以下條件:軟件需求變動(dòng)不頻繁項(xiàng)目周期足夠長(zhǎng)自動(dòng)化測(cè)試腳本可重復(fù)使用沈陽(yáng)師范大學(xué)軟件學(xué)院48.1.2自動(dòng)化測(cè)試的過(guò)程8.1.2自動(dòng)化測(cè)試的過(guò)程沈陽(yáng)師范大學(xué)軟件學(xué)院5自動(dòng)化測(cè)試需求分析自動(dòng)化測(cè)試框架的搭建設(shè)計(jì)出自動(dòng)化測(cè)試用例設(shè)計(jì)與編寫自動(dòng)化腳本驗(yàn)證測(cè)試腳本的正確性運(yùn)行測(cè)試腳本8.1.3自動(dòng)化測(cè)試優(yōu)缺點(diǎn)8.1.3自動(dòng)化測(cè)試優(yōu)缺點(diǎn)大部分自動(dòng)化功能測(cè)試工具,尤其是商業(yè)的測(cè)試工具,都是基于GUI對(duì)象識(shí)別技術(shù)來(lái)設(shè)計(jì)的,基于GUI層面的測(cè)試需要與各種界面元素打交道,而且不同的編程語(yǔ)言和開發(fā)工具開發(fā)的應(yīng)用程序在界面的表現(xiàn)、事件的響應(yīng)上都略有不同,因此,設(shè)計(jì)基于GUI層面的自動(dòng)化功能測(cè)試工具會(huì)更為復(fù)雜些。沈陽(yáng)師范大學(xué)軟件學(xué)院68.1.3自動(dòng)化測(cè)試優(yōu)缺點(diǎn)自動(dòng)化測(cè)試優(yōu)點(diǎn)對(duì)程序的回歸測(cè)試更方便,可以測(cè)試到每一個(gè)特征可以運(yùn)行更多更繁瑣的測(cè)試,替代沉悶、耗時(shí)、低效率的手工作業(yè)??梢詧?zhí)行一些手工測(cè)試?yán)щy或不可能進(jìn)行的測(cè)試,比如壓力測(cè)試、并發(fā)測(cè)試、大數(shù)據(jù)量測(cè)試、崩潰性測(cè)試。更好地利用資源。測(cè)試具有一致性和可重復(fù)性增加軟件信任度沈陽(yáng)師范大學(xué)軟件學(xué)院78.1.3自動(dòng)化測(cè)試優(yōu)缺點(diǎn)自動(dòng)化測(cè)試的缺點(diǎn)不能取代手工測(cè)試手工測(cè)試比自動(dòng)測(cè)試發(fā)現(xiàn)的缺陷更多對(duì)測(cè)試質(zhì)量的依賴性極大測(cè)試自動(dòng)化不能提高有效性測(cè)試自動(dòng)化可能會(huì)制約軟件開發(fā)由于自動(dòng)測(cè)試比手動(dòng)測(cè)試更脆弱,所以維護(hù)會(huì)受到限制,從而制約軟件的開發(fā)工具本身并無(wú)想像力沈陽(yáng)師范大學(xué)軟件學(xué)院88.1.4自動(dòng)化測(cè)試與手工測(cè)試8.1.4自動(dòng)化測(cè)試與手工測(cè)試自動(dòng)化測(cè)試最大的用處是保證測(cè)試的質(zhì)量,而不是發(fā)現(xiàn)問(wèn)題,而手工測(cè)試是發(fā)現(xiàn)問(wèn)題。因?yàn)槲覀兠看蔚幕貧w測(cè)試,如果是手工測(cè)試的情況由于時(shí)間的關(guān)系并不能因?yàn)橐粋€(gè)模塊的bug,去測(cè)試其他的模塊,而自動(dòng)化測(cè)試工具的加入,可以保證所有模塊的基本功能,每次回歸用手工去發(fā)現(xiàn)驗(yàn)證問(wèn)題,用自動(dòng)化工具去保證整個(gè)軟件的基本功能正常運(yùn)行,自動(dòng)化的推廣是逐步的。沈陽(yáng)師范大學(xué)軟件學(xué)院98.1.4自動(dòng)化測(cè)試與手工測(cè)試8.1.4自動(dòng)化測(cè)試與手工測(cè)試測(cè)試工作無(wú)論是手工測(cè)試還是自動(dòng)化測(cè)試都是軟件質(zhì)量保證的一個(gè)途徑。兩者有效的結(jié)合是測(cè)試質(zhì)量保證的關(guān)鍵。沈陽(yáng)師范大學(xué)軟件學(xué)院108.1.4自動(dòng)化測(cè)試與手工測(cè)試問(wèn)題:何時(shí)運(yùn)用手工測(cè)試又何時(shí)運(yùn)用自動(dòng)化測(cè)試?對(duì)于一些基本的、邏輯性不強(qiáng)的操作,可以運(yùn)用自動(dòng)化測(cè)試工具。應(yīng)該說(shuō),現(xiàn)在在性能測(cè)試、壓力測(cè)試等方面,自動(dòng)化測(cè)試有其不可替代的優(yōu)勢(shì)。它可以用基本的腳本,實(shí)現(xiàn)大量的重復(fù)的操作。從而通過(guò)對(duì)測(cè)試結(jié)果的分析,得出結(jié)論,這樣不僅節(jié)省了大量的人力和物力,而且使測(cè)試的結(jié)果更準(zhǔn)確對(duì)于一些邏輯性很強(qiáng)的操作,如果自動(dòng)化測(cè)試不是很健全的話,不建議運(yùn)用。因?yàn)檫@須要比較復(fù)雜的腳本語(yǔ)言,不可防止的添加了由于測(cè)試腳本的缺陷所造成測(cè)試結(jié)果不正確的誤差。這時(shí)就須要手動(dòng)測(cè)試了。沈陽(yáng)師范大學(xué)軟件學(xué)院11本節(jié)內(nèi)容8.2單元測(cè)試工具JUNIT8.2.1JUnit簡(jiǎn)介8.2.2JUnit核心類/接口8.2.3JUnit單元測(cè)試的步驟8.2.4JUnit在Eclipse下的使用8.2.5JUnit最佳實(shí)踐沈陽(yáng)師范大學(xué)軟件學(xué)院128.2.1JUnit簡(jiǎn)介JUnit概述JUnit是Java社區(qū)中知名度最高的單元測(cè)試工具。由ErichGamma和KentBeck共同開發(fā)完成開源軟件支持語(yǔ)言Smalltalk,Java,C++,Perl等等支持的IDEJBuilder,VisualAge,Eclipse等沈陽(yáng)師范大學(xué)軟件學(xué)院138.2.1JUnit簡(jiǎn)介JUnit功能可供選擇的其他前端或者test-runner,用來(lái)顯示你的測(cè)試結(jié)果用單獨(dú)的classloader來(lái)運(yùn)行每個(gè)單元測(cè)試,以避免副作用標(biāo)準(zhǔn)的資源初始化和回收方式(setUp和tearDown)各種不同的assert方法,讓你檢查測(cè)試結(jié)果的操作變得更容易同流行的工具,比如Ant,以及流行IDE比如Eclipse,JBuilder整合沈陽(yáng)師范大學(xué)軟件學(xué)院148.2.1JUnit簡(jiǎn)介JUnit的好處開源工具,可以免費(fèi)使用,可以找到很多實(shí)際項(xiàng)目中的應(yīng)用示例。由于源碼開放,開發(fā)者還可以根據(jù)需要擴(kuò)展JUnit功能可以將測(cè)試代碼和產(chǎn)品代碼分開測(cè)試代碼編寫容易,功能強(qiáng)大自動(dòng)檢驗(yàn)結(jié)果并且提供立即的反饋易于集成到開發(fā)的構(gòu)建過(guò)程中,在軟件的構(gòu)建過(guò)程中完成對(duì)程序的單元測(cè)試測(cè)試包結(jié)構(gòu)便于組織和集成運(yùn)行,支持圖形交互模式和文本交互模式沈陽(yáng)師范大學(xué)軟件學(xué)院158.2.1JUnit簡(jiǎn)介JUnit安裝Java的JUnit可從網(wǎng)上免費(fèi)下載將下載的junit.zip解壓到你指定的目錄設(shè)置環(huán)境變量Variable:CLASSPATHVariableValue:.;InstallPath/junit.jar測(cè)試運(yùn)行(進(jìn)入命令提示符安裝目錄下)javajunit.swingui(textui,awtui).TestRunnerjunit.samples.AllTests沈陽(yáng)師范大學(xué)軟件學(xué)院168.2.1JUnit簡(jiǎn)介JUnit框架沈陽(yáng)師范大學(xué)軟件學(xué)院178.2.2JUnit核心類及接口8.2.2JUnit核心類及接口沈陽(yáng)師范大學(xué)軟件學(xué)院188.2.2JUnit核心類及接口8.2.2JUnit核心類及接口TestRunner(測(cè)試運(yùn)行器)沒(méi)有TestRunner接口,只有一個(gè)所有TestRunner都繼承的BaseTestRunner執(zhí)行測(cè)試并提供相關(guān)的結(jié)果的統(tǒng)計(jì)信息包含三個(gè)TestRunner類一個(gè)用于文本控制臺(tái)一個(gè)用于Swing還有一個(gè)AWT(遺產(chǎn)代碼,很少有人用)沈陽(yáng)師范大學(xué)軟件學(xué)院198.2.2JUnit核心類及接口8.2.2JUnit核心類及接口TestRunner(測(cè)試運(yùn)行器)實(shí)際運(yùn)用中的SwingtestrunnerGreenbar通過(guò)測(cè)試Redbar測(cè)試失敗沈陽(yáng)師范大學(xué)軟件學(xué)院208.2.2JUnit核心類及接口8.2.2JUnit核心類及接口TestCase(測(cè)試用例)把具有公共行為的測(cè)試歸入一組擴(kuò)展了JUnit的TestCase類的類。它以testXXX方法的形式包含一個(gè)或多個(gè)測(cè)試典型的TestCase包含兩個(gè)主要部件fixture單元測(cè)試沈陽(yáng)師范大學(xué)軟件學(xué)院218.2.2JUnit核心類及接口8.2.2JUnit核心類及接口TestCase(測(cè)試用例)Fixture管理資源,復(fù)用配置代碼運(yùn)行一個(gè)或多個(gè)測(cè)試所需的公用資源或者數(shù)據(jù)集合TestCase通過(guò)setUp和tearDown方法來(lái)創(chuàng)建和銷毀fixture典型應(yīng)用數(shù)據(jù)庫(kù)連接,生成輸入文件沈陽(yáng)師范大學(xué)軟件學(xué)院228.2.2JUnit核心類及接口8.2.2JUnit核心類及接口TestCase(測(cè)試用例)創(chuàng)建單元測(cè)試方法繼承自TestCase的一組assert方法封裝了最常見的測(cè)試任務(wù),這些assert方法可以極大地簡(jiǎn)化單元測(cè)試的編寫沈陽(yáng)師范大學(xué)軟件學(xué)院238.2.2JUnit核心類及接口Assert超類所提供的8個(gè)核心方法沈陽(yáng)師范大學(xué)軟件學(xué)院248.2.2JUnit核心類及接口8.2.2JUnit核心類及接口TestCase(測(cè)試用例)創(chuàng)建單元測(cè)試方法除了Assert提供的方法之外,TestCase還實(shí)現(xiàn)了10個(gè)它自己的方法coutTestCases,CreateResult,getName,run,runBare,setName,setup,teardown,toString沈陽(yáng)師范大學(xué)軟件學(xué)院258.2.2JUnit核心類及接口TestCase的10個(gè)自己的方法沈陽(yáng)師范大學(xué)軟件學(xué)院268.2.2JUnit核心類及接口8.2.2JUnit核心類及接口TestCase(測(cè)試用例)這18個(gè)方法共同為你提供了使用JUnit編寫測(cè)試的全部功能沈陽(yáng)師范大學(xué)軟件學(xué)院278.2.2JUnit核心類及接口8.2.2JUnit核心類及接口TestSuite(測(cè)試集合)testsuite是把多個(gè)相關(guān)測(cè)試歸入一組便捷方式若你沒(méi)有提供自己的TestSuite,testrunner會(huì)自動(dòng)創(chuàng)建一個(gè)缺省的TestSuite不能滿足時(shí),可能會(huì)想組合多個(gè)suite,把它們作為主suite的一部分,這些suite來(lái)自幾個(gè)不同的package沈陽(yáng)師范大學(xué)軟件學(xué)院288.2.2JUnit核心類及接口8.2.2JUnit核心類及接口TestSuite(測(cè)試集合)通常情況下TestAll類僅僅包括一個(gè)靜態(tài)的suite方法,這個(gè)方法會(huì)注冊(cè)應(yīng)用程序需要定期執(zhí)行的所有Test對(duì)象(包括TestCase對(duì)象和TestSuite對(duì)象),下面是一個(gè)典型的TestAll類沈陽(yáng)師范大學(xué)軟件學(xué)院298.2.2JUnit核心類及接口TestAll類importjunit.framework.Test;importjunit.framework.TestSuite;importjunitbook.sampling.TestDefaultController;publicclassTestAllextendTestCase{publicstaticTestsuite(){TestSuitesuite=newTestSuite("Alltestsfrompart1");suite.addTestSuite(TestCalculator3.class);suite.addTestSuite(TestDefaultController.class);returnsuite;}}沈陽(yáng)師范大學(xué)軟件學(xué)院308.2.2JUnit核心類及接口8.2.2JUnit核心類及接口TestResult所有的TestSuite都有一個(gè)對(duì)應(yīng)的TestResult負(fù)責(zé)收集TestCase的執(zhí)行結(jié)果。儲(chǔ)存了所有測(cè)試的詳細(xì)情況,是通過(guò)還是失敗。失敗則會(huì)創(chuàng)建一個(gè)TestFailure對(duì)象TestRunner使用TestResult來(lái)報(bào)告測(cè)試結(jié)果。沒(méi)有TestFailure對(duì)象進(jìn)度條就用綠色,否則進(jìn)度條用紅色并輸出失敗測(cè)試的數(shù)目沈陽(yáng)師范大學(xué)軟件學(xué)院318.2.2JUnit核心類及接口8.2.2JUnit核心類及接口TestResultJUnit區(qū)分失敗和錯(cuò)誤失?。菏强梢灶A(yù)期的,代碼的改變不時(shí)會(huì)造成斷言失敗,你只要修正代碼,斷言就可以再次通過(guò)錯(cuò)誤:比如常規(guī)程序拋出的異常,則是測(cè)試時(shí)不可預(yù)料的沈陽(yáng)師范大學(xué)軟件學(xué)院328.2.2JUnit核心類及接口8.2.2JUnit核心類及接口TestListener幫助對(duì)象訪問(wèn)TestResult并創(chuàng)建有用的報(bào)告。雖然Testlistener接口是JUnit框架的重要部分,但是你編寫自己的測(cè)試時(shí)不必實(shí)現(xiàn)這個(gè)接口。只有需要擴(kuò)展JUnit框架時(shí)才會(huì)需要實(shí)現(xiàn)這個(gè)接口沈陽(yáng)師范大學(xué)軟件學(xué)院338.2.3JUnit單元測(cè)試步驟8.2.3JUnit單元測(cè)試步驟JUnit成員三重唱,共同產(chǎn)生測(cè)試結(jié)果當(dāng)你需要編寫更多的TestCase的時(shí)候,你可以創(chuàng)建更多的TestCase對(duì)象。當(dāng)你需要一次執(zhí)行多個(gè)TestCase對(duì)象的時(shí)候,您可以創(chuàng)建一個(gè)TestSuite對(duì)象或使用缺省的TestSuite對(duì)象進(jìn)行封裝。為了執(zhí)行TestSuite,需要使用TestRunner。通過(guò)TestRunner的執(zhí)行生成TestResult對(duì)象沈陽(yáng)師范大學(xué)軟件學(xué)院348.2.3JUnit單元測(cè)試步驟8.2.3JUnit單元測(cè)試步驟重載setUp(),封裝測(cè)試環(huán)境初始化及測(cè)試數(shù)據(jù)準(zhǔn)備設(shè)計(jì)測(cè)試方法,以testXXX命名在測(cè)試方法中使用斷言方法如assertEquals(),assertTrue()等設(shè)計(jì)測(cè)試套件,或使用缺省的測(cè)試套件,調(diào)用TestRunner執(zhí)行測(cè)試腳本,生成測(cè)試結(jié)果重載tearDown()析構(gòu)測(cè)試環(huán)境,執(zhí)行收尾動(dòng)作沈陽(yáng)師范大學(xué)軟件學(xué)院358.2.3JUnit單元測(cè)試步驟例子(待測(cè)類)publicclassCalculatorTestextendsTestCase{ privateCalculatorcal; publicvoidsetUp(){ cal=newCalculator(); } publicvoidtearDown(){
}沈陽(yáng)師范大學(xué)軟件學(xué)院36測(cè)試類必須以TestCase為父類
每個(gè)測(cè)試方法執(zhí)行前都會(huì)調(diào)用該方法析構(gòu)測(cè)試環(huán)境,執(zhí)行收尾動(dòng)作生成對(duì)象8.2.3JUnit單元測(cè)試步驟例子(待測(cè)類)publicclassCalculator{publicintadd(inta,intb){ returna+b;}publicintminus(inta,intb){ returna-b;}publicintmultiply(inta,intb){ returna*b;}publicintdivide(inta,intb)throwsException{if(0==b){ thrownewException("除數(shù)不能為零!");}returna/b;}}沈陽(yáng)師范大學(xué)軟件學(xué)院378.2.3JUnit單元測(cè)試步驟例子(待測(cè)類)publicvoidtestAdd(){ intresult=cal.add(1,2);
Assert.assertEquals(3,result); } publicvoidtestMinus(){ intresult=cal.minus(1,2);
Assert.assertEquals(-1,result); } publicvoidtestMultiply(){ intresult=cal.multiply(2,3);
Assert.assertEquals(6,result); }沈陽(yáng)師范大學(xué)軟件學(xué)院38Junit3.8測(cè)試方法需滿足:1)Public的2)Void的3)無(wú)方法參數(shù)4)方法名稱必須以test開頭斷言調(diào)用該方法8.2.3JUnit單元測(cè)試步驟例子(待測(cè)類)
publicvoidtestDivide(){ intresult=0; try{ result=cal.divide(6,4); } catch(Exceptione){ e.printStackTrace();
Assert.fail(); }
Assert.assertEquals(1,result); }沈陽(yáng)師范大學(xué)軟件學(xué)院39期望該行代碼永遠(yuǎn)不會(huì)被執(zhí)行,斷言失敗,停止執(zhí)行立即失敗8.2.3JUnit單元測(cè)試步驟例子(待測(cè)類)publicvoidtestDivide2(){ Throwabletx=null; try{ cal.divide(4,0); Assert.fail(); } catch(Exceptionex){ tx=ex; } Assert.assertNotNull(tx); Assert.assertEquals(Exception.class,tx.getClass()); Assert.assertEquals("除數(shù)不能為零!",tx.getMessage()); }}沈陽(yáng)師范大學(xué)軟件學(xué)院40一個(gè)方法可以有多個(gè)測(cè)試方法,輸入的不同情況會(huì)有不同的testcase出現(xiàn)tx是Exception類型的一旦發(fā)生異常,則tx一定不為空期望該行代碼永遠(yuǎn)不會(huì)被執(zhí)行,斷言失敗,停止執(zhí)行立即失敗8.2.3JUnit單元測(cè)試步驟例子(待測(cè)類)publicvoidtestDivide2(){ Throwabletx=null; try{ cal.divide(4,0); Assert.fail(); } catch(Exceptionex){ tx=ex; } Assert.assertNotNull(tx); Assert.assertEquals(Exception.class,tx.getClass()); Assert.assertEquals("除數(shù)不能為零!",tx.getMessage()); }}沈陽(yáng)師范大學(xué)軟件學(xué)院41一個(gè)方法可以有多個(gè)測(cè)試方法,輸入的不同情況會(huì)有不同的testcase出現(xiàn)tx是Exception類型的一旦發(fā)生異常,則tx一定不為空期望該行代碼永遠(yuǎn)不會(huì)被執(zhí)行,斷言失敗,停止執(zhí)行立即失敗8.2.4在Eclipse下使用JUnit8.2.4在Eclipse下使用JUnit首先新建一個(gè)項(xiàng)目單元測(cè)試代碼把它和被測(cè)試代碼混在一起,這顯然會(huì)照成混亂建議您分別為單元測(cè)試代碼與被測(cè)試代碼創(chuàng)建單獨(dú)的目錄,并保證測(cè)試代碼和被測(cè)試代碼使用相同的包名。這樣既保證了代碼的分離,同時(shí)還保證了查找的方便遵照這條原則,我們?cè)陧?xiàng)目HelloJUnit根目錄下添加一個(gè)新目錄testsrc,并把它加入到項(xiàng)目源代碼目錄中沈陽(yáng)師范大學(xué)軟件學(xué)院428.2.4在Eclipse下使用JUnit8.2.4在Eclipse下使用JUnit給新建一個(gè)HelloJunit類添加一個(gè)abs()方法沈陽(yáng)師范大學(xué)軟件學(xué)院43packageexample;public
classHelloJunit{ public
static
intabs(intn){
returnn>=0?n:(-n);}8.2.4在Eclipse下使用JUnit8.2.4在Eclipse下使用JUnit在類上右擊,選擇“new”->“JUnitTestCase”新建一個(gè)HelloJUnitTest類,用來(lái)測(cè)試Hello類選擇剛剛建立的文件夾“Hello/testscr”,選中setUp()和tearDown(),然后點(diǎn)擊“Next”選擇要測(cè)試的方法,我們選中abs(int)方法點(diǎn)擊“finish”,跳出需要添加JUnit.jar包,點(diǎn)擊“OK”沈陽(yáng)師范大學(xué)軟件學(xué)院448.2.4在Eclipse下使用JUnit8.2.4在Eclipse下使用JUnitHelloJunitTest.java文件中輸入代碼沈陽(yáng)師范大學(xué)軟件學(xué)院458.2.4在Eclipse下使用JUnit8.2.4在Eclipse下使用JUnit在測(cè)試類上點(diǎn)擊右鍵,在彈出菜單中選擇“RunAs”->“JUnitTest”沈陽(yáng)師范大學(xué)軟件學(xué)院468.2.4在Eclipse下使用JUnit8.2.4在Eclipse下使用JUnit沈陽(yáng)師范大學(xué)軟件學(xué)院47表示測(cè)試通過(guò)表示測(cè)試失敗JUnit視圖工具欄移動(dòng)到下一個(gè)故障點(diǎn)移動(dòng)到上一個(gè)故障點(diǎn)僅顯示故障和錯(cuò)誤的測(cè)試方法鎖定滾動(dòng)重新運(yùn)行上次測(cè)試重新運(yùn)行上次測(cè)試——首先解決故障打開JUnit運(yùn)行歷史記錄停止運(yùn)行JUnit8.2.5JUnit最佳實(shí)踐8.2.5JUnit最佳實(shí)踐一次只測(cè)試一個(gè)對(duì)象單元測(cè)試獨(dú)立地檢查你創(chuàng)建的每個(gè)對(duì)象,這樣就可以在第一時(shí)間把它們隔離起來(lái)。如果一次測(cè)試多于一個(gè)對(duì)象,那么你就無(wú)法預(yù)測(cè)當(dāng)這些對(duì)象發(fā)生改變時(shí)它們會(huì)如何交互沈陽(yáng)師范大學(xué)軟件學(xué)院488.2.5JUnit最佳實(shí)踐8.2.5JUnit最佳實(shí)踐在assert調(diào)用中解釋失敗原因用到assert方法時(shí),使用第一個(gè)參數(shù)是String類型的那個(gè)簽名,這個(gè)參數(shù)讓你可以提供一個(gè)有意義的文本描述,在斷言失敗時(shí)JUnittestrunner會(huì)顯示這個(gè)描述沈陽(yáng)師范大學(xué)軟件學(xué)院498.2.5JUnit最佳實(shí)踐8.2.5JUnit最佳實(shí)踐選擇有意義的測(cè)試方法名遵守testXxx的命名模式,其中Xxx是待測(cè)方法名。若你需要為同一個(gè)方法增加其他的測(cè)試,那么可以改用testXxxYyy的命名模式,其中Yyy描述了測(cè)試的不同之處沈陽(yáng)師范大學(xué)軟件學(xué)院508.2.5JUnit最佳實(shí)踐8.2.5JUnit最佳實(shí)踐一個(gè)單元測(cè)試等于一個(gè)測(cè)試方法不要試圖把多個(gè)測(cè)試塞進(jìn)一個(gè)方法,這樣導(dǎo)致的結(jié)果就是測(cè)試方法變得更復(fù)雜,而且在測(cè)試方法中編寫的邏輯越多,測(cè)試失敗的可能性也就越大,需要調(diào)試的可能性也就越大沈陽(yáng)師范大學(xué)軟件學(xué)院518.2.5JUnit最佳實(shí)踐8.2.5JUnit最佳實(shí)踐同一個(gè)包,分離的目錄把所有測(cè)試和待測(cè)類都放在同一個(gè)包中,但使用平行目錄結(jié)構(gòu)沈陽(yáng)師范大學(xué)軟件學(xué)院528.2.5JUnit最佳實(shí)踐8.2.5JUnit最佳實(shí)踐同一個(gè)包,分離的目錄把所有測(cè)試和待測(cè)類都放在同一個(gè)包中,但使用平行目錄結(jié)構(gòu)沈陽(yáng)師范大學(xué)軟件學(xué)院53本節(jié)內(nèi)容8.2性能測(cè)試QTP8.2.1QTP介紹8.2.2QTP工作流程8.2.3
QTP安裝、配置8.2.4QTP基本使用方法8.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)沈陽(yáng)師范大學(xué)軟件學(xué)院548.2.1QTP介紹8.2.1QTP介紹
QuickTestProfessional(QTP)是新一代自動(dòng)化測(cè)試解決方案,采用了關(guān)鍵詞驅(qū)動(dòng)(Keyword-Driven)測(cè)試的理念,能完全簡(jiǎn)化測(cè)試的創(chuàng)建和維護(hù)工作。沈陽(yáng)師范大學(xué)軟件學(xué)院558.2.1QTP介紹8.2.1QTP介紹快捷:自動(dòng)執(zhí)行測(cè)試比手工執(zhí)行測(cè)試速度快可靠:可以準(zhǔn)確無(wú)誤的執(zhí)行既定的操作反復(fù)使用:可以按要求反復(fù)執(zhí)行某個(gè)功能的測(cè)試操作可編程的:可以通過(guò)編程來(lái)測(cè)試一些頁(yè)面上不可見的對(duì)象易理解的:以圖表和代碼兩種形式呈現(xiàn)測(cè)試操作容易理解可重用的:可單獨(dú)調(diào)用某項(xiàng)功能模塊進(jìn)行測(cè)試沈陽(yáng)師范大學(xué)軟件學(xué)院568.2.1QTP介紹QTP簡(jiǎn)介快捷:自動(dòng)執(zhí)行測(cè)試比手工執(zhí)行測(cè)試速度快可靠:可以準(zhǔn)確無(wú)誤的執(zhí)行既定的操作反復(fù)使用:可以按要求反復(fù)執(zhí)行某個(gè)功能的測(cè)試操作可編程的:可以通過(guò)編程來(lái)測(cè)試一些頁(yè)面上不可見的對(duì)象易理解的:以圖表和代碼兩種形式呈現(xiàn)測(cè)試操作容易理解可重用的:可單獨(dú)調(diào)用某項(xiàng)功能模塊進(jìn)行測(cè)試沈陽(yáng)師范大學(xué)軟件學(xué)院578.2.1QTP介紹QTP界面介紹TestPane包括KeywordView和ExpertView兩個(gè)視圖。圖中顯示的是關(guān)鍵詞視圖,錄制生成的腳本可以在這里很直觀的看到,可以在此視圖完成參數(shù)化的工作。ExpertView可以在在此視圖中直接修改生成的腳本,適合對(duì)VB腳本和QTP的函數(shù)比較熟悉的測(cè)試人員使用。DataTable,就是一個(gè)Excel,用于提供自動(dòng)化測(cè)試腳本所需的輸入數(shù)據(jù)或者校驗(yàn)數(shù)據(jù)。指向測(cè)試腳本文件目錄下的Default.xls文件。可以直接在Excel中編輯數(shù)據(jù)。ActiveScreen,錄制腳本時(shí)生成,記錄下Web頁(yè)面,可以在此完成大量的修改腳本工作,如添加檢查點(diǎn)等。沈陽(yáng)師范大學(xué)軟件學(xué)院588.2.1QTP介紹QTP是如何工作的QTP易于操作,即使是初級(jí)的測(cè)試人員也能在短時(shí)間內(nèi)對(duì)其駕輕就熟。您可以使用無(wú)需腳本的關(guān)鍵詞視圖來(lái)表現(xiàn)測(cè)試的每個(gè)步驟,僅由此就可創(chuàng)建一個(gè)測(cè)試。您還可以通過(guò)QTP所集成的錄制能力來(lái)捕獲測(cè)試步驟。該產(chǎn)品用簡(jiǎn)單的英語(yǔ)以文檔形式記錄每個(gè)步驟,并通過(guò)活動(dòng)屏幕將文檔與一個(gè)集成截屏相結(jié)合。傳統(tǒng)的腳本記錄工具所生產(chǎn)的腳本不易修改,與此不同的是,QTP的關(guān)鍵詞驅(qū)動(dòng)方式能讓您便捷地插入、修改、數(shù)據(jù)驅(qū)動(dòng)(data-drive)和移除測(cè)試步驟。QTP可以自動(dòng)引入檢查點(diǎn)來(lái)驗(yàn)證應(yīng)用的屬性和功能點(diǎn),比如確認(rèn)輸出量或檢查鏈接的有效性。在關(guān)鍵詞視圖的每一步驟中,活動(dòng)屏幕可顯示被測(cè)應(yīng)用在該步驟中的確切狀態(tài)。您還可以為任意對(duì)象加入幾種檢查點(diǎn),僅僅在活動(dòng)屏幕中點(diǎn)擊該對(duì)象,就可以驗(yàn)證該組件行為是否達(dá)到了期望值。沈陽(yáng)師范大學(xué)軟件學(xué)院598.2.1QTP介紹QTP是如何工作的然后您可以將測(cè)試數(shù)據(jù)輸入數(shù)據(jù)表(DataTable),它擁有和Excel同樣完善的功能特性,是一個(gè)集成的電子數(shù)據(jù)表格。您可以使用數(shù)據(jù)集并創(chuàng)建多種重復(fù)測(cè)試,無(wú)需編程就可以擴(kuò)展測(cè)試案例的覆蓋面。數(shù)據(jù)可以通過(guò)鍵入的方式輸入或從數(shù)據(jù)庫(kù)、數(shù)據(jù)表格或文本文檔中導(dǎo)出。高級(jí)測(cè)試人員可以在專家視圖(ExpertView)中查看和修改他們的測(cè)試,在專家視圖中顯示了由QTP自動(dòng)生成的基于行業(yè)標(biāo)準(zhǔn)的基本VBScript語(yǔ)言。在專家視圖中所做的任何改動(dòng)將自動(dòng)與關(guān)鍵詞視圖同步。沈陽(yáng)師范大學(xué)軟件學(xué)院608.2.1QTP介紹QTP是如何工作的一旦測(cè)試人員運(yùn)行了一個(gè)腳本,TestFusion報(bào)告將顯示測(cè)試運(yùn)行各方面的信息,包括:高水平的結(jié)果縱覽;一個(gè)可擴(kuò)展的測(cè)試腳本樹狀視圖(TreeView),其明確指出了應(yīng)用錯(cuò)誤的發(fā)生位置;被使用的測(cè)試數(shù)據(jù);每個(gè)步驟的應(yīng)用截屏,其中并標(biāo)明了所有的差異;以及通過(guò)或未通過(guò)每個(gè)檢查點(diǎn)的詳細(xì)解釋。您可以將TestFusion報(bào)告和QTP結(jié)合,從而與整個(gè)QA和開發(fā)小組分享這些報(bào)告。沈陽(yáng)師范大學(xué)軟件學(xué)院618.2.1QTP介紹QTP是如何工作的QTP處理一些應(yīng)用的新版本問(wèn)題。當(dāng)一個(gè)被測(cè)應(yīng)用發(fā)生變化時(shí),比如把一個(gè)”Login”按鈕被改名為”Signin”,您可以在共享對(duì)象容器(SharedObjectRepository)中做一次更新,接著此次更新將擴(kuò)展到所有涉及這個(gè)對(duì)象的腳本。您可以將測(cè)試腳本公布給QTP,使其它的QA小組成員也可以使用您的測(cè)試腳本,從而減少了重復(fù)工作。通過(guò)與BusinessProcessTesting的整合,在一個(gè)基于Web的系統(tǒng)中,QTP被用于實(shí)現(xiàn)自動(dòng)化操作,使非技術(shù)型用戶可以便捷地在一個(gè)完全的無(wú)腳本環(huán)境中也能夠建立起測(cè)試。QTP支持多種企業(yè)環(huán)境的功能測(cè)試,包括Windows、Web、.NET、Java/J2EE、SAP、Siebel、Oracle、PeopleSoft、VisualBasic、ActiveX、Mainframeterminalemulators和Webservices。沈陽(yáng)師范大學(xué)軟件學(xué)院628.2.2QTP工作流程8.2.2QTP工作流程沈陽(yáng)師范大學(xué)軟件學(xué)院63提交缺陷錄制測(cè)試腳本前的準(zhǔn)備錄制測(cè)試腳本加強(qiáng)測(cè)試腳本調(diào)試測(cè)試腳本執(zhí)行測(cè)試腳本分析測(cè)試結(jié)果8.2.2QTP工作流程錄制測(cè)試腳本前的準(zhǔn)備在錄制測(cè)試前,請(qǐng)確認(rèn)應(yīng)用程序和QuickTest已按測(cè)試要求設(shè)置。請(qǐng)確保應(yīng)用程序顯示要錄制的元素,例如,工具欄或特殊窗口窗格;還要確保應(yīng)用程序選項(xiàng)已按測(cè)試目標(biāo)設(shè)置。為了確保QuickTest可以正確地錄制和存儲(chǔ)信息,您還應(yīng)該查看“測(cè)試設(shè)置”對(duì)話框(“測(cè)試”>“設(shè)置”)和“選項(xiàng)”對(duì)話框(“工具”>“選項(xiàng)”)中的設(shè)置。例如,應(yīng)該確認(rèn)測(cè)試已設(shè)置為使用適當(dāng)?shù)膶?duì)象庫(kù)模式。沈陽(yáng)師范大學(xué)軟件學(xué)院648.2.2QTP工作流程錄制測(cè)試腳本瀏覽應(yīng)用程序或網(wǎng)站時(shí),QuickTest會(huì)將您執(zhí)行的每個(gè)步驟圖形化顯示為關(guān)鍵字視圖中的一行。步驟是任何引起應(yīng)用程序發(fā)生更改的用戶操作,例如單擊鏈接或圖像,或者向表單輸入數(shù)據(jù)。在錄制準(zhǔn)備工作做好后,進(jìn)行實(shí)際腳本的錄制,此時(shí)QTP完全按照測(cè)試人員的操作步驟進(jìn)行系統(tǒng)錄制。沈陽(yáng)師范大學(xué)軟件學(xué)院658.2.2QTP工作流程加強(qiáng)測(cè)試腳本通過(guò)在測(cè)試中插入檢查點(diǎn)可以搜索頁(yè)面、對(duì)象或文本字符串中的特定值,這有助于確定應(yīng)用程序或網(wǎng)站是否正常運(yùn)行。通過(guò)擴(kuò)大測(cè)試范圍(用參數(shù)替換固定值),可以檢查應(yīng)用程序如何使用多組數(shù)據(jù)來(lái)執(zhí)行相同的操作。通過(guò)添加邏輯和條件語(yǔ)句或循環(huán)語(yǔ)句,可以向測(cè)試添加復(fù)雜的檢查。沈陽(yáng)師范大學(xué)軟件學(xué)院668.2.2QTP工作流程調(diào)試測(cè)試腳本在優(yōu)化腳本后,需進(jìn)行多次的調(diào)試,確保經(jīng)過(guò)優(yōu)化的腳本能夠正確運(yùn)行,并能正確體現(xiàn)優(yōu)化的目的。沈陽(yáng)師范大學(xué)軟件學(xué)院678.2.2QTP工作流程
執(zhí)行測(cè)試腳本根據(jù)測(cè)試計(jì)劃以及在開展自動(dòng)化測(cè)試前所錄制,調(diào)試通過(guò)的腳本,進(jìn)行待測(cè)軟件的自動(dòng)化功能測(cè)試。運(yùn)行測(cè)試,檢查應(yīng)用程序或網(wǎng)站的行為。在運(yùn)行時(shí),QuickTest將打開應(yīng)用程序,或者連接到網(wǎng)站,并執(zhí)行測(cè)試中的每個(gè)步驟。沈陽(yáng)師范大學(xué)軟件學(xué)院688.2.2QTP工作流程分析測(cè)試結(jié)果分析前面的自動(dòng)化測(cè)試結(jié)果,檢查測(cè)試結(jié)果以便確定應(yīng)用程序中的缺陷。沈陽(yáng)師范大學(xué)軟件學(xué)院698.2.2QTP工作流程
提交缺陷如果已安裝了QualityCenter,則可以將發(fā)現(xiàn)的缺陷報(bào)告給數(shù)據(jù)庫(kù)。QualityCenter是MercuryInteractive的軟件測(cè)試管理工具?;蛘咧苯釉贐UG管理工具中提交缺陷。沈陽(yáng)師范大學(xué)軟件學(xué)院708.2.2QTP工作流程
提交缺陷如果已安裝了QualityCenter,則可以將發(fā)現(xiàn)的缺陷報(bào)告給數(shù)據(jù)庫(kù)。QualityCenter是MercuryInteractive的軟件測(cè)試管理工具?;蛘咧苯釉贐UG管理工具中提交缺陷。沈陽(yáng)師范大學(xué)軟件學(xué)院718.2.3QTP安裝8.2.3QTP安裝安裝要求CPU推薦P4以上內(nèi)存推薦1GB以上顯卡推薦8MB以上支持環(huán)境Win2000xpServer2003vistaIE6.07.0FireFox1.52.0Netscape8.1.2加載插件JAVAOracle.NETWebServices沈陽(yáng)師范大學(xué)軟件學(xué)院728.2.3QTP安裝8.2.3QTP安裝沈陽(yáng)師范大學(xué)軟件學(xué)院738.2.3QTP安裝8.2.3QTP安裝沈陽(yáng)師范大學(xué)軟件學(xué)院748.2.3QTP安裝8.2.3QTP安裝沈陽(yáng)師范大學(xué)軟件學(xué)院758.2.4QTP基本使用方法
關(guān)鍵字視圖編輯測(cè)試腳本沈陽(yáng)師范大學(xué)軟件學(xué)院768.2.4QTP基本使用方法關(guān)鍵字視圖為測(cè)試步驟添加注釋沈陽(yáng)師范大學(xué)軟件學(xué)院778.2.4QTP基本使用方法關(guān)鍵字視圖添加測(cè)試信息輸出InsertStep|Report輸出測(cè)試信息到測(cè)試報(bào)告中沈陽(yáng)師范大學(xué)軟件學(xué)院788.2.4QTP基本使用方法插入檢查點(diǎn)(Checkpoint)InsertStandardCheckpoint檢查測(cè)試內(nèi)容是否為所要的沈陽(yáng)師范大學(xué)軟件學(xué)院798.2.4QTP基本使用方法關(guān)鍵字視圖中插入新的測(cè)試步驟InsertStep|StepGeneratorCategory(類型)TestObjects:測(cè)試對(duì)象,被測(cè)試應(yīng)用程序界面上的控制元素UtilityObjects:工具對(duì)象,QTP內(nèi)建的各種用于編寫測(cè)試腳本、輔助建立測(cè)試邏輯的工具類對(duì)象Functions:各種函數(shù),包括庫(kù)函數(shù)、內(nèi)建函數(shù)、本地腳本函數(shù)添加一個(gè)Help對(duì)象沈陽(yáng)師范大學(xué)軟件學(xué)院808.2.4QTP基本使用方法ObjectSpy的使用Tools|ObjectSpy觀察測(cè)試對(duì)象屬性,了解測(cè)試程序空間行為沈陽(yáng)師范大學(xué)軟件學(xué)院818.2.4QTP基本使用方法對(duì)象庫(kù)管理Resources|ObjectRepository把測(cè)試對(duì)象添加到對(duì)象庫(kù)中Objects|AddObjecttoLocal導(dǎo)出對(duì)象庫(kù)文件File|ExportLocalObject在測(cè)試腳本中訪問(wèn)對(duì)象庫(kù)的測(cè)試對(duì)象下拉列表中選擇Objectfromrepository沈陽(yáng)師范大學(xué)軟件學(xué)院828.2.4QTP基本使用方法添加新的ActionInsert|CalltoNewAction沈陽(yáng)師范大學(xué)軟件學(xué)院838.2.4QTP基本使用方法關(guān)聯(lián)Action的對(duì)象庫(kù)解決新添加Action不能直接使用前一個(gè)Action問(wèn)題Resources|AssociateRepositorieAction_help關(guān)聯(lián)Action沈陽(yáng)師范大學(xué)軟件學(xué)院848.2.4QTP基本使用方法編輯新的ActionDialog("Login").WinButton("Help").Click'打開幫助界面Dialog("Login").Dialog("FlightReservations").ActivateDialog("Login").Dialog("FlightReservations").WinButton("確定").Click'單擊確定按鈕關(guān)閉幫助界面沈陽(yáng)師范大學(xué)軟件學(xué)院858.2.4QTP基本使用方法0運(yùn)行和調(diào)試測(cè)試腳本語(yǔ)法檢查Tools|CheckSyntaxView|Information中顯示使用斷點(diǎn)快捷鍵F9單步調(diào)試Debug|StepOver或者F10Debug|StepInto或者F11沈陽(yáng)師范大學(xué)軟件學(xué)院868.2.4QTP基本使用方法運(yùn)行整個(gè)測(cè)試Tools|Options運(yùn)行部分測(cè)試——兩種方法選中需要運(yùn)行的Action
Automation|RunCurrentAction鼠標(biāo)右鍵RunFromStep或RuntoStep分析測(cè)試結(jié)果檢查測(cè)試腳本是否正確完成測(cè)試沈陽(yáng)師范大學(xué)軟件學(xué)院878.2.4QTP基本使用方法運(yùn)行整個(gè)測(cè)試Tools|Options運(yùn)行部分測(cè)試——兩種方法選中需要運(yùn)行的Action
Automation|RunCurrentAction鼠標(biāo)右鍵RunFromStep或RuntoStep沈陽(yáng)師范大學(xué)軟件學(xué)院888.2.4QTP基本使用方法查看概要測(cè)試運(yùn)行結(jié)果測(cè)試腳本運(yùn)行結(jié)束后,在result中查看運(yùn)行結(jié)果查看檢查點(diǎn)查看測(cè)試過(guò)程截屏沈陽(yáng)師范大學(xué)軟件學(xué)院898.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)關(guān)鍵字驅(qū)動(dòng)實(shí)現(xiàn)自動(dòng)化測(cè)試階段劃分計(jì)劃階段分析應(yīng)用程序,決定哪些對(duì)象和操作會(huì)被測(cè)試過(guò)程使用實(shí)現(xiàn)階段創(chuàng)建對(duì)象庫(kù),對(duì)象庫(kù)中每一個(gè)對(duì)象都能唯一對(duì)應(yīng)被測(cè)試程序上界面對(duì)象沈陽(yáng)師范大學(xué)軟件學(xué)院908.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)什么時(shí)候使用關(guān)鍵字驅(qū)動(dòng)測(cè)試方法有利于測(cè)試的創(chuàng)建和維護(hù)保持結(jié)構(gòu)清晰增強(qiáng)測(cè)試腳本可讀性有利于沒(méi)有編碼基礎(chǔ)的人員缺乏強(qiáng)大靈活的編碼支持沈陽(yáng)師范大學(xué)軟件學(xué)院918.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)可視化編輯測(cè)試步驟編輯對(duì)象庫(kù)收集關(guān)于測(cè)試對(duì)象的信息,存儲(chǔ)在對(duì)象庫(kù)中選擇測(cè)試對(duì)象選擇下拉列表中的ObjectFromRepository選擇測(cè)試對(duì)象相應(yīng)操作對(duì)象庫(kù)中選取對(duì)象后,Operation中選擇相應(yīng)操作設(shè)置測(cè)試邏輯InsertStep|LoopStatement|For…Next沈陽(yáng)師范大學(xué)軟件學(xué)院928.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)檢查點(diǎn)的使用標(biāo)準(zhǔn)檢查點(diǎn)(StandardCheckpoint)圖像檢查點(diǎn)(ImageCheckpoint)位圖檢查點(diǎn)(BitmapCheckpoint)表格檢查點(diǎn)(TableCheckpoint)文本檢查點(diǎn)(TextCheckpoint)文本區(qū)域檢查點(diǎn)(TextAreaCheckpoint)可訪問(wèn)性檢查點(diǎn)(AccessibilityCheckpoint)頁(yè)面檢查點(diǎn)(PageCheckpoint)數(shù)據(jù)庫(kù)檢查點(diǎn)(DataBaseCheckpoint)XML檢查點(diǎn)(XMLCheckpoint)沈陽(yáng)師范大學(xué)軟件學(xué)院938.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)檢查點(diǎn)的使用添加標(biāo)準(zhǔn)檢查點(diǎn)檢查測(cè)試對(duì)象屬性InsertStandardCheckpoint添加圖像檢查點(diǎn)檢查Web頁(yè)面圖像屬性InsertStandardCheckpoint添加位圖檢查點(diǎn)將某個(gè)區(qū)域作為位圖來(lái)檢查Insert|Checkpoint|BitmapCheckpoint沈陽(yáng)師范大學(xué)軟件學(xué)院948.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)檢查點(diǎn)的使用添加表格檢查點(diǎn)檢查表格數(shù)據(jù)Insert|Checkpoint|StandardCheckpoint添加文本檢查點(diǎn)檢查特定文本是否在界面上顯示Insert|Checkpoint|TextCheckpoint添加文本區(qū)域檢查點(diǎn)僅支持標(biāo)準(zhǔn)Windows\VB\ActiveX及插件支持控件文本檢查Insert|Checkpoint|TextAreaCheckpoint沈陽(yáng)師范大學(xué)軟件學(xué)院958.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)檢查點(diǎn)的使用添加可訪問(wèn)性檢查點(diǎn)檢查指定網(wǎng)頁(yè)是否滿足Section508標(biāo)準(zhǔn)所指定的可訪問(wèn)性標(biāo)準(zhǔn)Insert|Checkpoint|AccessibilityCheckpoint添加頁(yè)面檢查點(diǎn)檢查頁(yè)面某些統(tǒng)計(jì)信息Insert|Checkpoint|Standard
Checkpoint添加可訪問(wèn)性檢查點(diǎn)檢查指定網(wǎng)頁(yè)是否滿足Section508標(biāo)準(zhǔn)所指定的可訪問(wèn)性標(biāo)準(zhǔn)Insert|Checkpoint|AccessibilityCheckpoint沈陽(yáng)師范大學(xué)軟件學(xué)院968.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)檢查點(diǎn)的使用添加頁(yè)面檢查點(diǎn)檢查頁(yè)面某些統(tǒng)計(jì)信息Insert|Checkpoint|Standard
Checkpoint添加數(shù)據(jù)庫(kù)檢查點(diǎn)檢查應(yīng)用程序所連接數(shù)據(jù)庫(kù)數(shù)據(jù)內(nèi)容Insert|Checkpoint|Database
Checkpoint添加X(jué)ML檢查點(diǎn)檢查XML數(shù)據(jù)文件或Web應(yīng)用中XML文檔Insert|Checkpoint|XML
Checkpoint沈陽(yáng)師范大學(xué)軟件學(xué)院978.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)
數(shù)據(jù)驅(qū)動(dòng)測(cè)試方法什么時(shí)候使用驅(qū)動(dòng)測(cè)試方法提高測(cè)試腳本覆蓋率增強(qiáng)測(cè)試腳本健壯性數(shù)據(jù)驅(qū)動(dòng)測(cè)試的一般步驟參數(shù)化測(cè)試步驟數(shù)據(jù)編輯數(shù)據(jù)表格設(shè)置迭代次數(shù)沈陽(yáng)師范大學(xué)軟件學(xué)院988.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)
參數(shù)化測(cè)試通過(guò)參數(shù)化測(cè)試來(lái)提高測(cè)試的靈活性數(shù)據(jù)表參數(shù)化環(huán)境變量參數(shù)化隨機(jī)數(shù)參數(shù)化參數(shù)化測(cè)試步驟選中Value列單元格單擊“<#>”按鈕修改DataTable中參數(shù)沈陽(yáng)師范大學(xué)軟件學(xué)院998.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)
參數(shù)化測(cè)試使用隨機(jī)數(shù)來(lái)進(jìn)行參數(shù)化對(duì)“選擇航班”這個(gè)測(cè)試步驟參數(shù)化通過(guò)訪問(wèn)GetItemsCount屬性,獲取航班列表行數(shù)使用RandomNumber隨機(jī)選取其中一項(xiàng)通過(guò)Select方法選擇航班參數(shù)化檢查點(diǎn)單擊檢查點(diǎn)所在測(cè)試步驟的value中的單元格在Configurevalue中選擇“Parameter”沈陽(yáng)師范大學(xué)軟件學(xué)院1008.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)Action測(cè)試輸入的參數(shù)化1、編輯Action的屬性保存Flight程序中的登錄部分選中ActionActionProperties輸入信息2、添加Action的輸入?yún)?shù)參數(shù)化Flight程序中的登錄部分ActionPropertiesParameters單擊+按鈕關(guān)鍵字視圖,點(diǎn)value列的<#>Test/actionparameter沈陽(yáng)師范大學(xué)軟件學(xué)院1018.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)Action測(cè)試輸入的參數(shù)化3、調(diào)用Action調(diào)用Flight中的登錄部分Insert|CalltoExistingAction插入ActionActionCallProperties點(diǎn)擊Value列的<#>輸入?yún)?shù)值沈陽(yáng)師范大學(xué)軟件學(xué)院1028.2.5QTP關(guān)鍵字和數(shù)據(jù)驅(qū)動(dòng)使用環(huán)境變量的參數(shù)化定義和設(shè)置環(huán)境變量File|Settings選中Environment在Variabletype中選擇User-defined單擊旁邊的+定義環(huán)境變量名和輸入值在測(cè)試步驟中綁定環(huán)境變量值定義好環(huán)境變量后,定位到value中<#>Environment在Name中選中之前定義的環(huán)境變量導(dǎo)出環(huán)境變量到XML文件File|SettingsEnvironmentExport導(dǎo)入外部環(huán)境變量文件沈陽(yáng)師范大學(xué)軟件學(xué)院1038.2.6VBScript腳本VBScript數(shù)據(jù)類型沈陽(yáng)師范大學(xué)軟件學(xué)院104子類型描述Empty未初始化的Variant。對(duì)于數(shù)值變量,值為0;對(duì)于字符串變量,值為零長(zhǎng)度字符串("")。Null不包含任何有效數(shù)據(jù)的Variant。Boolean包含True或False。Byte包含0到255之間的整數(shù)。Integer包含-32,768到32,767之間的整數(shù)。Currency貨幣:-922,337,203,685,477.5808到922,337,203,685,477.5807。Long包含-2,147,483,648到2,147,483,647之間的整數(shù)。Single包含單精度浮點(diǎn)數(shù),負(fù)數(shù)范圍從-3.402823E38到-1.401298E-45,正數(shù)范圍從1.401298E-45到3.402823E38。Double包含雙精度浮點(diǎn)數(shù),負(fù)數(shù)范圍從-1.79769313486232E308到-4.94065645841247E-324,正數(shù)范圍從4.94065645841247E-324到1.79769313486232E308。Date(Time)包含表示日期的數(shù)字,日期范圍從公元100年1月1日到公元9999年12月31日。String包含變長(zhǎng)字符串,最大長(zhǎng)度可為20億個(gè)字符。Object包含對(duì)象。Error包含錯(cuò)誤號(hào)。8.2.6VBScript腳本VBScript變量聲明變量聲明變量的一種方式是使用Dim語(yǔ)句、Public語(yǔ)句和Private語(yǔ)句在腳本中顯式聲明變量。例如:Dima;另一種方式是通過(guò)直接在腳本中使用變量名這一簡(jiǎn)單方式隱式聲明變量因此,最好使用OptionExplicit語(yǔ)句顯式聲明所有變量,并將其作為腳本的第一條語(yǔ)句。命名規(guī)則第一個(gè)字符必須是字母。不能包含嵌入的句點(diǎn)。長(zhǎng)度不能超過(guò)255個(gè)字符。在被聲明的作用域內(nèi)必須唯一。給變量賦值創(chuàng)建如下形式的表達(dá)式給變量賦值:變量在表達(dá)式左邊,要賦的值在表達(dá)式右邊。例如:B=200沈陽(yáng)師范大學(xué)軟件學(xué)院1058.2.6VBScript腳本VBScript運(yùn)算符VBScript運(yùn)算符,包括算術(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符算術(shù)運(yùn)算符包括+,-,*,/等算術(shù)運(yùn)算符比較運(yùn)算符包括=,>,<,<>(不等于)等比較運(yùn)算符邏輯運(yùn)算符包括邏輯非Not邏輯與And邏輯或Or等邏輯運(yùn)算符沈陽(yáng)師范大學(xué)軟件學(xué)院1068.2.6VBScript腳本VBScript控制語(yǔ)句If...Then...Else語(yǔ)句SelectCase語(yǔ)句Do...Loop:當(dāng)(或直到)條件為True時(shí)循環(huán)。While...Wend:當(dāng)條件為True時(shí)循環(huán)。For...Next:指定循環(huán)次數(shù),使用計(jì)數(shù)器重復(fù)運(yùn)行語(yǔ)句。ForEach...Next:對(duì)于集合中的每項(xiàng)或數(shù)組中的每個(gè)元素,重復(fù)執(zhí)行一組語(yǔ)句。沈陽(yáng)師范大學(xué)軟件學(xué)院1078.2.6VBScript腳本VBScript過(guò)程VBScript中,過(guò)程被分為兩類:Sub過(guò)程和Function過(guò)程。Sub過(guò)程:執(zhí)行操作但不返回值Function過(guò)程:Function過(guò)程通過(guò)函數(shù)名返回一個(gè)值調(diào)用函數(shù)的規(guī)則:帶有Call函數(shù)后面要加括號(hào),不帶Call函數(shù)后面不要加括號(hào)(這樣調(diào)用函數(shù)是絕對(duì)沒(méi)有錯(cuò)誤的)在無(wú)參數(shù)Call可以沒(méi)有括號(hào),在無(wú)參數(shù)或者1個(gè)參數(shù),不帶Call函數(shù)后面可以加括號(hào),可以不加括號(hào)。在包括2個(gè)參數(shù)或者2個(gè)以上,不帶Call函數(shù)后面不能加括號(hào)如果把函數(shù)賦值給一個(gè)變量,一般函數(shù)要帶著括號(hào)。FunctionfunTest2(arg1,arg2)funTest2="參數(shù)化2個(gè)"&arg1&"和"&arg2EndFunctionCallfunTest2(1,2)funTest21,2fun=funTest2(1,2)沈陽(yáng)師范大學(xué)軟件學(xué)院1088.2.6VBScript腳本VBScript過(guò)程VBScript中,過(guò)程被分為兩類:Sub過(guò)程和Function過(guò)程。Sub過(guò)程:執(zhí)行操作但不返回值Function過(guò)程:Function過(guò)程通過(guò)函數(shù)名返回一個(gè)值調(diào)用函數(shù)的規(guī)則:帶有Call函數(shù)后面要加括號(hào),不帶Call函數(shù)后面不要加括號(hào)(這樣調(diào)用函數(shù)是絕對(duì)沒(méi)有錯(cuò)誤的)在無(wú)參數(shù)Call可以沒(méi)有括號(hào),在無(wú)參數(shù)或者1個(gè)參數(shù),不帶Call函數(shù)后面可以加括號(hào),可以不加括號(hào)。在包括2個(gè)參數(shù)或者2個(gè)以上,不帶Call函數(shù)后面不能加括號(hào)如果把函數(shù)賦值給一個(gè)變量,一般函數(shù)要帶著括號(hào)。FunctionfunTest2(arg1,arg2)funTest2="參數(shù)化2個(gè)"&arg1&"和"&arg2EndFunctionCallfunTest2(1,2)funTest21,2fun=funTest2(1,2)沈陽(yáng)師范大學(xué)軟件學(xué)院109任務(wù)1:任務(wù)1:在Mercury
Tours網(wǎng)站注冊(cè)一個(gè)新用戶,按照屏幕說(shuō)明瀏覽網(wǎng)站并預(yù)訂航班,最后注銷登錄,結(jié)束會(huì)話。沈陽(yáng)師范大學(xué)軟件學(xué)院110任務(wù)1:任務(wù)1:在Mercury
Tours網(wǎng)站注冊(cè)一個(gè)新用戶,按照屏幕說(shuō)明瀏覽網(wǎng)站并預(yù)訂航班,最后注銷登錄,結(jié)束會(huì)話。沈陽(yáng)師范大學(xué)軟件學(xué)院111本節(jié)內(nèi)容8.3測(cè)試管理工具LoadRunner8.3.1性能測(cè)試相關(guān)術(shù)語(yǔ)8.3.2LoadRunner概述8.3.3
Vuser發(fā)生器8.3.4Controller控制器8.3.5Analysis分析器8.3.6腳本編寫與結(jié)果分析沈陽(yáng)師范大學(xué)軟件
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國(guó)地產(chǎn)綠化商業(yè)計(jì)劃書
- 2024-2030年中國(guó)咸菜市場(chǎng)發(fā)展前景調(diào)研與投資策略分析報(bào)告
- 2024-2030年中國(guó)印花熱熔膠融資商業(yè)計(jì)劃書
- 2024年體育用品銷售租賃合同
- 滿洲里俄語(yǔ)職業(yè)學(xué)院《STEM課程教學(xué)與微課制作》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年兒童個(gè)性化教育服務(wù)聘請(qǐng)教師勞動(dòng)合同模板3篇
- 2024年房屋中介居間協(xié)議2篇
- 漯河醫(yī)學(xué)高等??茖W(xué)?!懂嫹◣缀闻c土建制圖》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年銅川貨運(yùn)從業(yè)資格證模擬考試下載什么軟件
- 2024年標(biāo)準(zhǔn)格式個(gè)人等額本息貸款合同版B版
- 成長(zhǎng)賽道-模板參考
- 室外晾衣棚施工方案
- 兒童健康管理服務(wù)總結(jié)分析報(bào)告
- 殯葬行業(yè)的風(fēng)險(xiǎn)分析
- 下肢靜脈血栓個(gè)案查房
- 通信工程冬季施工安全培訓(xùn)
- 痛風(fēng)病科普講座課件
- 工作崗位風(fēng)險(xiǎn)評(píng)估報(bào)告
- 護(hù)理查房肺部感染心衰
- 拒執(zhí)罪申請(qǐng)書范本
- 《阿米巴經(jīng)營(yíng)》讀書分享
評(píng)論
0/150
提交評(píng)論