針對xxx(java開發)軟件進行測試,對winrunner7.0,Rational Robot,Quick Test 進行評測,評測主要包括易用性,擴展性,穩定性等三方面.
xxx登陸功能是使用最頻繁的功能,為了把這部分功能讓測試人員從手工測試中解脫出來,現在進行自動化測試實現。
首先,進行錄制回放登陸操作目的是檢驗三種測試工具的易用性(功能前大與否)程度:
操作的步驟 : 啟動ie,輸入地址,
輸入用戶名密碼,
登陸。
WinRunner 7.0
1. 啟動WinRunner 7.0
2. 錄制上邊的操作步驟
腳本如下
點任務欄,啟動ie
# Shell_TrayWnd 輸入賬號密碼 win_type ("html_frame_2","admin 錄制完成后的腳本如上,測試回放發現粉色字體受環境影響很大,所以需要對腳本進行優化,改動后的腳本如下 啟動ie,并且到http://192.168.1.42的地址 web_browser_invoke(IE,"
win_mouse_click ("html_frame_2", 402, 36); 替換腳本為一個函數 web_browser_invoke(IE,"
3.回放 測試通過 替換原因 一.上邊粉色部分腳本隨機性較大,如果腳本移植到其他測試機器上,由于測試環境的改變(假如任務欄沒有快捷方式圖標,粉色腳本將無法回放下去),導致無法執行。替換為ie啟動函數,不管ie安裝在任何地方可以直接啟動。 二.進行腳本優化,避免錯誤,沒有修改前的腳本太冗長,修改后腳本減少,功能穩定。 Rational Robot: 1. 啟動robot 2. 錄制操作 腳本如下: Sub Main Dim Result As Integer Dim Temp as Integer //啟動ie,連接到http://192.168.1.42 StartBrowser "
//讓ie窗口獲得焦點 Window SetContext, "WindowTag=WEBBrowser", "" //打開新的頁面 Browser NewPage,"HTMLTitle=Dynaweb EPS 2003企業門戶服務器","" //點用戶名文本框 EditBox Click, "Name=username", "Coords=35,12" //輸入用戶名密碼 InputKeys "admin{TAB}jetspeed" // 點登陸 PushButton Click, "Name=submit" //進入新頁面 Browser NewPage,"HTMLTitle=Dynaweb EPS 2003企業門戶服務器","" // 點退出連接 HTMLImage Click, "Index=7", "Coords=11,7" //關閉ie Window CloseWin, "", "" End Sub 3.回放 測試通過 Quick Test 6.5 1. 啟動quick test 2. 錄制操作 腳本如下 //打開browser對象 object (page是個對象)方法的object(webedit也是個方法)的set方法,意思就是設置文本框username,內容為admin Browser("Dynaweb EPS").Page("Dynaweb EPS_2").WebEdit("username").Set "admin" //同上,這回調用的是setsecure方法,作用是將password文本框中的文本進行加密 //調用對象webbutton對象的click方法 Browser("Dynaweb EPS").Page("Dynaweb EPS_2").WebButton("v{ _U ").Click //調用Image對象的click方法,目的退出 Browser("Dynaweb EPS").Page("Dynaweb EPS_3").Image("T_ S y R 梑 g h_ {~ ").Click //等待頁面操作完畢 易用性總結: 1. 操作簡單但各個腳本都需要進行二次開發 2. 腳本語言的異同: Winrunner 腳本支持c語言 Robot腳本支持vb腳本(可以擴展腳本語言支持 其他如 perl,java等語言)使測試人員選擇度很大 Quick test腳本支持vbScript腳本 一. 學習腳本:robot和quick test為vb語言,容易掌握,winrunner腳本為c語言,掌握有難度,短期內提高對測試人員要求比較高。 二. 調試腳本:robot腳本支持step,animate等調式方式,winrunner和quick test支持step等幾種調試方式,相互比較來看robot調試功能強大,比較直觀。 三. 測試環境兼容性: 改變測試環境配置,將ie打開后變化窗口大小,關閉,重新運行測試腳本。 Winrunner腳本回放失敗,其他兩種工具測試回放成功,對比發現由于winrunner腳本依靠坐標來確認對象位置,而robot和quick test是以對象來確認。穩定性上后兩種測試工具更加占優。 如:winrunner腳本中函數 win_mouse_click ("html_frame_2", 566, 33)以坐標來記錄點擊位置,當對象位置改變,腳本將無法執行。 針對winrunner有兩種解決對象識別的方法: 1.坐標固定:啟動ie后,使ie窗口最大化,窗口坐標得到固定,修改腳本后如下 web_browser_invoke(IE,"
//讓窗口最大化,坐標固定了,這里不考慮機器分辨率的問題 win_mouse_click ("html_frame_2", 402, 36); 錄制的腳本基本回放通過(這里沒有考慮分辨率的情況,否則腳本開發難度增大。)這種方法不是根本解決方法。 2.讓winrunner認識對象 解決方法是開發dll讓winrunner引用,windows提供了mshtml對象,借用他可以實現winrunner認識對象。這里我用word的開發環境簡單實現這個功能動態添加用戶名密碼(可以改寫編譯成dll給winrunner引用)。 主要代碼(vb版本): 思路:ie加載網頁后,枚舉所有元素對象,找到要找的元素,然后賦值。這里是找username和password文本框,把用戶名密碼添加進去。 Dim hdoc As HTMLDocument Dim eleColl As IHTMLElementCollection Dim sElement As IHTMLElement Dim i As Integer Set hdoc = WebBrowser1.Document Set eleColl = hdoc.all For Each sElement In eleColl If sElement.isTextEdit Then If sElement.outerHTML = "" Then sElement.setAttribute "value", "admin" End If If sElement.outerHTML = "" Then sElement.setAttribute "value", "jetspeed" End If End If Next 同理可以實現winrunner識別網頁任何對象。(自己開發測試工具) 原文轉自:http://www.anti-gravitydesign.com
set_window ("Shell_TrayWnd", 3);
toolbar_button_press ("ToolbarWindow32_0", "T/ R¨ Internet Explorer mO ‰È Vh "); # Button Number 0;
地址欄輸入地址
# Browser Main Window_1
set_window ("Browser Main Window_1", 14);
edit_set ("browser_main_edit_location", "
win_mouse_click ("html_frame_2", 566, 33);
win_check_gui("html_frame_2", "list1.ckl", "gui1", 1);
win_type ("html_frame_2","admin
win_mouse_click ("html_frame_2", 566, 33);
win_check_gui("html_frame_2", "list1.ckl", "gui1", 1);
Browser("Dynaweb EPS").Page("Dynaweb EPS_2").WebEdit("password").SetSecure "3fe6931be2a331101ac0bbbc"
'Browser("Dynaweb EPS").Page("Dynaweb EPS_3").Link("2333").Click
Browser("Dynaweb EPS").Page("Dynaweb EPS_4").Image("logout").Click
Browser("Dynaweb EPS").Page("Dynaweb EPS_5").Sync
win_max("Browser main Window");
win_type ("html_frame_2","admin
win_mouse_click ("html_frame_2", 566, 33);
win_check_gui("html_frame_2", "list1.ckl", "gui1", 1);