針對xxx(java開發)軟件進行測試,對winrunner7.0,Rational Robot,Quick Test 進行評測,評測主要包括易用性,擴展性,穩定性等三方面.
xxx登陸功能是使用最頻繁的功能,為了把這部分功能讓測試人員從手工測試中解脫出來,現在進行自動化測試實現。
首先,進行錄制回放登陸操作目的是檢驗三種測試工具的易用性(功能前大與否)程度:
操作的步驟 : 啟動ie,輸入地址,
輸入用戶名密碼,
登陸。
WinRunner 7.0
1. 啟動WinRunner 7.0
2. 錄制上邊的操作步驟
腳本如下
點任務欄,啟動ie
# Shell_TrayWnd
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", "http://192.168.1.42");
輸入賬號密碼
win_type ("html_frame_2","adminjetspeed");
win_mouse_click ("html_frame_2", 566, 33);
win_check_gui("html_frame_2", "list1.ckl", "gui1", 1);
錄制完成后的腳本如上,測試回放發現粉色字體受環境影響很大,所以需要對腳本進行優化,改動后的腳本如下
啟動ie,并且到http://192.168.1.42的地址
web_browser_invoke(IE,"http://192.168.1.42");
win_mouse_click ("html_frame_2", 402, 36);
win_type ("html_frame_2","adminjetspeed");
win_mouse_click ("html_frame_2", 566, 33);
win_check_gui("html_frame_2", "list1.ckl", "gui1", 1);
替換腳本為一個函數 web_browser_invoke(IE,"http://192.168.1.42")
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 "http://192.168.1.42", "WindowTag=WEBBrowser"
//讓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文本框中的文本進行加密
Browser("Dynaweb EPS").Page("Dynaweb EPS_2").WebEdit("password").SetSecure "3fe6931be2a331101ac0bbbc"
//調用對象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
'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
易用性總結:
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,"http://192.168.1.42");
//讓窗口最大化,坐標固定了,這里不考慮機器分辨率的問題
win_max("Browser main Window");
win_mouse_click ("html_frame_2", 402, 36);
win_type ("html_frame_2","admin
win_mouse_click ("html_frame_2", 566, 33);
win_check_gui("html_frame_2", "list1.ckl", "gui1", 1);
錄制的腳本基本回放通過(這里沒有考慮分辨率的情況,否則腳本開發難度增大。)這種方法不是根本解決方法。
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.kjueaiud.com/