軟件自動化測試工具WinRunner概述_第1頁
軟件自動化測試工具WinRunner概述_第2頁
軟件自動化測試工具WinRunner概述_第3頁
軟件自動化測試工具WinRunner概述_第4頁
軟件自動化測試工具WinRunner概述_第5頁
已閱讀5頁,還剩143頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、技術(shù)創(chuàng)新,變革未來軟件自動化測試工具WinRunner概述2在傳統(tǒng)的制造業(yè)中計量設(shè)備、化驗(yàn)設(shè)備在生產(chǎn)過程中對質(zhì)量控制是至關(guān)重要的。如果千分尺、天平、實(shí)驗(yàn)爐的溫度計不準(zhǔn),它所引起的后果可想而知。因此必須規(guī)定對這些設(shè)備的控制、校準(zhǔn)和維修的辦法,并建立文件化程序。對于軟件企業(yè)呢,這里應(yīng)該指的是軟件測試工具的控制。測試工具概述3、什么是軟件測試工具? 軟件測試工具是一種測試軟件,測試人員借 助它來提高軟件測試工作的效率。 目前國內(nèi)軟件企業(yè)采用軟件測試工具還不夠普遍。4 2、軟件測試工具的分類 按工作方式分: 靜態(tài)分析工具 動態(tài)測試工具 按工具功能分: 測試計劃工具:支持制訂測試計劃 測試設(shè)計與開發(fā)工具

2、:支持測試數(shù)據(jù)生成,測試問題的 捕捉與重演 測試執(zhí)行工具:支持特定的測試方法、支持回歸測試 測試評估工具:報告測試覆蓋情況 測試管理工具:協(xié)助進(jìn)行測試的組織工作 其它輔助工具:如數(shù)據(jù)比較、模擬運(yùn)行5 3、如何控制 自行開發(fā)的測試工具待成熟才可投入使用采購產(chǎn)品的選擇:優(yōu)秀的、名牌的 使用前充分檢測6白盒測試工具靜態(tài)測試工具代碼審查一致性檢查錯誤檢查接口分析輸入輸出規(guī)格說明分析檢查數(shù)據(jù)流分析類型分析單元分析復(fù)雜度分析7白盒測試工具動態(tài)測試工具功能確認(rèn)與接口測試覆蓋分析性能測試內(nèi)存分析8黑盒測試工具功能測試工具檢測程序是否達(dá)到預(yù)期的功能并正常運(yùn)行。性能測試工具確定軟件和系統(tǒng)的性能常用的黑盒測試工具有

3、Rational公司的TeamTest、Compuware公司的QACenter(QARun、QALoad、Eco Tools、Eco Scope)9 WinRunner簡介Mercury Interactive企業(yè)測試和性能管理解決方案供應(yīng)商測試套件WinRunnerLoadRunnerTestDirector提供整個測試流程的解決方案測試計劃、測試開發(fā);GUI負(fù)載測試、錯誤跟蹤、多用戶系統(tǒng)客戶端負(fù)載測試10主要內(nèi)容WinRunner介紹WinRunner如何識別GUI對象GUI MAP創(chuàng)建測試檢查GUI對象 11WinRunner:強(qiáng)大的企業(yè)級測試自動化工具基于MS Windows的功能測

4、試工具; 由于軟件功能增加越來越快,測試難度越來越大,手工測試已經(jīng)跟不上這種發(fā)展趨勢; WR可以幫助自動處理從測試開發(fā)到測試執(zhí)行的整個過程??梢詣?chuàng)建可修改和可復(fù)用的測試腳本,而不用擔(dān)心軟件功能模塊的變更。12TestDirector:全球測試管理系統(tǒng)TD是業(yè)界第一個基于web的測試管理系統(tǒng),可在公司組織內(nèi)進(jìn)行全球范圍內(nèi)測試的協(xié)調(diào)。TD通過在一個整體的應(yīng)用系統(tǒng)中提供并且集成了測試需求管理,測試計劃,測試日程控制以及測試執(zhí)行和錯誤跟蹤等功能,極大地加速測試過程。13LoadRunner:工業(yè)標(biāo)準(zhǔn)級負(fù)載測試工具LR是一種預(yù)測系統(tǒng)行為和性能的負(fù)載測試工具。通過模擬成千上萬名用戶和實(shí)施實(shí)時性能監(jiān)測來確認(rèn)

5、和查找問題。使用LR,企業(yè)能最大限度地縮短測試時間,優(yōu)化性能和加速應(yīng)用系統(tǒng)的發(fā)布周期。14WinRunner的安裝154.1 WinRunner使用概述 1.啟動WinRunner 點(diǎn)擊開始程序WinRunnerWinRunner 啟動WR。WR的Record/Run Engine(記錄/執(zhí)行引擎)的圖標(biāo)出現(xiàn)在Windows的任務(wù)條上。這個引擎設(shè)立和維護(hù)WR和被測軟件之間的連接。 第一次啟動WR會看到歡迎窗口,可以選擇新建測試、打開已有測試或快速預(yù)覽WR。如果不希望下次啟動看到這個窗口,可以把Show on startup前面的勾去掉。 162.加載WinRunner 插件在WinRunner

6、啟動時,可以選擇支持ActiveX control、PowerBuilder、VisualBasic或WebTest的插件。把Show on startup前面的勾去掉,這樣Add-In Manager的窗口就不會在WR啟動的時候出現(xiàn)。也可以在進(jìn)入WR后在SettingsGeneral OptionsEnviroment 里面設(shè)置是否在開始時顯示這個窗口以及等待時間等。建議:不要同時載入所有的插件。 173.WinRunner主窗口主窗口包括以下部分: WinRunner title bar(標(biāo)題欄)Menu bar (菜單欄) Standard toolbar (標(biāo)準(zhǔn)工具欄),包含運(yùn)行測試時

