軟件測試第七章軟件測試自動化ppt課件_第1頁
軟件測試第七章軟件測試自動化ppt課件_第2頁
軟件測試第七章軟件測試自動化ppt課件_第3頁
軟件測試第七章軟件測試自動化ppt課件_第4頁
軟件測試第七章軟件測試自動化ppt課件_第5頁
已閱讀5頁,還剩74頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、軟件測試技術(shù)東北大學(xué)軟件學(xué)院吳辰鈮.第七章 軟件測試自動化主要內(nèi)容7.1 軟件測試自動化根底7.2 何時進(jìn)展自動化測試7.3 如何進(jìn)展測試自動化開發(fā)7.4 對測試自動化的不正確期望7.5 JUnit的運用7.6 Winrunner的運用.7.1 軟件測試自動化根底什么是軟件測試自動化?只需購置一種流行的測試執(zhí)行工具,記錄手工測試過程,然后在需求時回放錄制的過程。沒這么簡單.7.1 軟件測試自動化根底軟件測試自動化的定義: 各種測試活動的管理與實施,包括測試腳本的開發(fā)與執(zhí)行,以便運用一種或多種自動化測試工具來驗證需求。.7.1 軟件測試自動化根底為什么要進(jìn)展自動化測試?手工測試的局限性經(jīng)過手工測

2、試無法做到覆蓋一切代碼途徑。許多與時序、死鎖、資源沖突、多線程等有關(guān)的錯誤經(jīng)過手工測試很難捕捉到。在系統(tǒng)負(fù)載、性能測試時,需求模擬大量數(shù)據(jù)、或大量并發(fā)用戶等各種運用場所時,也很難經(jīng)過手工測試來進(jìn)展。在進(jìn)展系統(tǒng)可靠性測試時,需求模擬系統(tǒng)運轉(zhuǎn)十年、幾十年,以驗證系統(tǒng)能否穩(wěn)定運轉(zhuǎn),也是手工測試無法模擬的。 假設(shè)有大量幾千的測試用例,需求在短時間內(nèi)完成,手工測試又怎樣辦呢?測試可以發(fā)現(xiàn)錯誤,并不能闡明程序的正確性。 .7.1 軟件測試自動化根底為什么要進(jìn)展自動化測試? 機(jī)器替代人可以更頻繁的測試每一次做同樣的測試 做更多的測試減少了煩悶的、反復(fù)性的任務(wù)??捎脮r間來檢查結(jié)果。 更多的時間用來做手工測試和

3、尋覓Bugs。.7.1 軟件測試自動化根底為什么要進(jìn)展自動化測試?自動化可進(jìn)展一些高難度的測試性能, 壓力, 配置 一致性性能測試, 回歸測試 可反復(fù)運用穩(wěn)定性增進(jìn)測試人員與開發(fā)人員之間的協(xié)作同伴關(guān)系.7.1 軟件測試自動化根底什么情況下適宜運用自動化測試工具?需求反復(fù)進(jìn)展的任務(wù)。負(fù)載壓力測試。大量的測試人員和開發(fā)人員協(xié)作完成一個產(chǎn)品。需求進(jìn)展測試系統(tǒng)后臺或者內(nèi)部的性能特性,進(jìn)而進(jìn)展缺點定位和性能調(diào)優(yōu)。.7.1 軟件測試自動化根底自動化測試的局限性:定制型工程。周期很短的工程。業(yè)務(wù)規(guī)那么復(fù)雜的對象。人體感觀與易用性測試。不穩(wěn)定的軟件。涉及物理交互。.7.1 軟件測試自動化根底假設(shè)一個功能測試用

