手工編寫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幾秒這種方式來等待頁面加載結束。

        相關資料,推薦查閱中國軟件工程網(rjgc.net).
  操作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腳本有很多好處,我在嘗試了錄製和手寫兩種方式之後,最終選擇了手寫的方式,大家不妨也試試,特別是對編碼有興趣的朋友。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章