7、常用的命令 User toolbar (用戶工具欄),包含創(chuàng)建測試時常用的命令 Status bar (狀態(tài)欄) 18WinRunner主窗口19確認(rèn)顯示工具條204.測試窗口在測試窗口創(chuàng)建和執(zhí)行測試,窗口包含以下部分: Test Window title bar(測試窗口標(biāo)題欄),顯示當(dāng)前打開的測試名稱 Test script (測試腳本), 通過錄制或編寫代碼方式生成 Execution arrow (執(zhí)行箭頭),指明當(dāng)前正在執(zhí)行的那一行腳本,如果想要移動這個標(biāo)志到某一行,只需要在該行左側(cè)空白處點(diǎn)擊鼠標(biāo)左鍵 Insertion point (插入點(diǎn)),你可以插入或編輯文本的地方 2122記

8、錄Script1、先將光標(biāo)移動到要插入Script的地方!2、啟動要錄制的Application3、按紅色按鈕開始錄制4、停止錄制23WinRunner測試過程 WR的測試過程分六個步驟: 創(chuàng)建GUI map(RapidTest Script wizard) 創(chuàng)建測試 調(diào)試測試(Debug Mode) 執(zhí)行測試 (Verify Mode)查看測試結(jié)果(Test Results) 報告發(fā)現(xiàn)的錯誤 244.2 WinRunner如何識別GUI對象GUI的每個對象都有一組被定義的屬性來決定它的行為和外觀。WinRunner通過學(xué)習(xí)這些屬性來識別和定位GUI對象,而不需要知道對象的物理位置;WinRu

9、nner把從GUI map上學(xué)來的信息儲存起來。當(dāng)執(zhí)行測試時,WinRunner使用GUI map定位對象:先從GUI map讀取有關(guān)對象的描述,然后尋找有相同屬性的對象;當(dāng)GUI被修改了之后,先前的腳本仍然可以使用 用戶只需要在GUI map上添加、刪除或編輯相關(guān)的對象的描述,WinRunner就可以在修改后的軟件上找到這些對象。25GUI對象的邏輯名在測試腳本中,WinRunner不使用全部的物理描述來表示對象,而是給每個對象一個邏輯名。對象的邏輯名由它的類決定。多數(shù)情況下,邏輯名是對象的卷標(biāo):一個button的邏輯名就是它的卷標(biāo),如“OK”或“Cancel”;一個window的名稱就是它

10、標(biāo)題欄上的文本;一個list的名稱是list上方或旁邊的文本。邏輯名和物理描述一起作用,確保每個GUI對象有自身唯一的標(biāo)識。26GUI對象的物理描述WinRunner使用物理描述識別被測軟件的GUI對象物理描述包括物理屬性名和相應(yīng)的值;這些屬性值的配對在GUI map中以下面的格式出現(xiàn):屬性1:值1,屬性2:值2,property3:value3,.例如:對于“Open” window的描述包含兩個屬性:類(Class)和卷標(biāo)(Label)。類的屬性的值是“window”,卷標(biāo)的屬性的值是“Open”:class:window,label:Open類的屬性標(biāo)識對象的類型。每個對象根據(jù)功能不同屬

11、于不同的類:window, push button, list, radio button, menu等。27284.3 GUI map選擇ToolsGUI Map Editor 可以查看GUI map的內(nèi)容。GUI map實(shí)際上是一個或多個GUI map文件的總和。在GUI Map Editor中,可以查看整個GUI map或單個GUI map文件的內(nèi)容。GUI對象按照他們在軟件中出現(xiàn)時所在的窗體分組。2930用GUI Spy查看GUI對象的屬性GUI Spy可以用來檢視某個GUI對象有哪些屬性以及WR是以哪些屬性來識別它的。過程:開啟GUI Spy;按下spy按鈕,將鼠標(biāo)移動到登入窗口上,

12、將鼠標(biāo)移到OK按鈕上,然后按下Ctrl_L+F3,在跳出的Spy模式里,可以看到顯示OK按鈕的屬性。31檢視GUI Spy顯示的信息在Recorded標(biāo)簽,是顯示W(wǎng)R用來識別OK按鈕的屬性,分別是class:push_button以及l(fā)abel:Ok,表示這個GUI對象是個按鈕,按鈕上面的文字是OK;在All Standard標(biāo)簽,則是顯示OK按鈕的所有屬性。WR只用最少的屬性來識別GUI對象!32設(shè)定窗體環(huán)境(Window Context)WR在對象出現(xiàn)的窗體環(huán)境中學(xué)習(xí)和實(shí)現(xiàn)操作。當(dāng)錄制腳本時,一旦當(dāng)前窗體(Active window)改變而且有GUI對象被操作,WR會自動在測試腳本中插入一

13、條set_window 語句。然后所有的對象就在那個窗體環(huán)境中被識別。例如: Set_window(“Print”,12); Button_press(“OK”); Set_window(“Print”,12)指明Print window(打印窗口)是當(dāng)前窗體。OK button是在這個窗體環(huán)境里學(xué)到的。 如果手工編寫腳本,則需要寫入set_window 語句以對應(yīng)當(dāng)前窗體的變化。同樣在編輯腳本時注意不要隨意刪除必要的set_window 語句。 33教WinRunner學(xué)習(xí)被測軟件的GUIWR需要先學(xué)習(xí)軟件的GUI 當(dāng)使用GUI Map File per Test mode時,WR會在錄制腳

14、本時自動學(xué)習(xí)軟件的GUI。 當(dāng)使用Global GUI Map File mode(共用GUI映射文件)時,需要教給WR有關(guān)GUI對象屬性的信息。方式: 使用RapidTest Script wizard在錄制腳本前一次性的學(xué)習(xí)每個窗體中所有的GUI對象的屬性;通過錄制腳本的方法學(xué)習(xí)被錄制的那部分軟件中所有的GUI對象的屬性,如果只使用錄制的方法讓W(xué)R學(xué)習(xí)對象,WR或許不能把窗體上所有的對象都學(xué)到(因?yàn)橛袑ο鬀]有被操作),學(xué)習(xí)得不全面 ;錄制方式只用于小的或臨時的測試。 使用GUI Map Editor學(xué)習(xí)單個GUI對象、窗體或某個窗體中所有GUI對象的屬性 。注意:在GUI Map File

