領測軟件測試網
在上一篇《管理
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下面有可能會有Frame對象,這個沒關系,就像這樣寫即可: Browser("我的直充").Page("我的直充").Frame("直充入口").Image("立即直充").Click 添加CheckPoint要稍微復雜一些,比如說我們要檢查Page上的一個WebElement的顯示字符是否正確,那么首選要把這個WebElement完整的寫在Test里面,這一句后面需要刪除: Browser("購買直充").Page("購買直充").WebElement("購買結果").Click 然后右擊這一行腳本,選擇Insert Standard CheckPoint,在彈出的CP屬性窗口,設置CP的細節。確認后腳本就會自動生成一行: Browser("購買直充").Page("購買直充").WebElement("購買結果").Check CheckPoint("購買結果") 最后再把上面那一行刪除就可以了。 其他的邏輯運算,例如循環、判斷,請參考vbs腳本語法,這里不說了。 總之,手動編寫QTP腳本有很多好處,我在嘗試了錄制和手寫兩種方式之后,最終選擇了手寫的方式,大家不妨也試試,特別是對編碼有興趣的同學。
文章來源于領測軟件測試網 http://www.kjueaiud.com/
TAG:
qtp
QTP
編寫
腳本
手工