4、例,手工運轉(zhuǎn)需求10分鐘,而為此測試用例開發(fā)腳本需求4個小時,即240分鐘,那么意味著這個測試腳本要被運轉(zhuǎn)24次收回本錢,假設(shè)再加上測試腳本的維護(hù)任務(wù)量10,需求反復(fù)運轉(zhuǎn)4050次,才收回本錢。假設(shè)在產(chǎn)品的一個版本中要進(jìn)展23輪測試普通是需求的,這個產(chǎn)品需求發(fā)布1520個版本才收回本錢。所以業(yè)界常說,產(chǎn)品發(fā)布7個版本才收回本錢。 .7.1 軟件測試自動化根底結(jié)構(gòu)成本收益凈收益非自動化000錄制和回放8.3112.7數(shù)據(jù)池的數(shù)據(jù)驅(qū)動結(jié)構(gòu)8.4189.6框架結(jié)構(gòu)9.8155.2側(cè)重于應(yīng)用和數(shù)據(jù)池的框架/數(shù)據(jù)驅(qū)動結(jié)構(gòu)11.6197.4測試自動化本錢/收益分析.7.1 軟件測試自動化根底手工測試與自動

5、化測試的特點對比:在系統(tǒng)功能邏輯測試、驗收測試、適用性測試、涉及物理交互性測試時,多采用黑盒測試的手工測試方法; 單元測試、集成測試、系統(tǒng)負(fù)載或性能、穩(wěn)定性、可靠性測試等比較適宜采用TA; 對那種不穩(wěn)定軟件的測試、開發(fā)周期很短的軟件、一次性的軟件等不適宜測試自動化 工具本身并沒有想象力和靈敏性,根據(jù)閱歷報道,自動測試只能發(fā)現(xiàn)15%的缺陷,而手工測試可以發(fā)現(xiàn)85%的缺陷;TA工具在進(jìn)展功能測試時,其準(zhǔn)確的含義是回歸測試工具,由于工具不能發(fā)現(xiàn)更多的新問題,但可以保證對曾經(jīng)測試過部分進(jìn)展測試的準(zhǔn)確性和客觀性 .7.1 軟件測試自動化根底什么測試類型可以自動化: 單元測試 集成測試 系統(tǒng)測試 性能測試

6、 壓力測試 平安測試 回歸測試穩(wěn)定性測試.7.1 軟件測試自動化根底測試自動化的根本構(gòu)造機(jī)房辦公室文件效力器SQL ServerWeb效力器 控制程序拷貝測試文件拷貝測試結(jié)果分派任務(wù)分派任務(wù)查詢結(jié)果Build系統(tǒng)編譯尋覓任務(wù)工程更新顯示Dev Build, Test Build.7.1 軟件測試自動化根底自動化測試的原理和方法代碼分析:類似于高級編譯系統(tǒng),在工具中定義類/對象/函數(shù)/變量等定義規(guī)那么、語法規(guī)那么等,在分析時對代碼進(jìn)展語法掃描,找出不符合編碼規(guī)范的地方。代碼分析是一種白盒測試的自動化方法。 捕獲和回放:捕獲和回放那么是一種黑盒測試的自動化方法。.7.1 軟件測試自動化根底自動化測

7、試的原理和方法腳本技術(shù):線性腳本,是錄制手工執(zhí)行的測試用例得到的腳本,這種腳本包含一切的擊鍵、挪動、輸入數(shù)據(jù)等,一切錄制的測試用例都可以得到完好的回放。 構(gòu)造化腳本,類似于構(gòu)造化程序設(shè)計,具有各種邏輯構(gòu)造、函數(shù)調(diào)用功能。構(gòu)造化腳本易于維護(hù)。 共享腳本,是指某個腳本可以被多個測試用例運用。 數(shù)據(jù)驅(qū)動腳本,將測試輸入存儲在獨立的數(shù)據(jù)文件中,而不是存儲在腳本中。 關(guān)鍵字驅(qū)動腳本,是數(shù)據(jù)驅(qū)動腳本的邏輯擴(kuò)張.7.1 軟件測試自動化根底自動化測試的原理和方法自動比較:靜態(tài)比較和動態(tài)比較簡單比較和復(fù)雜比較敏感性測試比較和強(qiáng)壯性測試比較比較過濾器測試管理.7.1 軟件測試自動化根底自動化測試工具的分類: 單元