15、 per Test 模式下,RapidTest Script wizard將被禁用。 34GUI map file模式的選取計劃和創(chuàng)建測試時,需要確定GUI map的工作模式。 作為WR新手或GUI map只使用一次,可以使用GUI Map File Per Test模式。這種模式下,每次新建測試就自動新建一個GUI map file。在你保存測試時,GUI map file自動保存;在你打開測試時,GUI map file自動加載。 作為WR老手或GUI map將被不同測試共享,建議使用更有效率的Global GUI Map File模式。這是WR的默認(rèn)模式。35兩種模式的優(yōu)缺點(diǎn)比較: GU

16、I Map File Per Test Global GUI Map File 優(yōu)點(diǎn) 1. 每個測試都有自帶的GUI map file。 2. 使用方便,且避免忘記保存或加載GUI map file。 3. 作為單次測試,容易維護(hù)和更新(就是重新錄一次)。 1. 如果對象或窗體屬性改變,只需要在GUI map file里把對應(yīng)的屬性修改。 2. 容易維護(hù)和更新(無需重新錄制) 缺點(diǎn) 一旦軟件GUI變更,每個測試的GUI map file都要重新錄制。要記住保存和加載GUI map file。建議 如果你對WR沒有經(jīng)驗(yàn)或被測軟件的GUI已經(jīng)固定,可以采用這種模式。如果你是有經(jīng)驗(yàn)的WR使用者或被測

17、軟件的GUI經(jīng)常變化,最好使用這種模式。 364.4 Global GUI Map File模式的使用 WR最有效率的用法是把測試分組。一組中的測試(任務(wù))都測試同一窗體上的GUI對象。這樣這些任務(wù)就可以共享GUI map file。當(dāng)GUI發(fā)生變化,只需要修改一個GUI map file,就可以讓同組中的任務(wù)都正常工作。 37RapidTest Script wizard的使用 1).選擇CreateRapidTest Script Wizard,點(diǎn)擊Next。 注意:當(dāng)載入WebTest插件或其他某些插件后,RapidTest Script wizard將被禁用。 2).標(biāo)識被測軟件屏幕打

18、開點(diǎn)擊指向手(手型圖標(biāo)),然后點(diǎn)擊被測軟件。被測軟件的窗體名稱顯示在Window Name框中。 3).選擇測試屏幕打開4).選擇希望WR創(chuàng)建的測試類型。當(dāng)RapidTest Scipt Wizard在被測軟件中走查結(jié)束,選擇的測試就會被顯示在WR窗口中。 38RapidTest Script wizard的使用(續(xù))5).消除所有設(shè)定(這里僅識別GUI對象)6).接受Navigation Controls默認(rèn)值 此窗口主要告訴WR哪些GUI對象會開啟一個新窗口,默認(rèn)與。點(diǎn)擊Next。 7).選擇Express(快速)或Comprehensive(全面)學(xué)習(xí)流程。點(diǎn)擊Learn。WR就開始系統(tǒng)

19、地一個窗口一個窗口地學(xué)習(xí)被測軟件。8).選擇Yes或No來告訴WR你是否希望在你使用WR時,讓W(xué)R自動啟動這個被測軟件。點(diǎn)擊Next。 9).輸入啟動腳本和GUI map文件的保存路徑和文件名,或使用默認(rèn)值。點(diǎn)擊Next。 3910).輸入測試文件的保存路徑和文件名,或使用默認(rèn)值。點(diǎn)擊Next。 11).點(diǎn)擊OK關(guān)閉RapidTest Script wizard。剛才創(chuàng)建的測試被顯示在WR窗口中。40可選擇以下幾種類型的測試: GUI Regression Test(界面回歸測試)用來比較軟件不同版本中的GUI對象。例如檢查一個button是否被禁用。創(chuàng)建這種測試時,WR先捕捉GUI對象默認(rèn)信

20、息。在回歸測試時,WR把當(dāng)前信息和默認(rèn)比較,并報告不符合的地方。 Bitmap Regression Test (位圖回歸測試)用來比較軟件不同版本中的位圖圖片。如果被測軟件沒有GUI對象,則選擇這種類型。創(chuàng)建這種測試時,WR先捕捉被測軟件每個窗體的一幅位圖圖片。在回歸測試時,WR把當(dāng)前圖片和以前捕捉的比較,并報告不符合的地方。 User Interface Test(用戶界面測試)這種測試決定被測軟件是否符合Microsoft Windows標(biāo)準(zhǔn)。Test Template(測試模板)這種測試提供一個操作被測軟件的自動測試的基本框架。它打開和關(guān)閉每個窗口,為你留下可以添加代碼(手寫或錄制)的

21、空間。 41User Interface Test(用戶界面測試)檢查: a). GUI對象在窗體中的排列 b). 所有被定義的文本(text)在GUI對象上可見 c). GUI對象上的卷標(biāo)(Label)以大寫字母寫 d). 每個卷標(biāo)包含一個有下劃線的字母 e). 每個窗口有一個OK button,一個Cancel button,和一個系統(tǒng)菜單 WR搜索軟件UI,把不符合Microsoft Windows標(biāo)準(zhǔn)的地方報告出來。 42保存GUI Map 1). 選擇ToolsGUI Map Editor,打開編輯器。 2). 選擇ViewGUI Files。 3). 確認(rèn)文件顯示在GUI File

22、清單中。文件名前有一個星號(*),表示GUI map文件被改變了。當(dāng)文件保存后,星號消失。 4). 在GUI Map Editor中,選擇FileSave打開Save GUI File對話框。 5). 選擇文件夾、文件名(或輸入新文件名)。點(diǎn)擊保存。被保存的GUI map文件被加載并顯示在GUI Map Editor里。 43加載GUI Map文件 有兩種方法加載GUI map文件: 用GUI_load功能 從GUI Map Editor中加載 444.5 GUI Map File per Test模式 WR通過錄制的方式學(xué)習(xí)被測軟件的GUI。如果GUI發(fā)生變化,可以用GUI Map Edit

