QTP對象庫管理和編寫腳本 軟件測試
使用QTP錄制一些腳本再回放,這不難,難的是一個測試團隊共同開發腳本,并能不斷的完善腳本,創建一個結構化的自動測試腳本體系。這篇文章重點討論的是,如何管理QTP的對象倉庫,以便能讓對象倉庫易于維護、管理。
如果只是簡單的錄制、回放腳本,可能感覺不到對象倉庫的存在。但是要做到QTP腳本的結構化管理,就必須對QTP的對象倉庫進行嚴格的管理。
在實際工作中我們發現,QTP腳本做好后絕不是一成不變的,而是隨著需求和頁面的變化,需要不斷修改的。如果每次修改腳本的時候,都重新錄制腳本,成本極高,所以最有效的方法是,先修改對象倉庫,然后修改腳本,以適應新的系統。
如果對象倉庫里的管理比較混亂的話,修改腳本時就會遭受地獄般的痛苦,比如n多對象全堆在一起根本理不出頭緒,對象的命名不知所云,找不到自己需要的對象等等。下面我們講一下如何管理對象倉庫,避免這些問題。
先介紹一下對象倉庫中的對象層次,主要分為3個層次
1、Browser瀏覽器
2、Page頁面
3、頁面中的各種對象,比如Link、Button
Browser對應的是已經打開的IE窗口對象,Page對應的是不同的網頁,比如登錄首頁是一個Page,登錄成功后跳轉到我的淘寶頁面,這就是另一個Page。而頁面中的各種對象就比較好理解了,圖片、按鈕、鏈接都是對象。
了解了對象層次,我們再講一下命名。如果QTP在錄制過程中自動記錄對象,命名是非常亂的,缺乏邏輯性,經?吹揭粋Browser下面有n多“淘寶網_1”、“淘寶網_2”這樣的Page,這對我們以后的管理非常不利。與其修改這些命名,我們不如用一種思路更清晰的方式,手動添加對象。
QTP中有一個工具實現了對象倉庫的管理,Object Repository Manager,我們用它來添加對象。操作很簡單,直接點擊toolbar中的Add Object按鈕,然后在web上點擊你需要添加的對象即可,添加過后再修改名稱。更新對象也比較簡單,先選中需要更新的對象,然后點擊Update from Application即可。
這項工作其實可以在系統頁面出來以后就開始做,我們一邊進行手工測試,一邊把對象添加起來,為后面的腳本開發做準備。這時暫時不制作腳本。
總結一下,對象倉庫的管理要滿足以下幾個原則:
1、每個Browser下的Page不要太多,最好不要超過5個,即使我們的系統都在同一個IE窗口下(沒有彈出新IE),我們也可以分幾個Browser管理,把業務上關聯較強的幾個Page放在一個Browser下;
2、每個對象都按照所代表的業務屬性命名,最好用中文,不要出現一些難理解的字符,比如abc這樣的。
3、盡量避免在一個tsr文件中堆放過多的對象,最好根據業務,把對象分為幾個tsr文件保存。這里沒有統一標準,以每個tsr文件結構清晰為宜。
現在我們完成了對象倉庫的整理,好,可以開始制作腳本了?墒菃栴}來了,錄制腳本的時候,QTP能不能自動和這些對象對應上呢?QTP會不會又自動添加一堆對象進來呢?別擔心,不會出現這個問題,因為我們將進行一場腳本編寫的革命:放棄“錄制腳本”這種傳統的腳本編寫方法,完全手工編寫腳本
我們有了一套結構清楚的對象倉庫以后,我們就可以輕松的手工編寫QTP腳本了。
這里可能有人會問,QTP的錄制功能不是很強大么,為什么還要自己手寫腳本,這樣是不是更麻煩。我先說一下我對手寫測試腳本的感受,供大家參考。首先,如果我們整理好對象倉庫,再錄制腳本,QTP就會又自動生成一批新的對象,命名很亂,再修改替換太費事;其次,錄制腳本的過程如果出現問題,再重來,很麻煩;最后,也是最重要的,手寫腳本時思路非常清楚,而且寫完再運行,感覺非常好,呵呵。
與編寫腳本相比,腳本的維護工作同樣很重要,而且維護腳本一般都是直接修改腳本,并不會去重新錄制,所以開始的時候就用手寫的方式,維護起來就會更輕松。
編寫QTP腳本其實是比較簡單、快速的。我們首先創建一個Test,然后把所有相關對象倉庫的tsr文件和vbs文件添加到這個Test里面,下面就可以開始寫了。寫腳本大致會遇到這么幾種情況:
文章來源于領測軟件測試網 http://www.kjueaiud.com/