8、測試工具:PanaramaJunitC+Testing 負(fù)載和性能測試工具:LoadRunnerWASQALoad.7.1 軟件測試自動化根底自動化測試工具的分類: 功能測試工具:WinRunnerQuickTestRational Functional Tester測試管理工具:TestDirectorTestManagerTrackRecord.7.1 軟件測試自動化根底測試工具的選擇.7.2 何時進(jìn)展自動化測試自動化測試投資階段:早投資在設(shè)計時思索Planning (M0)Major MilestonePhase M1,2Release PhaseTimeTestingInvestmen

9、tTestingPhase.7.3 如何進(jìn)展測試自動化開發(fā)測試自動化的開發(fā)流程: 自動測試決議 測試工具獲取 自動測試引入過程 測試方案、設(shè)計與開發(fā) 測試執(zhí)行與管理 測試評審和評價.7.3 如何進(jìn)展測試自動化開發(fā)自動化測試生存周期方法學(xué)1. 自動化測試決議2. 測試工具獲取3. 自動化測試引入過程4. 測試方案、設(shè)計與開發(fā)5. 測試執(zhí)行管理6. 測試評審與評價A. 系統(tǒng)生存周期過程評價與改良F. 生成維護(hù)階段C. 小型工具先導(dǎo)/原型D. 系統(tǒng)設(shè)計與開發(fā)階段B. 業(yè)務(wù)分析與需求階段E. 組裝與測試階段.7.3 如何進(jìn)展測試自動化開發(fā)測試自動化的開發(fā)過程中需求思索的問題:測試需求:除用戶需求外,應(yīng)

10、明確概述可以在大限制發(fā)現(xiàn)錯誤所需求的測試條件。 遵照一定的測試框架。 最大限制的發(fā)揚重用。.7.4 對自動化測試的不正確期望我們在時間上是緊迫的,工程曾經(jīng)落后了,讓我們運用自動化測試吧! 我們要100%的實現(xiàn)測試自動化。 我們不需求進(jìn)展培訓(xùn)。.7.4 對測試自動化的不正確期望正確認(rèn)識測試自動化不現(xiàn)實的期望注定測試自動化的失敗測試自動化能:顯著降低反復(fù)手工測試的時間建立可靠、反復(fù)的測試,減少以為錯誤加強(qiáng)測試質(zhì)量和覆蓋率測試自動化不能:完全替代手工測試和手工測試工程師保證100%的測試覆蓋率彌補測試實際的缺乏.7.5 JUnit的運用7.5.1 JUnit簡介7.5.2 JUnit的設(shè)計方法7.5

11、.2 JUnit的運用步驟7.5.3 測試慣例.7.5.1 JUnit簡介在JUnit中編寫的測試協(xié)助他以一種極大(extreme)的步伐編寫程序及快速的找出缺陷。JUnit非常簡單JUnit測試檢驗其結(jié)果并提供立刻的報答。JUnit可以把測試組織成測試系列JUnit測試是開發(fā)者測試。JUnit測試是以Java寫成的,構(gòu)成一個介于測試及程序代碼間的無縫(seamless)邊境JUnit是免費的JUnit是以兩個關(guān)鍵設(shè)計款式來設(shè)計的:指令款式(Command pattern)及合成款式(Composite pattern)。TestCase是一個指令對象。任何包含測試方法的類別都是TestCas

12、e的子類別。TestCase可以定義恣意數(shù)量的testXXX()方法。當(dāng)他要檢查期望與實踐的測試結(jié)果,他激活assert()方法的各種類型(variaton)。.7.5.2 JUnit的設(shè)計TestCase子類別包含多個testXXX()方法;可以運用setUp()及tesrDown()方法初始化及釋放測試下的任何普通的對象,這個子類別形同測試的根底設(shè)備(fixture)。每一個測試在其本身根底設(shè)備的背景下執(zhí)行,在每一個測試方法之前呼叫setUp()及之后呼叫tearDown()以確保沒有副作用影響測試的執(zhí)行。.7.5.2 JUnit的設(shè)計TestCase實例對象可以合成為TestSuite層