23、or更新每個測試的GUI map。無需加載或保存GUI map文件。 注意:如果改變了對象的邏輯名,必須更新腳本。 454.6 創(chuàng)建測試用戶可以用錄制或編程的方式創(chuàng)建測試。通常從錄制一個基礎(chǔ)測試腳本開始 用戶對被測軟件進(jìn)行操作,TSL語言記錄下這些操作;用戶可以在腳本中修改、添加功能等。有兩種可用的錄制模式:Context Sensitive模式錄制你對GUI對象的操作;Analog模式用X軸和Y軸定位跟蹤鼠標(biāo)運(yùn)行軌跡。46Context Sensitive模式主要以GUI對象為基礎(chǔ),WR會識別使用者點(diǎn)選的GUI對象以及執(zhí)行的操作;如在登入窗口按下OK按鈕動作,則WR產(chǎn)生button_pres

24、s(“OK”),執(zhí)行這段TSL,WR會在應(yīng)用程序上找尋OK按鈕,然后按下它。47Analog模式WR主要錄制鼠標(biāo)移動的軌跡、鼠標(biāo)的點(diǎn)選以及鍵盤的輸入三種動作;如在登入窗口按下OK按鈕動作,則WR產(chǎn)生move_locator_track(1); 鼠標(biāo)移動mtype(“-”); 按下鼠標(biāo)左鍵mtype(“+”); 放開鼠標(biāo)左鍵執(zhí)行這段TSL,WR會控制鼠標(biāo)移動,此鼠標(biāo)移動的軌跡是以屏幕的絕對坐標(biāo)為基準(zhǔn),所以當(dāng)應(yīng)用程序的位置或是使用接口變動,則測試腳本將會執(zhí)行失敗。48兩種Recording測試的模式Context Sensitive(環(huán)境判斷模式)Analog(模擬模式)應(yīng)用程序只對GUI對象進(jìn)行

25、操作 應(yīng)用程序不僅僅只對GUI對象進(jìn)行操作,對位圖敏感。如畫圖軟件等Default mode 完全按照用戶鼠標(biāo)、鍵盤的移動來進(jìn)行記錄Recommended 使用Context Sensitive不能完成測試時。提示:假如測試的應(yīng)用程序包含一般GUI對象,也包含繪圖區(qū)域,在錄制過程中,可隨時切換錄制模式49創(chuàng)建測試腳本的主要步驟決定要測試的功能點(diǎn)。確定想在腳本中使用的檢查點(diǎn)和同步點(diǎn)。 檢查點(diǎn)用于比較軟件當(dāng)前版本和以前版本的區(qū)別;同步點(diǎn)用來處理測試運(yùn)行中可能發(fā)生的時間控制和窗體位置等問題。在測試屬性對話框里把測試相關(guān)的信息文檔化。 選擇錄制模式(Context Sensitive或Analog)并

26、錄制。 給測試分配一個名字并保存。 50檢查點(diǎn) 在腳本中可以插入以下四類檢查點(diǎn): GUI檢查點(diǎn),檢驗(yàn)GUI對象信息。比如:可以查看一個button是否可用或一個清單中哪個項目被選定了。位圖檢查點(diǎn),做一個窗體或區(qū)域的截圖,并把這張圖片和以前版本進(jìn)行比較。文本檢查點(diǎn),讀取GUI對象和位圖中的文本,可以檢驗(yàn)文本內(nèi)容。數(shù)據(jù)庫檢查點(diǎn),檢查一定數(shù)量的行和列組成的集合(這個集合由你在數(shù)據(jù)庫中創(chuàng)建)的內(nèi)容。51同步點(diǎn) 同步點(diǎn)解決測試和被測軟件之間的時間占用問題。例如:如果創(chuàng)建一個打開數(shù)據(jù)庫軟件的測試,你可以插入一個同步點(diǎn)讓測試等待直到在數(shù)據(jù)庫中的記錄在屏幕上被加載。 52錄制Context Sensitive

27、模式的測試腳本 錄制測試的操作方法: 1).開啟WR并加載GUI Map File;2).開啟Flight Reservation并登入;3).開始以Context Sensitive模式錄制測試腳本; 4).開啟3號定單;5).停止錄制;6).保存測試腳本為lesson3。 注意:WR是以目錄的方式而不是單一文件的方式儲存lesson3測試腳本,此目錄將會包含測試腳本以及測試執(zhí)行的結(jié)果。53錄制測試的操作方法: 1).開啟lesson3測試腳本,將光標(biāo)移到最后一行;2).開始以Context Sensitive模式錄制測試腳本; 3).開啟傳真訂單;Fax Number輸入415555123

28、44).勾選send signature with order;5).在Context Sensitive模式下錄制簽名動作;6).清除簽名;7).將Fax Order窗口移動到其他位置;8).在Analog模式下錄制簽名動作;(F2或再按一次Record按鈕進(jìn)行切換)錄制Analog模式的測試腳本 549).切換回Context Sensitive模式并將訂單傳真出去;10).停止錄制; 11).保存測試腳本;12).記住保存新的GUI對象。前次Fax Order窗口的GUI對象并未被識別,當(dāng)錄制到Fax Order窗口上的操作時,會被識別到并先放到temporary GUI Map Fil

29、e中。關(guān)閉WR后,此GUI對象將會被拋棄。55錄制時的要點(diǎn):錄制前,關(guān)閉所有無關(guān)的程序。 創(chuàng)建可以自我復(fù)原的測試,以便測試腳本可以重復(fù)執(zhí)行測試。當(dāng)測試結(jié)束時,測試環(huán)境必須恢復(fù)到測試前的狀態(tài)。 錄制時,你可以把WR最小化而使用User工具條(需要先把工具條和菜單分開)。這樣你就可以全屏錄制程序了。所有主要命令都在工具條上,當(dāng)然你也可以自定義工具條的內(nèi)容。在Analog模式下錄制時,避免超前輸入。如果需要打開一個窗口,就等窗口完全打開后再繼續(xù)操作。避免按住鼠標(biāo)鍵不放,尤其是當(dāng)這個操作會造成重復(fù)操作時(如點(diǎn)在滾動條上來移動屏幕顯示的內(nèi)容)。因?yàn)檫@樣會造成一個無法被回放的時間感應(yīng)(time-sensi

30、tive)操作。如果真的需要對鼠標(biāo)鍵連續(xù)操作,可以多點(diǎn)擊幾下。 錄制過程中,在一個窗體中移動時盡量使用鼠標(biāo),不要用Tab鍵。 56當(dāng)需要從Context Sensitive模式切換到Analog模式時,在切換前建議移動一下窗口,如此可確保以Analog模式錄制完成后執(zhí)行時,窗口位置為固定的。在Analog模式下錄制時,盡量使用熱鍵插入檢查點(diǎn),不要用WR菜單或工具條。當(dāng)在Global GUI Map File模式下錄制測試腳本時,錄制的GUI對象之前并未錄制過,則WR會將其放在temporary GUI Map File中。當(dāng)在Global GUI Map File模式下錄制測試腳本時,經(jīng)常檢查

