文章目錄
- 1) QTP 支持那些環境?
- 2) QTP 的對象庫類型是什麼?
- 3) 可以在其他測試中用腳本語言調用 QTP 測試嗎?假設有四個測試,我想在一個主腳本中調用這些測試,這種 QTP 中可能嗎?
- 4) 什麼是 action split?在 QTP 中使用 action split 的目的何在?
- 5) 在 QTP 中你如何處理 Java 樹?
- 6) 解釋一下 QTP 是如何識別對象的?
- 7) QTP 中有多少種記錄模式?分別在什麼時候用到?
- 8) 你怎樣在一個 action 中調用另一個 action?
- 9) 什麼是虛擬對象?
- 10) 如何使用 QTP 執行跨平臺測試和跨瀏覽器測試?你能用一些例子解釋說明嗎?
- 11) 對象的邏輯名字是什麼?
- 12) 什麼是描述性編程?
- 13) 運用描述性編程的時候,你用什麼屬性來識別瀏覽器網頁?
- 14) 在遠程機器上使用 QTP 時,我們能否記錄應用的運行過程呢?
- 15) 用一個例子解釋創建對象的關鍵詞。
- 16) 你能在 Per-Action 和 Shared Object Repository 中切換嗎?如果能,怎麼切換的?
- 17) 什麼是對象間諜?如何使用它?
- 18) 光序標誌符就可以使一個對象獨一無二,那爲什麼不給他們頂級優先權呢?爲什麼它是先強制後輔助的?爲什麼我們不能直獲取序標誌符?
- 19) 在 QTP 代碼文件中擴展名是什麼?
- 20) 簡要解釋一下 QTP 自動化對象模型。
1) QTP 支持那些環境?
QTP 支持以下環境:
Active X、Delphi、Java、Net、Oracle、People Soft Power Builder、S
AP、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 o bject,強制更改輔助屬性來啓用識別。
提示:對於任何環境的對象,你都可以把用類似的方法回答。
例如:如果問題是你怎樣檢查 SAP 多選框,你說,首先我該選擇 SAP Ad d in……等等。
6) 解釋一下 QTP 是如何識別對象的?
QTP 識別任何 GUI 對象基於其相應的屬性。
當記錄的時候,QTP 在對象存儲庫的 GUI 對象中識別並且存儲特殊屬性(如在物體識別設置中定義的一樣)。
在運行時,QTP 將比較存儲屬性值與屏幕上的屬性。
7) QTP 中有多少種記錄模式?分別在什麼時候用到?
QTP 支持三種記錄模式:
- (1) 普通模式,也叫上下文模式
- (2) 低級記錄模式
- (3) 模擬模式
**普通模式:**默認的記錄模式,充分利用了 QTP 的試驗對象模型。它可識別屏幕任何位置的對象。這是重新編碼的最佳模式,用於大多數的自動化測試。
低級記錄模式: 這個模式準確地記錄鼠標操作的 x,y 座標。它有助於測試哈希表。它是用於記錄 QTP 的正常模式下的不確定對象。
**模擬模式:**這個模式記錄執行關於屏幕/應用程序窗口時鼠標和鍵盤的精確“動作”。這種模式對一些操作是很有用的,例如畫畫、記錄簽名、拖放操作。
8) 你怎樣在一個 action 中調用另一個 action?
調用 action 有兩種方法:
(1) 調用複製的 action。用這種方法,操作對象存儲庫、腳本和時間戳將被複制到目標測試腳本。
(2) 調用現有的 action。用這種方法,操作對象存儲庫、腳本和時間戳不會被複制,但一個調用(參考)將在源腳本的 action 上生成。
9) 什麼是虛擬對象?
應用程序可能包含有着像標準對象行爲的對象,但不被 QTP 識別。您可以把這些對象定義爲虛擬對象並將它們映射到標準的類,比如按鈕或一個複選框。Q TP 在運行的會話中在虛擬對象上模擬用戶的動作。在測試結果裏,虛擬對象被當成標準的類對象展示出來。
例如,假設你想記錄一個測試包含用戶單擊的位圖的 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”)…
14) 在遠程機器上使用 QTP 時,我們能否記錄應用的運行過程呢?
當然可以。你可以通過本地瀏覽器而不是通過像 citrix 這樣的遙控器記錄你進入的遠程應用。
如果你仍然不能記錄,建議您將 QTP 和應用安裝在同一個機器上。
15) 用一個例子解釋創建對象的關鍵詞。
創建並返回一個自動化對象的引用。
- 語法: CreateObject(servername.typename [,location])
- 參數: servername:需要。提供對象的應用的名字。
- typename:需要。創建對象的類型或者類。
- ocation:可選。創建對象的網絡服務器名字。
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 編程元素一起使用,如迭代循環或條件語句來幫助你設計腳本的選擇。