13、級架構(gòu);在這個TestSuite層級架構(gòu)中可以自動激活定義在TestCase實例對象中的一切testXXX()方法。一個TestSuite是其它多個測試的一個合成對象(composite),其中包括TestCase實例對象及其它的TestSuite實例對象。這個由TestSuite代表的合成對象行為允許他組合測試的測試系列的測試系列到恣意深度,并且自動一致性(uniformly)的執(zhí)行一切測試以產(chǎn)出個別的經(jīng)過或失敗的形狀。 .7.5.3 JUnit的運用步驟第一步 編寫一個測試案例第二步 編寫一個測試系列第三步 執(zhí)行測試 第四步 組織測試.7.5.3 JUnit的運用步驟第一步:編寫一個測試案

14、例(1)定義一個TestCase的子類別。(2)覆寫setUp()方法以初始化測試中的一個或多個對象。(3)覆寫tearDown()方法以釋放測試中的一個或多個對象。(4)定義一個或多個公開的testXXX()方法;這些方法檢驗這些測試中的對象并且評價期望的結(jié)果。.7.5.3 JUnit的運用步驟范例代碼1以下是一個測試案例的范例:測試案例的范例(Example Test Case) import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;public class

15、ShoppingCartTest extends TestCase private ShoppingCart _bookCart; private Product _defaultBook; /* 以特定稱號建構(gòu)一個ShoppingCartTest。 建構(gòu)函數(shù)是以測試案例的稱號當(dāng)作參數(shù) */ public ShoppingCartTest(String name) super(name); .7.5.3 JUnit的運用步驟范例代碼2/* 設(shè)定測試設(shè)備 在測試案例方法之前呼叫 */ protected void setUp() _bookCart = new ShoppingCart(); _