31、新的GUI對象是否被新增到temporary GUI Map File中,記得存盤。57測試編程 可以用編寫代碼的方法創(chuàng)建一個完整的腳本或是增強(qiáng)已錄制的腳本。WR自帶一個虛擬編程工具功能生成器(Function Generator),可以快速無錯地在腳本中添加TSL功能。添加時,只需點(diǎn)一個對象或從功能清單上選擇。 可以像普通編程一樣使用變量、控制語句、數(shù)組和自定義功能。584.7 運(yùn)行測試三種運(yùn)行模式Verify 校驗(yàn)?zāi)J剑河糜跈z查應(yīng)用程序;Debug 調(diào)試模式:用于調(diào)試測試腳本;Update 更新模式:用于更新預(yù)期的結(jié)果(以便與實(shí)際運(yùn)行結(jié)果比較)。更改運(yùn)行模式59Verify模式使用該模式檢

32、查用戶的應(yīng)用程序;WinRunner將用戶應(yīng)用程序的當(dāng)前響應(yīng)(輸出)與其預(yù)期響應(yīng)相比較。任何的差異都會被捕獲并存儲為校驗(yàn)結(jié)果;當(dāng)用戶運(yùn)行完一個測試時,WinRunner默認(rèn)會打開測試結(jié)果窗口,以便用戶查看校驗(yàn)結(jié)果。60Debug模式在修改完測試腳本后,通常會執(zhí)行看看是不是順利,有沒有語法或邏輯上的錯誤。WinRunner使用該模式幫助用戶找出腳本中的缺陷;可以逐行執(zhí)行測試腳本;設(shè)定斷點(diǎn);以Watch List檢視變量的值以Debug模式運(yùn)行一個測試與以Verify模式運(yùn)行一個測試基本相同。唯一的區(qū)別在于調(diào)試運(yùn)行的結(jié)果總是存儲于debug文件夾;一旦用戶進(jìn)入Debug模式運(yùn)行測試,運(yùn)行模式會一直

33、保持不變直至用戶手工激活另外一個模式。61Update模式使用該模式更新一個測試的預(yù)期結(jié)果或者創(chuàng)建一個新的預(yù)期結(jié)果文件文件夾;當(dāng)某一測試在update模式運(yùn)行完成后,verify模式再次自動變?yōu)槿笔∵\(yùn)行模式;WinRunner一般將預(yù)期結(jié)果存在exp文件夾,并覆蓋掉先前已有的任何結(jié)果。624.8 檢查GUI對象 檢查單個屬性的值 檢查單個對象 檢查一個窗體中的多個對象 檢查一個窗體中的所有對象 63GUI對象檢查點(diǎn)如何檢查GUI對象;練習(xí)GUI對象檢查點(diǎn);用不同的應(yīng)用程序驗(yàn)證GUI對象檢查點(diǎn)。64如何檢查GUI對象在測試應(yīng)用程序時,通常是透過檢查GUI對象的屬性,來測試功能是否正常。當(dāng)GUI對

34、象的屬性值與預(yù)期的值不符合時,表示有問題產(chǎn)生了。在WR中可以建立GUI檢查點(diǎn),可以檢查:65建立單一GUI對象的檢查點(diǎn)當(dāng)鼠標(biāo)點(diǎn)一下,WR會以預(yù)設(shè)檢查的屬性建立檢查清單,并將檢查點(diǎn)插入到測試腳本當(dāng)鼠標(biāo)點(diǎn)兩下,Check GUI對話窗口會開啟并顯示選取的GUI對象,以及此GUI對象可供檢查的屬性。勾選想要檢查的屬性,WR就會建立檢查清單(checklist),并將檢查點(diǎn)插入到測試腳本6667WR會選取建立檢查點(diǎn)當(dāng)時的屬性值當(dāng)作預(yù)期的值,并且在測試腳本中插入obj_check_gui或win_check_gui(針對GUI對象或窗口對象);執(zhí)行測試腳本,WR會自動比對執(zhí)行時的實(shí)際值與建立檢查點(diǎn)時的預(yù)

35、期值,如果一致,表示檢查點(diǎn)檢查通過,否則,檢查點(diǎn)檢查失敗。68測試結(jié)果窗口69關(guān)于運(yùn)行差異的提示當(dāng)WinRunner以Debug或者Verify模式運(yùn)行測試,如果發(fā)現(xiàn)與預(yù)期結(jié)果不一致的地方,會給出提示:70建立GUI對象檢查點(diǎn)時的建議可以使用createGUI CheckpointFor Multiple Objects,一次檢查窗口中多個或是全部的GUI對象;如果打算在深夜或無人時執(zhí)行測試,可以設(shè)定當(dāng)檢查點(diǎn)不一致時,WR不要顯示訊息以免中斷測試的執(zhí)行;如果想要更新檢查點(diǎn)的預(yù)期值,請以Update模式執(zhí)行一次測試腳本,則WR會以執(zhí)行當(dāng)時截取到的值,覆蓋原本的預(yù)期值,成為新的預(yù)期值。71關(guān)閉提示

36、WinRunner主窗口Settings General Options72練習(xí)1).開啟WR并加載GUI Map File;2).開啟Flight Reservation并登入;3).開始以Context Sensitive模式錄制測試腳本;4).開啟Open Order窗口;5).對Order No.check box建立檢查點(diǎn);(2次點(diǎn)擊)6).輸入訂單編號4;7).對Order No.check box建立另一個檢查點(diǎn);(1次點(diǎn)擊)8).對Customer Namecheck box建立一個檢查點(diǎn); (2次點(diǎn)擊)9).按下OK開啟訂單;停止錄制;保存測試腳本lesson5。73執(zhí)行測試

