WinRunner 腳本標準格式
目錄結構
存放目錄要求:
1、根目錄與項目名稱相同,如江西移動BOSS 測試目錄為JXBOSS
2、根目錄下應該是按子項目存放,如SALES、ACCOUNT。如果有公共腳本,存放在Share 目錄下面
3、子項目下面應該根據功能/TestCase 來存放,如果有公共腳本也應該存放在Share 目錄下
4、為存取及備份方便,目錄不能使用中文。使用的名稱應該盡量與開發保持一致
5、GUI 文件應該存放在腳本的同一目錄,并且名稱相同
6、正確性測試(使用完全正確數據來檢查程序功能是否完成)目錄名稱規定為validity
以下是一個目錄例子
JxBoss
-Sales
--ChangeSimCard
--validity
--CheckSimNoExistAnIdError
--Share
--Share
-Account
腳本要求
注釋要求
腳本創建及修改說明注釋
每個腳本的開頭注釋格式如下:
#腳本名稱:文件名稱
#創建人:創建人
#創建日期:格式為YYYY/MM/DD
#功能:腳本完成的功能描述
#運行前要求:運行前的要打開的窗口及狀態要求、數據庫中的數據要求、被測試程序運行目錄等
#參考文檔:描述錄制代碼是參考的有關設計測試文檔
#修改歷史:
# 修改人:
# 修改時間:格式為YYYY/MM/DD
# 主要修改內容:
注意創建人及修改人必須是中文完整姓名,不允許使用其它任何名稱。運行前的要求一定要描述清楚子功能注釋在各小段功能前應該加入功能注釋,注意不能只是WinRunner 自己產生的注釋如:
# insert a record # Flight Reservation set_window ("Flight Reservation", 1); obj_mouse_click ("Button", 13, 16, LEFT); obj_type ("MSMaskWndClass","101002"); list_select_item ("Fly From:", "London"); # Item Number 2; list_select_item ("Fly To:", "Paris"); # Item Number 3; obj_mouse_click ("FLIGHT", 56, 22, LEFT); |
注釋可以使用英文或中文。
修改代碼說明注釋
在具體修改的代碼附近應該加入如下注釋
#修改人
#修改日期
#修改原因/增加功能
注釋可以放在一行中,簡單修改可以忽略“修改原因/增加功能”,復雜修改應該不能忽略(簡單及復雜標準待定)
代碼要求
路徑要求
代碼中使用的路徑都應該使用相對路徑,不允許出現類似“d:\\”、“\\”下的代碼,應該使用類似“..\\..\\”的代碼。
在Script 里面打開和關閉GUI各Script 的GUI 的文件應該分開保存在與Script 保存在同一個目錄,應該使用用GUI_load 在SCRIPT 開始以前就裝載GUI,在SCRIPT 開始增加:
if (GUI_load(".\\login.gui")!=0) { pause ("Can't load login.gui"); texit; } |
在SCRIPT 完畢的時候加入
GUI_close(".\\login.gui");
關閉GUI,注意代碼中的路徑一定要使用相對路徑。
錯誤報告
在使用錯誤報告的時候,應該注意包括出錯的腳本文件名稱,這樣當腳本文件被其他腳本調用時候,也能很清楚在什么地方沒有通過。Report_msg 的參數格式定義為“文件名稱:錯誤描述”。同時鑒于WinRunner 的Check 函數不能提供清楚的錯誤報告,要求錯誤報告使用以方式
if ( win_check_bitmap("Flight Reservations", "Img1", 1)!=E_OK) { report_msg("DateCheck:月份輸入錯誤提示不對!"); } |
附件:一個完整的例子
#腳本名稱:DateCheck
#創建人:謝慧強
#創建日期:2002/09/08
#功能:檢查FLIGHTA 程序在輸入錯誤月份的時候提示是否正確
#運行前要求:要求FLIGHA 進入定票窗口(New_Order 狀態)且無任何數據輸入
# 或者FLIGHTA 沒有運行,這時候要求FLIGHTA。EXE 位
# 于E:\\Program Files\\MercuryInteractive\\WinRunner\\samples\\flight\\app\\flight1a.exe
#參考文檔:無
#修改歷史:
# 修改人:謝慧強
# 修改時間:2002/09/09
# 主要修改內容:不采用位圖方式,改為直接判斷字符串內容
#load gui file #Flight Reservation if (GUI_load(".\\DateCheck.gui")!=0) { report_msg ("DataCheck:Can't load .\\DateCheck.gui"); texit; } #Check windows exists ,if don't exist ,call login to open it. # Flight Reservation if (win_exists("Flight Reservation")!=E_OK){ #pause ("Windows Flight Reservation don't exist"); #texit; call "..\\login\\login"(); } #input error month win_activate ("Flight Reservation"); set_window ("Flight Reservation", 3); obj_mouse_drag ("Button_4", 17, 6, 17, 7, LEFT); obj_type ("MSMaskWndClass","301212"); list_select_item ("Fly From:", "Denver"); # Item Number 0; #check message bitmap # Flight Reservations_1 set_window ("Flight Reservations", 3); #2002/09/09 謝慧強 #if ( win_check_bitmap("Flight Reservations", "Img1", 1)!=E_OK) #static_check_info("Invalid month Entered.The month must be greater than 01 and less than 12.(static)","enabled",1); if (static_check_info("CheckMessage","label","Invalid month Entered.The month must be greater than 01 and less than 12.")!=E_OK) #2002/09/09 謝慧強修改結束 { report_msg("DateCheck:月份輸入錯誤提示不對!"); } button_press ("確定"); #close gui file GUI_close(".\\DateCheck.gui"); |
原文轉自:http://www.anti-gravitydesign.com