16、defaultBook = new Product(Extreme Programming, 23.95); _bookCart.addItem(_defaultBook); /* 釋放測試設(shè)備 在測試案例方法之后呼叫 */ protected void tearDown() _bookCart = null; .7.5.3 JUnit的運用步驟范例代碼3/* 測試在cart中添加一個產(chǎn)品 */ public void testProductAdd() Product newBook = new Product(Refactoring, 53.95); _bookCart.addItem(ne

17、wBook); double expectedBalance = _defaultBook.getPrice() + newBook.getPrice(); assertEquals(expectedBalance, _bookCart.getBalance(), 0.0); assertEquals(2, _bookCart.getItemCount(); /* 測試清空cart */ public void testEmpty() _bookCart.empty(); assertTrue(_bookCart.isEmpty(); .7.5.3 JUnit的運用步驟范例代碼4/* 測試從c

18、art中移除產(chǎn)品 假設(shè)此產(chǎn)品不在cart中丟出一個ProductNotFoundException的例外 */ public void testProductRemove() throws ProductNotFoundException _bookCart.removeItem(_defaultBook); assertEquals(0, _bookCart.getItemCount(); assertEquals(0.0, _bookCart.getBalance(), 0.0); /* 測試從cart中移除一個未知的產(chǎn)品 假設(shè)ProductNotFoundException例外產(chǎn)生表示測

19、試勝利 */ public void testProductNotFound() try Product book = new Product(Enders Game, 4.95); _bookCart.removeItem(book); fail(Should raise a ProductNotFoundException); catch(ProductNotFoundException success) / 測試勝利 .7.5.3 JUnit的運用步驟范例代碼5/* 組合并傳回一個這個測試案例一切測試方法的測試系列 傳回一個非空值(non-null)的測試系列 */ public sta

20、tic Test suite() /這里運用的想法是參與一切的testXXX()方法到測試系列中。 / TestSuite suite = new TestSuite(ShoppingCartTest.class); /下面是另一種作法,但添加愈多的測試案例方法愈有能夠發(fā)生錯誤 / / TestSuite suite = new TestSuite(); / suite.addTest(new ShoppingCartTest(testEmpty); / suite.addTest(new ShoppingCartTest(testProductAdd); / suite.addTest(ne

21、w ShoppingCartTest(testProductRemove); / suite.addTest(new ShoppingCartTest(testProductNotFound); / return suite; .7.5.3 JUnit的運用步驟范例代碼6/* 執(zhí)行此測試案例(Runs the test case) */ public static void main(String args) junit.textui.TestRunner.run(suite(); /范例代碼終了.7.5.3JUnit的運用步驟第二步:編寫一個測試系列編寫一個測試系列其中包含許多測試案例。此測

22、試系列將允許我們從頭到尾執(zhí)行其一切的測試案例。編寫測試系列請依循以下的步驟:(1)定義一個TestCase的子類別。(2)定義一個靜態(tài)的suite()工廠方法;這個方法構(gòu)建一個TestSuite以包含一切的測試。 (3)隨意定義一個main()方法以批次方式執(zhí)行這個TestSuite。 .7.5.3JUnit的運用步驟代碼范例1以下是測試系列的范例:測試系列范例(Example Test Suite) import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;publ

23、ic class EcommerceTestSuite extends TestCase /* 以特定稱號建構(gòu)一個EcommerceTestSuite 建構(gòu)函數(shù)是以測試案例的稱號當(dāng)作參數(shù) */ public EcommerceTestSuite(String name) super(name); .7.5.3JUnit的運用步驟代碼范例2/* 組合并傳回一個測試系列包含一切知的測試。 新的測試應(yīng)該在此參與 傳回一個非空值(non-null)的測試系列 */ public static Test suite() TestSuite suite = new TestSuite(); /我們在前面構(gòu)

24、建的ShoppingCartTest suite.addTest(ShoppingCartTest.suite(); /另一個測試系列的范例,在測試系列中參與其它的測試系列 suite.addTest(CreditCardTestSuite.suite(); return suite; /* 執(zhí)行此測試系列 */ public static void main(String args) junit.textui.TestRunner.run(suite(); .7.5.3JUnit的運用步驟第三步執(zhí)行測試我們可以執(zhí)行這個測試系列或者其中任何個別的測試案例。執(zhí)行TestSuite將自動執(zhí)行一切的

25、TestCase及TestSuite實例對象。執(zhí)行一個TestCase將自動激活其一切公開的testXXX()方法。JUnit提供文字及圖形運用者界面。兩種運用者接口都可以指出多少個測試被執(zhí)行、任何錯誤或失敗、及一個簡單的完成形狀。簡化運用者接口是快速執(zhí)行測試的關(guān)鍵。他應(yīng)該簡單了解就可以執(zhí)行他的測試并知道測試的形狀,就像他在編譯上所做的一樣。文字運用者接口(junit.textui.TestRunner)假設(shè)經(jīng)過一切測試那么顯示OK而假設(shè)失敗那么顯示失敗訊息。圖形運用者界面(junit.swingui.TestRunner)顯示浮動窗口;假設(shè)一切測試皆經(jīng)過那么其中有一個進(jìn)度桿顯示為綠色,否那么

26、進(jìn)度桿顯示為紅色。普通而言,TestSuite及TestCase類別應(yīng)定義一個main()方法;main()利用適當(dāng)?shù)倪\用者接口。我們寫的測試到目前為止皆定義一個main()方法來運用文字運用者接口。由main()定義的運用文字運用者接口執(zhí)行我們的測試案例時,運用:java ShoppingCartTest另一種方式,運用文字運用者接口執(zhí)行測試,運用:javajunit.textui.TestRunner ShoppingCartTest或這運用圖形運用者接口時,運用: javajunit.swingui.TestRunner ShoppingCartTest EcommerceTestSui

27、te可以以類似的方法執(zhí)行。.7.5.3JUnit的運用步驟第四步:組織測試把測試案例建立在與我們要測試的程序代碼一樣的包裹(package)中。在他的原始碼資料夾中防止結(jié)合運用程序與測試程序代碼,建立一個鏡像(mirrored)的資料夾構(gòu)造對應(yīng)于此包裹構(gòu)造;并在鏡像資料夾中存放他的測試碼。 為他的運用程序中的Java包裹定義一個TestSuite類別;在這個TestSuite類別中包含一切測試這個包裹內(nèi)之程序的測試。定義類似的TestSuite類別;此TestSuite類別在此運用程序中的其它包裹及子包裹中構(gòu)建高層及低層測試系列。 確認(rèn)他的建構(gòu)程序包含一切測試的編輯物(compilation)

28、。這樣做有助于確認(rèn)他的測試可以堅持與最后的程序代碼同步以維持測試是最新的。經(jīng)由在每一個Java包裹中建立一個TestSuite,在各種包裹層次中,他可以在每一個籠統(tǒng)層中執(zhí)行一個TestSuite。例如,他可以定義一個com.mydotcom.AllTests執(zhí)行系統(tǒng)中一切的測試,及定義一個com.mydotcom.ecommerce.EcommerceTestSuite只需執(zhí)行電子買賣組件的測試。測試層級架構(gòu)可以擴(kuò)展到恣意的深度。其深度與他開發(fā)系統(tǒng)的籠統(tǒng)層次有關(guān),他可以執(zhí)行一個相稱的測試。只需選擇他的系統(tǒng)層次并測試它即可。.7.5.3JUnit的運用步驟測試層級架構(gòu)范例(Example Tes

29、ting Hierarchy) AllTests (Top-level Test Suite) SmokeTestSuite (Structural Integrity Tests) EcommerceTestSuite ShoppingCartTestCase CreditCardTestSuite AuthorizationTestCase CaptureTestCase VoidTestCase UtilityTestSuite MoneyTestCase DatabaseTestSuite ConnectionTestCase TransactionTestCase LoadTestS

30、uite (Performance and Scalability Tests) DatabaseTestSuite ConnectionPoolTestCase ThreadPoolTestCase .7.5.4 測試習(xí)慣當(dāng)他測試時請謹(jǐn)記下面的事項:1軟件運作良好的事物都是經(jīng)過測試檢驗的2測試一點點,程序代碼寫一點點,測試一點點,程序代碼寫一點點. 3請確認(rèn)一切測試都能100經(jīng)過4每天至少執(zhí)行系統(tǒng)中一切的測試一次5要測試的程序代碼是最能夠錯誤的區(qū)域。6編寫最能夠報答測試投資的測試。 7假設(shè)他運用System.out.println()除蟲,寫一個測試自動檢查其結(jié)果。8假設(shè)發(fā)現(xiàn)臭蟲,寫一個測試

31、揭露這個臭蟲。 9假設(shè)下次有人要求他幫他除蟲,幫他寫一個測試。10編寫程序代碼之前先寫單元測試;而且只需當(dāng)一個測試失敗才寫新的程序代碼。 .7.6 WinRunner的運用WinRunner簡介企業(yè)級軟件功能測試工具錄制回放功能適用于不同的開發(fā)工具運用方便,腳本易于維護(hù).7.6 WinRunner的運用兩種記錄Recording 方式Context SensitiveAnalogWhen the application is based on GUI objectsWhen the application has non-GUI areaDefault modeWhen mouse trace

32、s are necessary for correct executionRecommendedWhen you are unable to use context Sensitive mode.7.6 WinRunner的運用WinRunner Add-In管理WinRunner在Context Sensitive記錄方式下是經(jīng)過先識別GUI對象、然后根據(jù)用戶操作來產(chǎn)生相應(yīng)的Function加到Script中對于不同開發(fā)言語環(huán)境,GUI對象的識別需求不同的Add-In即使有對應(yīng)的Add-In,WinRunner依然不能很好地識別本人開發(fā)的GUI 對象如Delphi VCL,后面將專門講如何處

33、理.7.6 WinRunner的運用記錄Script1、先將光標(biāo)挪動到要插入Script的地方2、啟動要錄制的Application3、按紅色按鈕開場錄制4、停頓錄制.7.6 WinRunner的運用三種運轉(zhuǎn)方式UpdateUpdate 方式用于更新Verfiy方式允許用到的各種Checkpoint比較的基準(zhǔn)Baseline) Checkpoint將在后面提到Verify Verify方式指正式運轉(zhuǎn)Debug Debug方式用于調(diào)試。結(jié)果都會保管在Script保管的目錄下.7.6 WinRunner的運用Synchronization Point三種同步方式:GUI對象屬性、GUI對于位圖、屏

34、幕位圖(Bitmap)運用同步點主要用于測試Script的下一步必需等待某一特定條件滿足后才可以運轉(zhuǎn)同步最長等待時間為obj_wait_info制定的時間加上General Option-Run-Delay for window Synchronization指定的時間在某種意義上Synchronization可以用CheckPoint來替代.7.6 WinRunner的運用Checkpoint三類CheckPoint:GUI對象、Bitmap、數(shù)據(jù)庫CheckPoint最長等待時間在General Option-Run-Timeout for Checkpoint and CS statem

35、ents.7.6 WinRunner的運用數(shù)據(jù)庫CheckPoint三種數(shù)據(jù)庫CheckPoint:Default、Custom、RuntimeDefault和Custom用于純粹的數(shù)據(jù)庫檢查不和前臺GUI內(nèi)容比較,Runtime將把數(shù)據(jù)中的內(nèi)容和前臺界面中的GUI對象的某一屬性值進(jìn)展比較Default和Custom的不同在于Custom在最后將調(diào)出CheckList編輯窗口.7.6 WinRunner的運用運用數(shù)據(jù)庫CheckPoint留意運用數(shù)據(jù)庫CheckPoint應(yīng)該留意輸入SQL的合法性,保證在CheckList編輯窗口中的屬性都是可以比較的。.7.6 WinRunner的運用運用R

36、untime CheckPoint Runtime Checkpoint用于在運轉(zhuǎn)時辰比較數(shù)據(jù)庫中的內(nèi)容和Application中某些GUI的特定屬性能否相符留意,RuntimeCheckpoint只能直接比較,對于某些經(jīng)過轉(zhuǎn)換,假設(shè)TRUE那么某個Checkbox被選中這類是無法比較的,假設(shè)要進(jìn)展這類比較,可以思索先運用GUI Checkpoint,然后運用普通的數(shù)據(jù)庫Checkpoint.7.6 WinRunner的運用動態(tài)更新SQL數(shù)據(jù)庫Checkpoint運用的SQL語句保管在Script目錄下的Chklist目錄下在實踐運用中,特別是運用數(shù)據(jù)驅(qū)動數(shù)據(jù)驅(qū)動將在后面提到時候?qū)?shù)據(jù)庫的效驗

37、往往要修正SQL中的某一參數(shù),對于這中情況,可以經(jīng)過I/O Functions或者一段Script在進(jìn)展數(shù)據(jù)庫Check前修正數(shù)據(jù)庫Checkpoint運用的sql語句.7.6 WinRunner的運用不運用Update方式修正BaseLineCheckPoint可以經(jīng)過菜單Insert下的Edit XXX CheckList來修正對于普通的數(shù)據(jù)庫CheckPoint,假設(shè)由于某種特殊緣由修正前往內(nèi)容的baseline,可以經(jīng)過菜單Tools-Test Result翻開任何一個測試結(jié)果雙擊數(shù)據(jù)庫Checkpoint點翻開數(shù)據(jù)庫Check Result結(jié)果窗口來修正.7.6 WinRunner的

38、運用修正BaseLine(Expected Value).7.6 WinRunner的運用數(shù)據(jù)驅(qū)動(Data Drived)數(shù)據(jù)驅(qū)動的來源可以有EXCEL或者TXT文件,建議不運用TXT文件數(shù)據(jù)驅(qū)動的主要函數(shù)可以看TSL協(xié)助Data-Driven Test Functions留意EXCEL可以采用寫方式翻開,這樣可以把結(jié)果寫回到EXCEL中.7.6 WinRunner的運用運用DataDriver Wizard留意:運用Wizard前要先選擇要包括的語句.7.6 WinRunner的運用選擇數(shù)據(jù)表(EXCEL)保管位置.7.6 WinRunner的運用為數(shù)據(jù)選擇列稱號.7.6 WinRunne

39、r的運用直接在Excel中修正數(shù)據(jù).7.6 WinRunner的運用修正DataDriver 產(chǎn)生的語句table = default.xls; rc = ddt_open(table, DDT_MODE_READ);if (rc!= E_OK & rc != E_FILE_OPEN)pause(Cannot open table.);ddt_get_row_count(table,table_RowCount);for(table_Row = 1; table_Row = table_RowCount; table_Row +)ddt_set_row(table,table_Row);obj

40、_type (TMBEdit,ddt_val(table,Name)&);obj_type ddt_close(table);留意:DDT_OPEN可以采用寫方式翻開.7.6 WinRunner的運用運用GUI config運用Gui Config的主要目的是修正WinRunner學(xué)習(xí)中的錯誤讓W(xué)inRunner學(xué)習(xí)一些非開發(fā)環(huán)境規(guī)范控間的GUI對象.7.6 WinRunner的運用運用GUI Config添加新的GUI類.7.6 WinRunner的運用GUI類的三類屬性對于一個GUI類,WinRunner將其的屬性分為三類:Available 、 Obligatory、OptionalOb

41、ligatory值必需記錄的屬性,WinRunner普統(tǒng)統(tǒng)過Obligatory類別中的屬性來區(qū)別同一窗口或GUI容器下同類的GUI對象Optional指可選項,當(dāng)WinRunnber無法經(jīng)過Obligatory中的屬性來識別同一類GUI對象時候,將運用Optional中的屬性.7.6 WinRunner的運用修正GUI類的識別方式Step1.7.6 WinRunner的運用修正GUI類的識別方式Step2對于一個新添加的GUI對象,假設(shè)可以的話,盡量從Mapped to Class中選擇一個類似的類假設(shè)無法從Mapped to Class中選擇一個類似的,而且在scirpt運轉(zhuǎn)時發(fā)現(xiàn)WinR

42、unner無法識別該對象,就要思索修正Obligatory或Optional列表中內(nèi)容(建議修正Obligatory).7.6 WinRunner的運用運用GUI Map Editor主要目的是用來修正WinRunner識別后的GUI對象的屬性值,主要是運用通配符wildcard來替代某些屬性保管和導(dǎo)入GUI Map文件留意:當(dāng)他錄制完某一Script必需保管GUI Map否那么一但退出WinRunner由于GUI Map不存在,以后將很能夠無法運轉(zhuǎn)已前錄制好的Script。建議:將GUI Map文件和Script保管在同一目錄,將Script第一行運用GUI_load裝入Script運用到的Gui Map文件 .7.6 WinRunner的運用運用通配符來識別GUI對象.7.6 WinRunner的運用通配符列表符號用途.任何單一字符0-9任何數(shù)字A-Z任何大寫字母a-z任何小寫字母m,f這里m,f可以是任意字符,m,f表示可以是字符m或者f*任何循環(huán)字符(any repetition of previous charactre or expression).*任何字符組成的字符串.7.6 W

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論