37、腳本;在另一個版本的Flight Reservation執(zhí)行測試腳本;檢視測試結(jié)果。744.9 圖像檢查點(diǎn)如何檢查應(yīng)用程序的圖像;示范如何建立圖像檢查點(diǎn);用不同的應(yīng)用程序驗(yàn)證圖像檢查點(diǎn);75如何檢查應(yīng)用程序的圖像WR提供圖像的檢查點(diǎn),以象素的方式比對圖像;WR提供三種方式建立圖像檢查點(diǎn):屏幕區(qū)域:以鼠標(biāo)拖拉方式?jīng)Q定圖像檢查點(diǎn)的區(qū)域;窗口:以整個窗口作為圖像檢查點(diǎn)的區(qū)域;GUI object:以整個GUI對象作為圖像檢查點(diǎn)的區(qū)域76建立圖像檢查點(diǎn)開啟WR并加載GUI Map File;開啟Flight Reservation并登入;以Context Sensitive模式錄制測試腳本;開啟訂單、

38、傳真訂單;輸入傳真號碼、移動傳真訂單窗口;切換到Analog錄制模式;在Agent Signature中簽下你的名字;切換到Context Sensitive錄制模式;77建立圖像檢查點(diǎn)(cont.)建立圖像檢查點(diǎn)檢查你的簽名; 選取Bitmap CheckpointFor Object/Window,以鼠標(biāo)點(diǎn)選Agent Signature,測試腳本中插入obj_check_bitmap指令;清除簽名;再建立圖像檢查點(diǎn); 測試腳本中插入obj_check_bitmap指令;關(guān)閉傳真訂單窗口;停止錄制;儲存測試腳本lesson6;將GUI Map File保存(如果使用Global GUI M

39、ap模式的話)78檢視預(yù)期結(jié)果開啟WR測試結(jié)果窗口;檢視WR截取的圖像;關(guān)閉測試結(jié)果窗口。79在另一個版本執(zhí)行測試腳本關(guān)閉Flight Reservation 1A;執(zhí)行Flight Reservation 1B;確認(rèn)目前的測試腳本為剛剛錄制的;確認(rèn)執(zhí)行模式為Verify;點(diǎn)選Run From Top;執(zhí)行時出現(xiàn)mismatch窗口; 檢視測試結(jié)果;8081在另一個版本執(zhí)行測試腳本(cont.)關(guān)閉測試結(jié)果窗口;關(guān)閉Flight Reservation;關(guān)閉測試腳本。82建立圖像檢查點(diǎn)時的建議可以使用createBitmap CheckpointFor Screen Area,以屏幕區(qū)域建立圖

40、像檢查點(diǎn),WR會插入win_check_bitmap指令;如果打算在深夜或無人時執(zhí)行測試,可以設(shè)定當(dāng)檢查點(diǎn)不一致時,WR不要顯示訊息以免中斷測試的執(zhí)行;如果想要更新檢查點(diǎn)的預(yù)期值,請以Update模式執(zhí)行一次測試腳本,則WR會以執(zhí)行當(dāng)時截取到的值,覆蓋原本的預(yù)期值,成為新的預(yù)期值。834.10 同步點(diǎn)何時該使用同步點(diǎn);如何建立同步點(diǎn);執(zhí)行測試并分析結(jié)果。84何時該使用同步點(diǎn)當(dāng)執(zhí)行測試時,所測試的應(yīng)用程序每次操作的響應(yīng)時間并不一定,導(dǎo)致執(zhí)行輸入動作的時間也需要等待。比如以下的動作,會花幾個秒鐘:從數(shù)據(jù)庫取得數(shù)據(jù);等待一個窗口開啟;等待狀態(tài)列成為100;等待某個狀態(tài)訊息出現(xiàn);85何時該使用同步點(diǎn)(

41、cont.)此時,WR會等待一段固定的時間,直到應(yīng)用程序可以接受輸入的動作;等待時間的默認(rèn)值為10s;如果應(yīng)用程序響應(yīng)的時間超過WR等待的時間,則測試執(zhí)行就可能會失敗。86解決辦法增加WR預(yù)設(shè)等待的時間;SenttingsGeneral OptionsRun,將Timeout for checkpoints and CS Statements的值加大,預(yù)設(shè)為10000msec。加大此設(shè)定可能會造成在Context Sensitive的動作變慢。在測試腳本中插入同步點(diǎn)。87如何識別何種問題需要以同步點(diǎn)解決8889加入同步點(diǎn)在測試腳本中插入同步點(diǎn),這個同步點(diǎn)會截取狀態(tài)列上Insert Done的圖

42、像;再次執(zhí)行測試腳本時,WR會等到Insert Done的圖像出現(xiàn)后,才執(zhí)行點(diǎn)選Delete Order的動作。90插入同步點(diǎn)在button_press(“Delete Order”);這一行上面插入一行空白行,并將光標(biāo)移到這一空白行的開頭;點(diǎn)選CreateSynchronizationFor Object/Window Bitmap,將鼠標(biāo)光標(biāo)移到Insert Done的狀態(tài)列上并點(diǎn)選;WR會在測試腳本中插入一行指令:obj_wait_bitmap(“Insert Done”,”Img”,1);可手工將函數(shù)參數(shù)1s改為10s。91執(zhí)行測試腳本并檢視結(jié)果執(zhí)行已加入同步點(diǎn)的測試腳本:確認(rèn)WR與F

43、light Reservation的主窗口開啟;開啟測試腳本;確認(rèn)工具列上顯示Verify模式;點(diǎn)選Run From Top;92測試結(jié)果93練習(xí)錄制測試腳本:在Flight Reservation中建立一張新的訂單,并新增到數(shù)據(jù)庫中;然后刪除剛剛新增的訂單;變更預(yù)設(shè)等待時間的設(shè)定(改為1s);識別何種問題需要以同步點(diǎn)解決;加入同步點(diǎn);執(zhí)行測試腳本并檢視結(jié)果。944.11 使用TSL撰寫測試腳本如何在錄制好的測試腳本中以可視化的方式加入函數(shù);如何在測試腳本中加入判斷式;如何調(diào)試(debug)。95函數(shù)產(chǎn)生器(Function Generator)可視化工具,幫助在測試腳本中快速插入函數(shù);提供兩

