50佳QTP面試題(上)
Active X、Delphi、Java、Net、Oracle、People Soft Power Builder、SAP、Siebel、Stingray Terminal Emulator、Visual Basic Visual Age 、Web、Web Services
2)QTP的對象庫類型是什么?
QTP支持兩種類型的對象庫:
(1) 共享對象庫(也叫全局對象庫)
(2) 單例對象庫(也叫局域對象庫)
共享對象庫在處理多次測試中的靜態對象時適用,擴展名是“.tsr”。
默認的是單例對象庫,它的擴展名是“.mtr”
3)可以在其他測試中用腳本語言調用QTP測試嗎?假設有四個測試,我想在一個主腳本中調用這些測試,這種QTP中可能嗎?
答案是肯定的。你可以在你的測試中調用四個甚至更多腳本。為了達到這個目的,需保證相應腳本中的Actions是可重用的。然后從目標腳本中可以使調用這些可重用的actions。
4)什么是action split?在QTP中使用action split的目的何在?
Action split將存在的action拆分為兩部分,目的在actions函數的基礎上提高代碼的可重用性。
5)在QTP中你如何處理Java樹?
首先,選擇 Java Add-In 啟動QTP。第二步記錄在Java樹中的操作,如果在記錄過程中遇到問題,選擇Tools > Object Identification > Java、tree object,強制更改輔助屬性來啟用識別。
提示:對于任何環境的對象,你都可以把用類似的方法回答。
例如:如果問題是你怎樣檢查SAP多選框,你說,首先我該選擇SAP Add in……等等。
6)解釋一下QTP是如何識別對象的?
QTP識別任何GUI對象基于其相應的屬性。當記錄的時候,QTP在對象存儲庫的GUI對象中識別并且存儲特殊屬性(如在物體識別設置中定義的一樣)。在運行時,QTP將比較存儲屬性值與屏幕上的屬性。
7)QTP中有多少種記錄模式?分別在什么時候用到?
QTP支持三種記錄模式:
(1)普通模式,也叫上下文模式
(2)低級記錄模式
(3)模擬模式
普通模式:默認的記錄模式,充分利用了QTP的試驗對象模型。它可識別屏幕任何位置的對象。這是重新編碼的最佳模式,用于大多數的自動化測試。
低級記錄模式: 這個模式準確地記錄鼠標操作的x,y坐標。它有助于測試哈希表。它是用于記錄QTP的正常模式下的不確定對象。
模擬模式:這個模式記錄執行關于屏幕/應用程序窗口時鼠標和鍵盤的精確“動作”。這種模式對一些操作是很有用的,例如畫畫、記錄簽名、拖放操作。
調用action有兩種方法:
(1)調用復制的action。用這種方法,操作對象存儲庫、腳本和時間戳將被復制到目標測試腳本。
(2)調用現有的action。用這種方法,操作對象存儲庫、腳本和時間戳不會被復制,但一個調用(參考)將在源腳本的action上生成。
9)什么是虛擬對象?
應用程序可能包含有著像標準對象行為的對象,但不被QTP識別。您可以把這些對象定義為虛擬對象并將它們映射到標準的類,比如按鈕或一個復選框。QTP在運行的會話中在虛擬對象上模擬用戶的動作。在測試結果里,虛擬對象被當成標準的類對象展示出來。
例如,假設你想記錄一個測試包含用戶單擊的位圖的Web頁面。位圖包含幾個不同的超鏈接區域,每個區域打開一個不同的目的頁面。當你記錄一個測試,Web站點匹配單擊位圖的坐標并且打開目標頁面。
在運行的會話中啟用QTP以點擊所需坐標,你可以為一個區域的位圖定義一個虛擬對象,其中包括那些坐標,并將其映射到按鈕類。當運行一個測試時,QTP單擊一個被定義為虛擬對象位圖所在區域,這樣網址就可以打開正確的目的地頁面了。
10)如何使用QTP執行跨平臺測試和跨瀏覽器測試?你能用一些例子解釋說明嗎?
創建單獨的Actions,以滿足不同的操作系統和瀏覽器的需要。
跨平臺測試:
用內置的環境變量挖掘操作系統信息。
如:平臺=環境(“操作系統”)。然后基于平臺需要調用你記錄在那個特定的平臺的actions。
跨瀏覽器測試:
使用代碼Browser("Core Values").GetROProperty("version"),可提取瀏覽器和它的相關版本。例如:Internet Explorer 6或Netscape 5,基于這個值您可以調用與瀏覽器相關的actions。
11)對象的邏輯名字是什么?
邏輯名字是QTP 在庫里創建一個可唯一地與應用里的其他對象識別的對象時起的名字。它被QTP用來映射對象庫中對象名相應的描述。如:Browser("Browser").Page("Guru99") ,在這里,Guru99 是對象的邏輯名字。
12)什么是描述性編程?
通常情況下,一個對象及其屬性必須被記錄在對象資源庫,讓QTP執行操作。
用描述性編程,你不用在對象資源庫里儲存對象及其屬性值,而是在腳本里提到屬性值對。
描述性編程背后的這種思想不是想繞開對象庫,而是幫助識別靜態對象。
13)運用描述性編程的時候,你用什么屬性來識別瀏覽器網頁?
可以用名字屬性。
如:ex:
Browser("name:="xxx"").page("name:="xxxx"").....
或者,我們也可以用屬性"micClass"。
如:ex:
Browser("micClass:=browser").page("micClass:=page")....
當然可以。你可以通過本地瀏覽器而不是通過像citrix 這樣的遙控器記錄你進入的遠程應用。
如果你仍然不能記錄,建議您將QTP 和應用安裝在同一個機器上。
15)用一個例子解釋創建對象的關鍵詞。
創建并返回一個自動化對象的引用。
語法:CreateObject(servername.typename [,location])
參數:
servername:需要。提供對象的應用的名字。
typename:需要。創建對象的類型或者類。
location:可選。創建對象的網絡服務器名字。
16)你能在Per-Action 和Shared Object Repository中切換嗎?如果能,怎么切換的?
可以轉換。找到Test,然后選擇Settings,最后選擇Resources,在這里可以選擇儲存庫了。
17)什么是對象間諜?如何使用它?
對象間諜有助于確定正在被測試的應用的運行測試時間對象屬性和方法。
您可以直接從工具欄或者對象庫對華康直接訪問對象間諜。
這在描述編程過程中非常有用。
18)光序標志符就可以使一個對象獨一無二,那為什么不給他們頂級優先權呢?為什么它是先強制后輔助的?為什么我們不能直獲取序標志符?
因素如下:
(a)如果兩個對象彼此重疊,基于位置的對象識別將失敗。
(b)如果僅基于索引識別你的腳本可以運行,但是執行時間將增加。
因此使用強制和輔助的特性。
19)在QTP代碼文件中擴展名是什么?
代碼的文件擴展名是script.mts.
20)簡要解釋一下QTP自動化對象模型。
QTP自動化對象模型處理自動化QTP本身。幾乎所有的QTP提供的配置和功能都用QTP自動化對象模型展示。
幾乎所有QTP的對話框有一個相應的自動化對象,可以使用自動化對象模型的相關屬性或者方法設置或檢索。
QTP自動化對象可以和標準的VB編程元素一起使用,如迭代循環或條件語句來幫助你設計腳本的選擇。
posted on 2013-05-30 10:31 順其自然EVO 閱讀(380) 評論(0) 編輯 收藏 所屬分類: qtp