QTP

]QTP 小技巧

1.在腳本運行過程中屏蔽鼠標鍵盤輸入
 SystemUtil.BlockInput 開始處
 這裏是你的腳本
 SystemUtil.UnblockInput 結尾處

---------------------------------------

補充關閉進程的方法:Systemutil.closeprocessbyname "GreenBrowser.exe"
2.檢查頁面對象是否可用
 yanzheng=Browser("電子政務").Page("::::行政審批系統::::").Frame("10_3").WebButton("驗證").GetTOProperty("disabled")
 用GetTOProperty("disabled")獲得對象disabled 的屬性值,如果爲1,則不可用,爲可用
3.WebTable index屬性

今天才發現原來,WebTable原來還有index這個屬性,設置了index屬性後問題得以解決。不知道咱們搞的,公司的那個系統在找WebTable時,增加對個對屬性去匹配,搞了好久才發現原來是自己需要的WebTable有多個,添加index屬性後,問題得以解決。

4.WebTable RowCount重新獲值
 在第一次獲得RowCount值後,比如要執行刪除操作,這時要重新獲取表格的屬性值(用set ...),這樣RowCount才能變化,否則還是之前(第一次)的值。

5.qtp識別的mandatoryassistive屬性

qtp識別屬性有mandatoryassistive,如果是mandatory 屬性變了就識別不到,assistive屬性變了就不一定

6.qtp執行頁面刷新

方法1,使用IE上自帶的刷新按鈕
方法2,使用Refresh函數
Sub Refresh_Example()
'The following example uses the Refresh method to refresh the
'objects in the Mercury Tours browser.
Browser("Mercury Tours").Refresh
End Sub

7.對象獲得焦點

Browser("審批工作平臺").Page("工作平臺").WebEdit("user_pass").Object.focus

一定是Object.focus而不是focus

8.QTPLoadrunner獲取系統內置環境變量方法(通用)

os=environment.Value("OS")
provesi=environment.Value("ProductVer")
hostname=environment.Value("LocalHostName")
msgbox os &","& provesi &","& hostname

9.通過瀏覽器打開網址操作

systemutil.run "iexplore.exe","http://mail.163.com","","",2

注意 2 爲最小化3爲最大化。

10.編輯共享對象對象庫

通過Resources-Object Repository Manager,進入後,打開共享的對象庫文件,默認對象庫是不能編輯的,要在file菜單中點擊 enable editing,就可以編輯了!

11。Call to copy of Action與call existing Action的區別

QTP中可以使用兩種調用其他Action的方法分別是call to copy of Actioncall existing Action,他們之間的區別如下:

兩種方式都是將以被保存的Action調用過來,但是copy Action是將原本Action中的所有屬性,及其參數值調用過來,並且可以在其上隨意的更改,而且這些更改並不影響源Action,call existing Action雖然也是將源Action的所有屬性及其參數值都調用過來,但是你不能更改其中的任何步驟和參數值,如果一定要更改,需要重新打開源Action,在源Action上進行更改,所作的改動將自動體現在調用的Action上。

12.QTP中計算腳本執行時間方法

如果要計算一個action或者要計算一段腳本執行的時間,這裏的解決方法是:添加事物開始Services.StartTransaction "trans_test"和 Services.EndTransaction "trans_test",運行完成後,在result中就可以看到該事務的執行時間。如圖:


13.設置可重用檢查點(個人感覺有點創意)

方法一:

將檢查點全用描述性編程定義成function函數,然後每次都調用這些function

方法二:

1)錄製可重用檢查點,QTP record and run setting設爲錄製當前頁,開始錄製,不錄製步驟,直接在錄製過程中添加檢查點,將這個只有檢查點的Action設爲可重用。(2)調用可重用檢查點,在第一步錄製好的腳本中調用這個可重用檢查點,首先選中需要添加檢查點的步驟,然後選擇insertcall existing Action 選擇after current step3)檢查點添加到步驟之後,通過這種發放這個檢查點可以被多次使用。

14.關於Reporter.filter用法

問題描述:在你查看QTPreporter時當有參數化時,reporter右邊的選擇樹會很長,即使看起來很不方便,也不利於查找錯誤。

處理流程:(1)錄製腳本(2)在expert view中設定

Reporter.filter分爲四個屬性:
0或者rfenableall 所有的報告都顯示在test result
1或者enableerrorandwarning錯誤和警告信息顯示在test result
2或者rfenableerroronly只把錯誤顯示在test result
3或者rfdisableall不在test result中顯示任何信息
你可以根據需要設定你要顯示的錯誤

舉例:

Reporter.filter=2
reporter.ReportEvent micPass,"測試通過01","pass"
reporter.ReportEvent micFail,"測試失敗01","fail"

reporter.ReportEvent micPass,"測試通過02","pass"
reporter.ReportEvent micFail,"測試通過02","pass"

reporter.ReportEvent micPass,"測試通過02","pass"
reporter.ReportEvent micFail,"測試通過02","pass"

reporter.ReportEvent micPass,"測試通過02","pass"

reporter.ReportEvent micFail,"測試通過02","pass"

15.回車鍵查詢問題的解決

1.(Sendkey方法)

Browser("系統登錄").Page("***信息管理系統").Frame("main").WebEdit("ylzh").FireEvent("onfocus")
set WshShell =CreateObject("WScript.Shell")
WshShell.SendKeys "{ENTER}"

2)用 Type micReturn 