44、種使用方式:直接點(diǎn)選GUI對象,讓W(xué)R為你建議合適的函數(shù),然后再把函數(shù)加入測試腳本中;直接依照分類,從函數(shù)清單中挑選要使用的函數(shù)。96錄制基本測試腳本開啟WR并加載GUI Map File;開啟Flight Reservation并登入;開始以Context Sensitive模式錄制測試腳本;開啟訂單在Flight Reservation選取FileOpen Order,勾選Order No ,輸入3后按下OK傳真訂單;點(diǎn)選Cancel關(guān)閉傳真訂單窗口;停止錄制;儲存測試腳本lesson7。97使用函數(shù)產(chǎn)生器在測試腳本中插入函數(shù)在button_press(“Cancel”)腳本前插入一行空白

45、;開啟傳真訂單窗口;取得#Tickets字段的值選取Insert FunctionFor Object/Window函數(shù)產(chǎn)生器會開啟并建議使用edit_get_text函數(shù);變量的預(yù)設(shè)名稱為text,可改成tickets;按下Paste將函數(shù)插入到測試腳本中。取得Ticket Price字段的值98使用函數(shù)產(chǎn)生器在測試腳本中插入函數(shù)(cont.)選取Insert FunctionFor Object/Window函數(shù)產(chǎn)生器會開啟并建議使用edit_get_text函數(shù);變量的預(yù)設(shè)名稱為text,可改成price;按下Paste將函數(shù)插入到測試腳本中。取得Total字段的值選取Insert Fu

46、nctionFor Object/Window函數(shù)產(chǎn)生器會開啟并建議使用edit_get_text函數(shù);變量的預(yù)設(shè)名稱為text,可改成total;按下Paste將函數(shù)插入到測試腳本中。點(diǎn)選Cancel關(guān)閉傳真訂單窗口;儲存測試腳本。99在測試腳本中加入if/else判斷式將光標(biāo)放在最后一個edit_get_text腳本的下一行;加上下列的腳本:If(tickets*price=total)tl_step(“total”,0, “Total is correct.”);elsetl_step(“total”,1, “Total is incorrect.”);在if腳本前加上批注:check

47、that the total ticket price is calculated correctly.儲存測試腳本。100了解tl_step函數(shù)透過加上的tl_step函數(shù),可以自行決定測試腳本中的某段動作是否通過,進(jìn)而決定整個測試腳本的執(zhí)行結(jié)果是否通過;tl_step(“total”,1, “Total is incorrect.”);第一參數(shù)total代表這個動作的名稱;第二參數(shù)為1則WR會判定此動作為失敗,為0則WR會判定此動作為通過;第三參數(shù)Total is incorrect是WR針對此動作顯示的訊息,有意義的描述可幫助你在檢視最后測試結(jié)束時,更了解此動作所代表的意義。101測試腳

48、本的調(diào)試(debug)選取Debug模式;將執(zhí)行箭頭放在測試腳本第一行;逐行執(zhí)行:選取DebugStep,WR開始執(zhí)行第一行逐行執(zhí)行完整個測試腳本;停止執(zhí)行:執(zhí)行完最后一行后,點(diǎn)Stop按鈕檢視測試結(jié)果:選取ToolsTest Results,開啟測試結(jié)果窗口;關(guān)閉測試結(jié)果窗口。102在另一版本FR執(zhí)行測試腳本執(zhí)行Flight Reservation 1B;點(diǎn)選執(zhí)行模式為Verify;點(diǎn)選Run From Top;檢視測試結(jié)果;關(guān)閉測試結(jié)果窗口;關(guān)閉Flight Reservation ;關(guān)閉測試結(jié)果;103練習(xí)錄制基本測試腳本:開啟訂單;開啟傳真訂單窗口;使用函數(shù)產(chǎn)生器在測試腳本中插入函數(shù);

49、在測試腳本中加入判斷式:檢查總金額是否等于機(jī)票單價*機(jī)票張數(shù);調(diào)試測試腳本;在另一版本的FR執(zhí)行測試腳本;檢查結(jié)果是否正確。1044.12 建立數(shù)據(jù)驅(qū)動測試腳本如何使用數(shù)據(jù)驅(qū)動向?qū)?Data Driver Wizard)建立數(shù)據(jù)驅(qū)動測試腳本;如何以regular expression作為對象名稱;如何讓測試腳本重復(fù)執(zhí)行;105如何建立數(shù)據(jù)驅(qū)動(Data-driven)測試腳本為達(dá)到用多組不同的數(shù)據(jù)去執(zhí)行測試腳本的目的,必須將測試腳本轉(zhuǎn)化成數(shù)據(jù)驅(qū)動測試腳本,同時建立一個數(shù)據(jù)表。將測試腳本轉(zhuǎn)化成數(shù)據(jù)驅(qū)動測試腳本(可以使用Data Driver Wizard 或手工修改)步驟:加上開啟及關(guān)閉數(shù)據(jù)表的

50、指令;加上循環(huán)并讀取數(shù)據(jù)表的每一筆數(shù)據(jù);將錄制的固定值與檢查點(diǎn)的值參數(shù)化為數(shù)據(jù)表的字段值。106將測試腳本轉(zhuǎn)化成數(shù)據(jù)驅(qū)動(Data-driven)測試腳本開啟前一節(jié)課產(chǎn)生的測試腳本lesson7;檢查GUI Map File是否已經(jīng)加載;執(zhí)行數(shù)據(jù)驅(qū)動向?qū)c(diǎn)選Tools Data Driver Wizard ,出現(xiàn)如下圖所示的歡迎窗口,選擇下一步;建立數(shù)據(jù)表在Use a new or existing Excel table輸入lesson8.xls,自動建立一個Excel檔案,存儲在測試腳本的目錄下;107108109指定數(shù)據(jù)表的變量名稱Assign a name to the variabl

