Desktop對象的使用:緩存
經過Desktop對象,能夠訪問Windows的桌面頂層對象。Desktop對象包括CaptureBitmap、ChildObjects、RunAnalog方法。閉包
(1) 使用CaptureBitmap方法來截屏函數
使用CaptureBitmap方法,能夠把屏幕對象的截屏保存爲圖像文件。例如,下面的代碼把屏幕截圖保存到指定的文件,而且當存在相同文件時,覆蓋原來文件。工具
(2) 使用ChildObjects方法獲取某個對象中包含的對象列表測試
使用ChildObjects方法能夠獲取到某個測試對象中包含的全部對象,例如,下面的腳本經過Desktop對象的ChildObjects方法獲取當前桌面上全部名爲「無標題-記事本」的窗口對象。ui
(3) 使用RunAnalog方法運行低級錄製過程加密
QTP支持錄製鼠標和鍵盤操做的低級過程,這種錄製模式叫「Analog Recording」。Desktop對象的RunAnalog方法能夠運行錄製下來的Analog腳本,例如,下面的腳本運行名爲「Track 1」的Analog腳本。spa
SystemUtil對象的使用:orm
能夠利用SystemUtil對象,在測試腳本的運行過程當中,控制應用程序和進程,SystemUtil對象包括BlockInput、CloseDescendentProcesses、CloseProcessByHwnd、CloseProcessById、CloseProcessByName、ColseProcessByWndTitle、Run、UnBlockInput方法。xml
(1) 使用Run方法運行文件或程序
Run方法的使用格式以下:
Run file, [params], [dir], [op], [mode]
下面解釋各參數的做用:
(1)「file」參數是必須輸入的,是須要被運行的程序,或者是須要被打開的文件。
(2)「params」是可選輸入參數,指啓動應用程序所需的參數。
(3)「dir」是可選參數,指應用程序或文件的默認工做目錄;
(4)「op」是可選參數,指文件打開的模式,包括「open」、「edit」、「explore」、「find」、「print」5種模式。
(5)「mode」參數是可選參數,用於指定程序窗口打開時的狀態。
(2) 在腳本運行過程當中屏蔽鼠標和鍵盤
在腳本運行過程當中,屏蔽鼠標和鍵盤的輸入可使用SystemUtil對象的BlockInput和UnBlockInput方法。BlockInput用於屏蔽輸入,UnBlockInput用於解除屏蔽。可使用BlockInput方法防治測試腳本運行過程當中被意外的鼠標和鍵盤操做干擾。
(3) 關閉進程
SystemUtil對象中包含多個可用於關閉進程的方法,包括CloseDescendentProcess、CloseProcessByHwnd、CloseProcessById、CloseProcessByName、CloseProcessByWndTitle。
(1) CloseDescendentProcess用於關閉全部由QTP打開的進程。
(2)CloseProcessByHwnd用於關閉包含指定句柄的窗口的進程。
(3)CloseProcessById用於關閉指定進程ID(PID)的進程。
(4)CloseProcessByName用於關閉指定名稱的進程。
(5)CloseProcessByWndTitle用於關閉擁有指定標題的窗口的進程。
ClipBoard對象的使用:
ClipBoard對象表明Windows中的剪貼板對象,在QTP中,能夠經過ClipBoard對象來訪問剪貼板對象,設置剪貼板的數據。
(1) ClipBoard對象介紹
能夠在測試腳本運行過程當中,使用ClipBoard對象來複制、剪切和粘貼文本對象,ClipBoard對象擁有與VB語言中的ClipBoard對象同樣的方法,包括:
q Clear:用於清空ClipBoard中的數據。
q GetData:用於獲取ClipBoard中的數據。
q GetFormat:用於獲取ClipBoard中的數據格式。
q GetText:用於獲取ClipBoard中的文本數據。
q SetData:用於向ClipBoard設置數據。
q SetText:用於向ClipBoard設置文本數據。
(2) ClipBoard對象的使用方法
在測試過程當中,能夠利用ClipBoard對象做爲緩存測試數據的容器使用,例如,下面的測試腳本首先清空ClipBoard中的全部數據,而後,設置ClipBoard中的文本爲「TEST」,最後,從ClipBoard中獲取緩存的文本。
標準Windows控件的基本屬性和方法:
在QTP中,對於各類標準Windows控件,都提供了一些公共的、通用的基本屬性和基本方法,熟練掌握這些基本的屬性和方法,有助於更加有效地編寫測試腳本。
(1) 使用Exist屬性來判斷空間是否存在
能夠經過訪問控件的Exist屬性來判斷控件是否存在於當前打開的應用程序中。例如,下面的測試腳本用於判斷Login窗口是否存在。
(2) 使用CheckProperty檢查控件屬性
使用CheckProperty方法能夠實現與標準檢查點相相似的功能,例如,下面的測試腳本使用CheckProperty檢查控件的屬性是否與指定的值相一致,若是一致,則在測試結果中標識爲Pass,不然標識爲Fail。
可看到,其實現的功能與CheckPoint實現的功能基本一致。可是,使用方式會比插入CheckPoint更爲靈活些。
(3) 使用GetROProperty獲取控件屬性
GetROProperty用於返回測試對象的當前屬性,例如,下面的測試腳本用於獲取Login窗口的標題屬性。
各種標準Windows控件的測試:
Windows標準控件包括各類基於Windows API和MFC開發的應用程序中的各類控件,在QTP中,對於這些基本控件都有相應的測試對象來控制,例如,Button對應WinButton、CheckBox對應WinCheckBox等。
1) Dialog對象的測試:Dialog對象是指Windows的對話框控件。對Dialog對象的經常使用測試是Activate方法,用於定位對話框,使其處於激活狀態。Activate方法模擬用戶點擊對話框的標題欄,定位到對話框,一般,在操做對話框中的控件之間,都須要先使用這個方法,確保當前對話框可用。
2) Static對象的測試:Static對象是指Windows靜態文本、圖像控件,能夠用Check方法插入對圖像的檢查點,在錄製過程當中,選擇菜單「Insert|Checkpoint|Bitmap Checkpoint」,而後,選擇指定的圖像的區域,如圖12.4所示。
3) WinButton對象的測試:WinButton對象的經常使用測試操做是Click方法,用於模擬用戶單擊按鈕的事件,例如,下面的代碼模擬用戶單擊「OK」按鈕。
4) WinCalendar對象的測試:WinCalendar對象是指日期和時間選擇控件,例如,Windows搜索助理界面的指定日期控件就是WinCalendar對象,如圖12.5所示。WinCalendar對象經常使用的測試操做時設置日期,須要使用SetDate方法,如如下代碼所示。
SetDate方法的參數是「Date」,可使用兩種方式傳入:
(1)日期字符串型:格式爲d-MMM-yyyy,其中d表示日,MMM表示英文月份縮寫,yyyy是年份。
(2)使用VBScript的日期函數,例如Date,Now,IsDate,CDate等。下面的腳本把
日期控件的日期設置爲當天。
(3)除了設置日期外,還可使用WinCalendar對象的SetTime方法來設置事件。
5) WinCheckBox對象的測試:WinCheckBox對象的經常使用測試操做是Set方法,用於模擬用戶把某個選擇項選上。例如,下面的腳本用於把Customer Name選擇框勾選上。Set方法的參數能夠輸入「ON」,「OFF」,或者是「DIMMED」3種狀態的值。
6) WinComboBox對象的測試:WinComboBox對象的經常使用測試操做時Select方法,用於模擬用戶從下拉框中選擇某項內容,例如,下面的腳本從「Fly From」下拉框中選擇起飛地點,從「Fly To」下拉框中選擇終點。另外,WinComboBox對象還提供一些方法來方便地獲取到下拉框的內容,例如,下面的腳本獲取下拉框中的全部項總數。而下面的腳本將獲取Index爲1的下拉框想對應的內容。
7) Window對象的測試:Window對象是指窗體控件,Window對象的經常使用測試操做是Activate、Maximize、Restore方法,例如,下面的腳本首先定位到記事本的窗口,而後,最大化記事本的窗口,最後,回覆記事本窗口大小。另一個經常使用的測試操做時經過GetROProperty方法獲取窗口的標題,判斷標題是否爲指定的名稱,例如,下面的腳本用於獲取記事本窗口的標題。
8) WinEdit對象的測試:WinEdit對象是常見的輸入框,其中經常使用的測試操做是Set方法,可用於模擬用戶往輸入框中輸入字符,例如,下面的腳本在Name輸入框中輸入文本「CNJ」。另外,若是須要輸入加密的文字,則可以使用SetSecure方法,例如,下面的腳本在「Password」輸入框中輸入加密後的密碼字符串。
9) WinEditor對象的測試:WinEditor對象與WinEdit對象的使用方法比較相似,一樣能夠經過Set方法和SetSecure方法來模擬用戶輸入未加密或加密的內容。也可使用Type方法來模擬用戶往輸入框中輸入文本,例如,下面的腳本往記事本中輸入一段文字,而後,按下Enter鍵。
10) WinList對象的測試:WinList對象是指列表控件,例如,在Flight程序中,選擇航班的界面中航班列表就是一個WinList控件,如圖12.6所示。其經常使用的測試操做是Select方法,用於模擬用戶選擇列表中的一項內容,例如,下面的腳本選擇列表中的指定名稱的內容。另外,也能夠經過指定Index來選擇內容,例如,下面的腳本指定選擇Index爲2的某項內容。
11) WinListView對象的測試:WinListView對象是指列表視圖控件,例如,Windows資源管理器右邊窗口就是一個WinListView控件。其經常使用的測試操做時Select方法,用於模擬用戶選擇列表視圖中的一項內容,例如,下面的腳本經過名稱指定選擇SysListView32中的某項內容。也能夠經過指定Index來選擇,例如,下面的腳本經過指定Index爲2,選擇SysListView32中的第3項的內容。另外,WinListView對象還提供了一個ExtendSelect方法,用於模擬用戶按下CTRL鍵進行多選,例如,下面的腳本同時選擇兩項內容。
12) WinMenu對象的測試:WinMenu對象是指菜單控件,其經常使用測試操做是Select方法,用於模擬用戶選擇某個菜單項,例如,下面的腳本經過指定菜單名稱來選擇記事本的文件新建菜單。也能夠經過指定Index來選擇菜單,例如,下面的腳本選擇記事本的文件打開菜單。可使用BuildMenuPath方法來構建菜單路徑,例如,下面的腳本先用BuildMenuPath方法來構建菜單選擇路徑「文件|新建」,而後使用Select方法執行菜單選擇動做。BuildMenuPath方法也可使用Index來指定菜單項,例如,下面的腳本中構建的菜單選擇路徑是「文件|打開」。
13) WinRadioButton對象的測試:WinRadioButton對象是指單選按鈕控件,例如,Flight程序的主界面中的幾個機艙等級選擇項就是WinRadioButton對象,其經常使用的測試操做時Set方法,例如,下面的腳本模擬用戶單擊「Fisrt」單選按鈕,選擇一等艙的機票。
14) WinScrollBar對象的測試:WinScrollBar對象是指滾動條對象,可使用其中的Set、NextLine、NextPage、PreLine、PrevPage這幾個方法來模擬用戶拖動滾動條的動做,例如,下面的腳本模擬用戶單擊Excel應用程序中的滾動條,讓其向下滾動1行。另外,也能夠模擬用戶拖動滾動條,讓其向下滾動1頁,例如,下面的代碼。還可使用Set方法來把滾動條設置在某個位置,以下面的腳本所示。可使用GetROProperty方法先獲取ScrollBar的maxscrollpos屬性,取得可滾動的最大範圍,再根據這個值來決定設置滾動條的位置,這樣可避免使用Set方法設置的位置超出範圍,例如,下面的腳本把滾動條設置在中間位置。
15) WinSpin對象的測試:WinSpin對象是數值選擇控件,例如,Windows的日期和時間屬性窗口中的年份選擇控件就是一個WinSpin對象,如圖12.7所示。其經常使用的測試操做時Next、Prev、Set方法。例如,下面的腳本先判斷日期控件中的日期是否爲2008年,若是是,則使用WinSpin的Next方法將日期調到2009年。若是想把日期調前一年,則使用WinSpin的Set方法,如如下代碼所示。
16) WinStatusBar對象的測試:WinStatusBar對象是指狀態欄控件,其經常使用的測試操做時經過GetContent獲取狀態欄的全部信息,例如,下面的腳本獲取記事本的狀態欄信息。可是GetContent取得時狀態欄中的全部信息,而狀態欄可能會分紅若干部分,例如Windows資源管理器中的狀態欄,如圖12.8所示。如何分別取得每一部分的信息呢?方法是使用WinStatusBar的GetItem方法,例如,下面的腳本首先使用GetItemsCount方法獲取到狀態欄部分的個數,而後使用GetItem方法循環取得每一部分的狀態欄信息。
17) WinTab對象的測試:WinTab對象是指頁籤控件,例如,Windows的日期和時間屬性窗口中就有一個包含3個頁籤的WinTab對象,其經常使用的測試操做時Select方法,例如,下面的腳本模擬用戶選擇日期和時間屬性窗口中的3個頁籤。另外,Select方法的輸入參數也能夠是Index,Index從0開始,下面的腳本與上面的腳本的效果是同樣的。WinTab對象還提供了一個叫「GetSelection」的方法,用於肯定當前所選的頁籤是哪一個,例如,下面的腳本首先使用指定Index的方式來選擇第二個頁籤,而後經過GetSelection方法獲取當前所選的頁簽名稱。
18) WinToolbar對象的測試:WinToolbar對象是指工具欄控件,其經常使用的測試操做時Press方法,用於模擬用戶單擊工具欄上的某個按鈕,例如,下面的腳本用於模擬用戶單擊Windows資源管理器的工具欄上的「向上」、「後退」和「搜索」按鈕。Press的輸入參數也能夠是Index,Index從1開始,例如,下面的腳本實現了與上面腳本一致的功能。
19) WinTreeView對象的測試:WinTreeView對象是指屬性選擇控件,例如,Windows資源管理器中左邊的窗口就包含一個WinTreeView控件,如圖12.10所示。其經常使用的的測試操做包括Select、Expand、ExpandAll、Collapse等方法。例如,下面的腳本用於在資源管理器中選擇某個磁盤。也可使用ExpandAll方法來展開所有節點,例如,下面的腳本用於展開C盤的全部文件夾目錄節點。而收起處於展開狀態的節點則可使用Collapse方法,例如,下面的腳本用於收起處於展開狀態的C盤節點。
20) WinObject對象的測試:WinObject對象用於測試那些不能被QTP識別並歸類成特定控件類型的Windows控件,其擁有與其餘各種控件對應的測試對象相同的基本屬性和方法,例如Exist屬性、Click方法、Type方法、GetROProperty方法、CheckProperty等。