手工編寫QTP測試腳本

原文地址

在上一篇《管理QTP測試腳本的對象倉庫》中,我們討論瞭如何建立一個結構化的,易於維護的對象倉庫系統。我們這樣做不僅僅是爲了維護方便,更重要的一點,當我們有了一套結構清楚的對象倉庫以後,我們就可以輕鬆的手工編寫QTP腳本了。
 
這裏可能有人會問,QTP的錄製功能不是很強大麼,爲什麼還要自己手寫腳本,這樣是不是更麻煩。我先說一下我對手寫測試腳本的感受,供大家參考。首先,如果我們整理好對象倉庫,再錄製腳本,QTP就會又自動生成一批新的對象,命名很亂,再修改替換太費事;其次,錄製腳本的過程如果出現問題,再重來,很麻煩;最後,也是最重要的,手寫腳本時思路非常清楚,而且寫完再運行,感覺非常好,呵呵。
 
與編寫腳本相比,腳本的維護工作同樣很重要,而且維護腳本一般都是直接修改腳本,並不會去重新錄製,所以開始的時候就用手寫的方式,維護起來就會更輕鬆。
 
編寫QTP腳本其實是比較簡單、快速的。我們首先創建一個Test,然後把所有相關對象倉庫的tsr文件和vbs文件添加到這個Test裏面,下面就可以開始寫了。寫腳本大致會遇到這麼幾種情況:
1、調用vbs函數
2、調用其他Test
3、打開指定的URL
4、操作頁面Page上的控件
5、添加CheckPoint
6、其他邏輯運算
 
我們分別講一下。調用vbs函數比較簡單,直接Call [函數名]。如果要調用其他的Test,那麼首先點擊Call to Existing Test,然後在QC中選擇一個可以複用的Test,例如登錄。如果登錄的Test有參數,那麼可以這樣寫:
RunAction "Action1 [login]", oneIteration , "張三"
 
下面的腳本要操作對象倉庫了。我們先寫出“Browser(”,這時就會發現,對象倉庫裏面的Browser對象都列了出來,然後我們選擇需要的那個B對象就好。我們先從打開指定URL的腳本開始講,打開指定的URL使用的機會比較多,特別是在Test的開始。一般我們這樣寫
Browser("登錄").Navigate "指定的URL"
 
這裏的“登錄”是一個Browser對象,一般我們要選業務上符合的B對象。寫完這句以後要再寫:
Browser("登錄").Page("登錄首頁").Sync
 
這句的意思是等待“登錄首頁”這個Page加載完畢,注意不要用Wait幾秒這種方式來等待頁面加載結束。
 
操作Page的對象是比較簡單的,由於控件的類型太多,比如下拉菜單WebList、文本輸入框WebEdit、按鈕WebButton,這裏就不一一說明了,大家看下面的一些例子吧:
Browser("購買直充").Page("購買直充").WebList("遊戲區").Select 1
Browser("購買直充").Page("購買直充").WebEdit("PlayerName").Set "abc"
Browser("購買直充").Page("購買直充").WebEdit("PlayerNameAgain").Set "abc"
Browser("購買直充").Page("購買直充").WebEdit("CheckCode").Set "8888"
Browser("購買直充").Page("購買直充").Image("Submit").Click
 
如果遇到問題,不知道怎麼寫,可以先用錄製的方式,生成一些腳本,然後仿照腳本寫就可以了。另外在Page下面有可能會有對象,這個沒關係,就像這樣寫即可:
Browser("我的直充").Page("我的直充").("直充入口").Image("立即直充").Click
 
添加CheckPoint要稍微複雜一些,比如說我們要檢查Page上的一個WebElement的顯示字符是否正確,那麼首選要把這個WebElement完整的寫在Test裏面,這一句後面需要刪除:
Browser("購買直充").Page("購買直充").WebElement("購買結果").Click
 
然後右擊這一行腳本,選擇Insert Standard CheckPoint,在彈出的CP屬性窗口,設置CP的細節。確認後腳本就會自動生成一行:
Browser("購買直充").Page("購買直充").WebElement("購買結果").Check CheckPoint("購買結果")
 
最後再把上面那一行刪除就可以了。
 
其他的邏輯運算,例如循環、判斷,請參考vbs腳本語法,這裏不說了。
 
總之,手動編寫QTP腳本有很多好處,我在嘗試了錄製和手寫兩種方式之後,最終選擇了手寫的方式,大家不妨也試試,特別是對編碼有興趣的同學。

發佈了10 篇原創文章 · 獲贊 7 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章