51、e使用默認(rèn)值table為數(shù)據(jù)表的變量名稱;以數(shù)據(jù)表的變量來代表數(shù)據(jù)表的完整路徑與文件名,只要修改此變量的值就可以用其他的數(shù)據(jù)表取代原本的測試數(shù)據(jù)了。設(shè)定參數(shù)化選項Add statements to create a data-driven test:表示由數(shù)據(jù)驅(qū)動向?qū)ё詣訉⑥D(zhuǎn)成數(shù)據(jù)驅(qū)動測試腳本的指令加到測試腳本中;Parameterize the test此選項表示要做參數(shù)化110選擇要被參數(shù)化的值第一個顯示要參數(shù)化的測試腳本為button_set(“Order No.”,ON);這行腳本是勾選Order No.radio button,不是我們要作參數(shù)化的測試腳本,勾選Do not repl

52、ace this data,按下一步。111112第二個顯示要參數(shù)化的測試腳本為edit_set(“Edit”, “3”); 這行腳本是在Order No.字段中輸入3,就是我們要做參數(shù)化的腳本;在Argument to be replaced字段中顯示要被參數(shù)化的資料為3;在Replace the selected value with data from:下選取A new column,并在字段中輸入 Order_Num,則Data Driver Wizard會在lesson8.xls中新增一欄Order_Num字段,且第一筆數(shù)據(jù)為被參數(shù)化的資料:3。按下一步。113114完成按下Fini

53、sh按鈕, Data Driver Wizard將測試腳本轉(zhuǎn)成數(shù)據(jù)驅(qū)動測試腳本:table=“l(fā)esson8.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_RowData Table開啟數(shù)據(jù)表,可以看到第一欄為Order_Num,且其第一筆資料為3;加上4筆數(shù)據(jù),分別為1、6、8、10,如下圖所示;儲存數(shù)據(jù)表儲存測試腳本11811

54、9以regular expression調(diào)整測試腳本在flight1a.GUI找到Fax Order No.3窗口;修改窗口label屬性;點(diǎn)選Modify按鈕,開啟Modify窗口。120在Physical Description字段中,將label這一行第一個雙引號后加上!,然后將3與前面的空白刪除改成*號。121關(guān)閉Modify窗口將GUI Map File存盤(如果使用Global GUI Map File模式)所謂regular expression就是利用某些字符,來表示特定的字符,例如用*來表示所有的字符。上面就是將傳真窗口的label屬性修改成regular expressio

55、n,以解決找不到窗口的問題。122使用通配符來識別GUI對象符號用途.任何單一字符0-9任何數(shù)字A-Z任何大寫字母a-z任何小寫字母m,f這里m,f可以是任意字符,m,f表示可以是字符m或者f*任何循環(huán)字符(any repetition of previous charactre or expression).*任何字符組成的字符串123修改結(jié)果信息為了讓測試結(jié)果能更有意義,可修改測試腳本的tl_step,使其顯示的信息更有意義修改tl_setptl_step(“total”,0, “Total is correct.”);改為:tl_step(“total”,0,Correct.ticket

56、stickets at $ pricecost$total.);tl_step(“total”,1, “Total is incorrect.”);改為:tl_step(“total”,1, “Error.” tickets”tickets at $ ”price”does not equal $”total”.”);儲存測試腳本lesson8124執(zhí)行測試腳本并分析結(jié)果確認(rèn)Flight 1a已經(jīng)開啟在桌面上;以Verify作為執(zhí)行模式;點(diǎn)選Run From Top;檢視測試結(jié)果,如下圖所示;測試結(jié)果顯示5筆tl_step記錄,每一筆記錄都顯示了票數(shù)、單價、總金額的值。關(guān)閉測試結(jié)果;關(guān)閉Fli

57、ght Reservation;關(guān)閉lesson8測試腳本。125126建立數(shù)據(jù)驅(qū)動腳本時的建議可以只將測試腳本的一部分轉(zhuǎn)成數(shù)據(jù)驅(qū)動測試腳本;可以開啟default.xls然后存儲成其他文檔名,以便使用多個測試數(shù)據(jù)表;GUI/圖像檢查點(diǎn)、圖像同步點(diǎn)、常數(shù)均可參數(shù)化;數(shù)據(jù)表的使用方式與Excel工作表相同,可以在存儲格式中使用公式;127在執(zhí)行數(shù)據(jù)驅(qū)動測試腳本之前,應(yīng)該先檢查整個測試腳本以及其他部分,如GUI對象的屬性等,看看是否有沖突的部分使用regular expression將屬性變動的部分以特殊字符取代;重新設(shè)定GUI Map Configuration,將會變動的屬性排除掉。測試執(zhí)行時

58、并不需要開啟數(shù)據(jù)表監(jiān)視器(data table viewer)。1284.13 文字檢查點(diǎn)(Text checkpoint)如何讀取圖像或非標(biāo)準(zhǔn)GUI對象上的文字;建立一個讀取并驗(yàn)證文字的測試腳本;執(zhí)行測試腳本并分析結(jié)果。提示:要驗(yàn)證標(biāo)準(zhǔn)的GUI對象上的文字,建議使用GUI檢查點(diǎn),以省去手動撰寫測試腳本的不便。129從應(yīng)用程序讀取文字開啟WR并加載GUI Map File;開啟Flight Reservation并登入;確認(rèn)文字識別的設(shè)定選取SettingsGeneral Options,點(diǎn)選Text Recognition,確認(rèn)Timeout for Text Recognition設(shè)定為合理的值,默認(rèn)500,點(diǎn)擊OK。130開始以Context Sensitive模式錄制測試腳本;開啟圖表在Flight Reservation中點(diǎn)選AnalysisGraphs;讀取圖表上的票數(shù)WR中點(diǎn)選CreateGet TextFrom Screen Area;光標(biāo)會變成十字光標(biāo),以左鍵拖拉的方式框住票數(shù)后,再以鼠標(biāo)右鍵結(jié)束操作;WR會插入:obj_get_text(“GS_Drawing”,text

溫馨提示

  • 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

提交評論