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