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.00step4. 使用自定義qtp保留物件[hkey_current_user\software\mercury interactive\quicktest professional\mictest\reservedobjects\reg_sz]
"progid"="prjname.classname"
"uiname"="myobject"
"visiblemode"=dword:00000002
做完以上設定後,重新啟動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,使用虛...