16.我們在用Object Spy 識別對象時注意的問題。

我們一定要在QTP加載相關插件後,再用Object Spy 去識別對象,否則,識別出來的對象不是我們需要的。如果,我在識別web頁面的button,但是我如果不加載web插件時,識別出來的確是一個WinObject,呵呵。所以一定要加載web插件後,在用qtpspy對象。

17.運用childobjects獲取桌面上的頂級對象!實現關閉特定browser的方法。

Desktop對象允許訪問桌面上的頂級對象.運用childobjects方法可以返回此對象中的所有對象列表:以下代碼實現了,從桌面頂級對象中查找name=新浪首頁,然後將該browser的圖像抓取出來存到特定的文件夾下.

Set des=description.Create()
set dobj=desktop.ChildObjects(des)
For i=0 to dobj.count-1
If dobj(i).Getroproperty("name")="新浪首頁" then
dobj(i).CaptureBitmap"D:\Software testing\QTP\temp\"&i&".bmp",true
dobj(i).close
end if
Next

18.參數化Link的一種方法

Linkvar=DataTable("linktext",dtGlobalSheet)
Browser("163網易免費郵--中文郵箱第一品牌").Page("163網易免費郵--中文郵箱第一品牌").LinK("text:="&Linkvar).click

Datatable中的數據爲:

linktext

126免費郵

Yeah.net

VIP

188

賀卡

幫助

19.將日期寫入日期控件文本框的方法

Browser("電子政務").Page("::::行政審批系統::::").Frame("9_3").webedit("日期控件文本框名字").Object.value="2009-04-06"

20.關於 在線文本編輯器 QTP不能寫入文字的方法

因爲QTP將 在線文本編輯器 識別成了一個 WebElement,這塊用到object.document.write"你想要寫的內容方法.

其實 object.document.write"" 這個方法很牛大家在後邊就會發現.

21.QTP腳本不能錄製的解決方法

問題起因:
 在安裝QTP後,或者禁用IE瀏覽器裏的一些ActiveX控件後,正常錄製QTP事,不能產生相應的錄製腳本,腳本內容爲空。
 解決方法:

 根據實踐,我發現QTPIE中錄製腳本是依靠一個叫BHOManager Class的動態鏈接庫來完成的。當這個控件沒有被加載,或者被禁用時,就會出現上述症狀。於是,解決方法就很簡單了,重新加載,或啓用這個控件,一切就OK啦。
 具體步驟:
 打開IE,在菜單中選擇[工具]/[Internet選項]進入Internet配置界面。選擇[程序]/[管理加載項],查看目前加載的ActiveX的情況。
當看到存在BHOManager Class並且其狀態是禁用時,點擊啓用開啓這個功能,並保存後退出即可解決問題。
 當在管理加載項裏找不到BHOManger Class這個加載項時,如果你安裝了QTP,那麼在C:\WINDOWS\system32下會存在一個叫BHOManager.dll的動態鏈接庫,或者可以直接在計算機裏搜索BHOManager.dll,然後查看其路徑。加載這個dll,加載方法爲:點擊[開始]/[運行],輸入cmd,然後定位到dll所在目錄,鍵入regsvr32 BHOManager.dll命令,即可註冊此dll。問題解決。

22.qtp關閉IE進程方法

SystemUtil.CloseProcessByName "iexplore.exe"

23.qtp測試web 超級鏈接的方法

方法一:用 CheckProperty("url","")

QTP 錄製複製粘貼功能

2009-07-27 11:34

在網上找的,先記錄下來,還沒有實驗!:)


示例一:

rem 在一個頁面的某鏈接上按右鍵
Browser("Google").Page("qwewqe - Google 搜索").Link("qwewqe 的博客空間聯城網[免費發佈信息][分類信息,").Click micRightBtn

Dim wshShell
 Set wshShell = CreateObject("WScript.Shell")
'模擬鍵盤操作,向下移動兩次
For i=1 to 2
wshShell.SendKeys "{DOWN}" '模擬鍵盤操作
Next
'模擬鍵盤操作,按回車鍵,完成在新窗口中打開鏈接
 wshShell.SendKeys "{ENTER}"


示例二:

em Word中複製粘貼一段文字的右鍵操作
'選擇需要複製的原文字,Drop後面的內容定義了文字塊的座標
Window("Microsoft Word").WinObject("Microsoft Word 文檔").Drag 510,180
Window("Microsoft Word").WinObject("Microsoft Word 文檔").Drop 645,178
'按右鍵
Window("Microsoft Word").WinObject("Microsoft Word 文檔").Click 576, 182, micRightBtn

Dim wshShell
 Set wshShell = CreateObject("WScript.Shell")
'模擬鍵盤操作,向下移動兩次
For i=1 to 2
wshShell.SendKeys "{DOWN}" '模擬鍵盤操作
Next
'模擬鍵盤操作,按回車鍵,完成複製操作
wshShell.SendKeys "{ENTER}" '模擬鍵盤操作


'在需要粘貼的位置按右鍵
Window("Microsoft Word").WinObject("Microsoft Word 文檔").Click 393, 564, micRightBtn
'模擬鍵盤操作,在右鍵菜單上向下移動三次,按回車鍵,完成粘貼操作
For i=1 to 3
wshShell.SendKeys "{DOWN}" '模擬鍵盤操作
Next
wshShell.SendKeys "{ENTER}" '模擬鍵盤操作


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