QTP 保留物件

2022-08-10 10:06:16 字數 4498 閱讀 1108

1. 常用保留物件(utility objects)

保留物件:所謂qtp保留物件就是qtp本身預留的一些可用物件。

通俗些講就是,當開啟qtp時它就已經把這些物件給例項化了,直到關閉qtp後,這些保留物件的例項才會終止。這些保留物件都是qtp事先封裝好的常用操作物件,無需像開源軟體那樣都需要自己來搭建這些物件和類庫,一切都是現成的!在保留物件中有些是可見的,有些是隱藏的(需要人工開啟),具體如何檢視隱藏保留物件會在下乙個小節中詳細進行講解。

那麼保留物件具體在qtp中如何呈現呢?當開啟qtp後,按f7鍵,彈出了步驟生成器視窗,如下圖所示

每個保留物件都是乙個com元件,都可自行建立,其中很多的保留物件在做例項專案測試的時候都是非常實用的,接下來就為大家介紹幾個常用的保留物件。

1)crypt:加密模組保留物件

實現如下所示:

pwstr = crypt.encrypt("mercury")

dialog("login").winedit("agent name:").set "mercury"

dialog("login").winedit("password:").setsecure pwstr

dialog("login").winbutton("ok").click

分析:利用crypt保留物件可以把字串自動轉化為加密形式的字樣,並且每次動態生成的加密密碼都是不一樣的,其實,此功能就是password encoder

2)desktop:桌面保留物件

實現如下所示:

desktop.capturebitmap"d:\1.bmp"

分析:通常此物件用於出錯時的截圖,使用此物件來截圖非常方便,只需給定生成截圖的路徑即可,這個在前面的章節也用過。

3)mercurytimes:計時保留物件

實現如下所示:

『計時開始

mercurytimers("loginpage_mainpage").start

'******************************************

' login  mainpage

wait2

'******************************************

『計時結束

mercurytimers("loginpage_mainpage").stop

『獲取總共耗時時間

print mercurytimers("loginpage_mainpage").elapsedtime

分析:mercurytimes保留物件是乙個非常實用的物件,它對於測試應用程式的效能是非常有幫助的,此物件也是在qtp 9.2版本才開始加入的。

4)pathfinder:路徑保留物件

實現如下所示:

msgboxpathfinder.locate("default.xls")

分析:pathfinder在qtp中的可見方法只有locate,其引數為檔名稱,其作用主要是獲取到引數中的檔案的完整絕對路徑。

5)randomnumber:隨機數保留物件

實現如下所示:

print randomnumber.value(0, 100)

分析:執行以上指令碼會得到乙個0~100的隨機數。注意,此處包含0和100。由於此處value是預設屬性,因此可以省略。

2. 隱藏保留物件

上一小節已經介紹了一些常用的保留物件,但其實保留物件遠遠不止這些,qtp本身在步驟生成器中還隱藏了一些保留物件,如registeruserfunc、webutil、unregisteruserfunc等,這些保留物件都是qtp的隱藏模式保留物件。你會發現步驟生成器中根本找不到這些保留物件,但是這些物件確實是真實存在的,比如:

● webutil:此物件在qtp的幫助文件裡以及物件瀏覽器裡都是找不到的,可以說是qtp的乙個隱藏物件。

我們只需要在專家檢視中輸入webutil再加乙個「點」,就會展開許多的方法。

其實隱藏保留物件都可在登錄檔中檢視:

執行「regedit」進入登錄檔,依次單擊hkey_current_user→software→mercury interacitve→quicktest professional→mictest→reservedobjects下的所有項如下圖所示:

可以看到qtp中所有存在的保留物件,不管隱藏的還是非隱藏的保留物件都可以直接找到。其中每一項代表著乙個保留物件,在此目錄中的每一項下的key包含progid。progid代表著保留物件建立的com字串,例如:

setoregisterfunc =createobject(「mercury.registeruserfunc」)

這些保留物件基本上都可以通過以上的方式來建立,不過有些只能在qtp中進行建立。

注意:當在qtp中建立這些物件時,也就意味著自行建立了乙個保留物件的例項,而此例項與原來qtp預設例項化的保留物件是沒有任何關係的。

3.  自定義保留物件

我們可以將所有使用的方法封裝成dll檔案,然後通過com機制註冊到系統中,註冊自定義保留物件機制來完成物件的定義。

step 1.在vb環境下新建乙個dll檔案

1)開啟vb6.0環境,選擇activex dll, 簡單設計乙個函式和乙個過程,**如下:

public function comparevalue(para1, para2)

if para1 = para2 then

msgbox "輸入的兩個引數相等", vbinformation + vbokonly, "提示"

else

msgbox "輸入的兩個引數不相等", vbinformation + vbokonly, "提示"

end if

end function

2) 設定工程屬性

類名,設定為:classname,註冊自定義保留物件用到。

工程名,設定為:prjname,註冊自定義保留物件用到。

3) 生成檔案:prjname.dll

點選檔案——>生成 prjname.dll

step 2. 註冊dll檔案為標準的com元件

如果檔案放到f盤下,那執行:regsvr32 f:\prjname.dll就可以完成註冊,撤銷註冊執行:regsvr32 /u f:\prjname.dll。註冊完成後,登錄檔hkey_classes_root中查詢prjname.classname

step 3. 註冊自定義qtp保留物件

開啟登錄檔,定位註冊項:hkey_current_user→software→mercury interacitve→quicktest

professional→mictest→reservedobjects

新增乙個名為「myobject」的註冊項;

新增兩個「reg_sz」型別的註冊項,分別為:

progid:準備建立的com 物件的id,在這裡就是dictionary 物件所對應的com 對 象名 「prjname.classname」。這個就是前面提到的vb中的工程名、類名。 uiname:qtp指向保留物件的名

字,在這裡輸入「myobject」

新增乙個型別為「reg_dword」的註冊項;

visiblemode:設定dword 值為2,用於控制自動完成(auto-complete)和**智慧型感知(intelligence)。

也可以按下通過執行下面的reg檔案的方式來註冊:

windows registry editor version 5.00

[hkey_current_user\software\mercury interactive\quicktest professional\mictest\reservedobjects\reg_sz]

"progid"="prjname.classname"

"uiname"="myobject"

"visiblemode"=dword:00000002

step4. 使用自定義qtp保留物件

做完以上設定後,重新啟動qtp, 在insert選單中選擇step generator,然後選擇utility objects,你可以在object中看到我們定義的保留物件.

QTP常用保留物件

保留物件 所謂qtp保留物件就是qtp本身預留的一些可用物件。通俗來說就是,當開啟qtp時它就已經把這些物件給例項化了,知道關閉qtp後,這些保留物件的例項才會終止。這些保留物件都是qtp事先封裝好的常用操作物件,都是現成的。保留物件中有些是可見的,有些是隱藏的 需要手工開啟 保留物件在qtp中的呈...

QTP內部物件

物件一覽,詳細參考qtp的幫助文件。crypt object datatable object description object dotnetfactory object dtparameter object dtsheet object environment object extern ob...

QTP虛擬物件

最近在跑qtp,各種頭疼,遇到好多問題,解決了不少,還有一些等待著解決,先來說一下已經解決的吧。在錄製qtp時,有些控制項可能不被qtp支援,則可以考慮使用虛擬物件來解決問題,當然還有其他的方法,但我目前還是個菜鳥,以後發現了再繼續補充。下面來說一下使用虛擬物件做qtp測試需要注意些什麼 1,使用虛...