QTP的基本功能介紹

• QTP的基本功能介紹
HP QuickTest Professional 支持功能測試和迴歸測試自動化,用於每個主要軟件應用程序和環境。此解決方案使用關鍵字驅動的測試概念,簡化了測試創建和維護過程。它使測試人員能夠使用專業的捕獲技術直接從應用程序屏幕中捕獲流程來構建測試案例。測試專家還可通過集成的腳本和調試環境完全訪問內在測試和對象屬性
• QTP框架結構
以Test爲測試運行單位,每個Test包含若干類型Action。以Action爲最
小單位映射對象庫,多個Action之間可以共享統一
對象庫,Action內的Step可以包含用戶錄製操作或者
函數庫內對Function的調用。

QTP自動化測試的基本過程
• 錄製測試腳本
• 編輯測試腳本
• 調試測試腳本
• 運行測試腳本
• 分析測試結果
錄製測試腳本
1.插件加載設置管理
啓動QTP,將顯示下圖所示插件管理界面

根據所測試應用程序控件類型選擇需要加載的插件,例如,QTP自帶的樣例應用程序“Flight”是標準的windows程序,裏面的部分控件是ActiveX控件,因此,在測試時選擇加載ActiveX控件
2.錄製和測試運行設置
選擇了要加載的插件後,點擊OK按鈕,進入QTP的主界面,如下圖所示,包括測試視圖(關鍵字視圖和專家試圖),Data Table/Information界面、Active Screen界面。

選擇菜單“Automation|Record and Run Settings”出現錄製和運行設置界面
指定需要錄製的應用程序,錄製運行設置界面如下圖,在選擇windows應用程序的錄製和運行界面中,可以選擇兩種錄製方式,一種是”Record and run test on any open Windows-bassed”,這種方式可以錄製任何在系統中出現的程序;另外一種是 ”Record and run only on” 這種方式錄製有針對的應用程序,避免錄一些無關緊要的多餘的界面,該種方式有3種設置的用法。
(1).選擇“Application opened by QuickTest”選項,則僅錄製和運行由QTP調用的程序
(2).選擇“Application opened via the deskpot”選項,則僅錄製開始菜單,桌面快捷方式啓動的程序
(3).選擇“Application specified below”則可錄製和運行添加到列表中的應用程序。單擊 按鈕,添加要錄製程序的可執行文件的路徑。
例如,我們要錄製“Flight”樣例程序,我們就選擇樣例程序路徑“C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe”

3.錄製第一個自動化測試腳本
設置成僅錄製”Flight“程序後,選擇菜單”Automation|Record“,或工具欄上的 或按快捷鍵F3,QTP將自動啓動指定目錄
下的”Flight“程序,如下圖,輸入 用戶名和密碼“MERCURY”,點擊OK
按鈕,錄製“Flight”程序的登錄過程

按“stop”扭或F4建停止錄製,將得到如圖錄制結果

關鍵字視圖: 

專家視圖:


在鍵字視圖中,可看到錄製的測試的操作步驟,每個測試步驟及界面操作都在“Active Screen”界面顯示出來。
這樣就完成了一個最基本的測試用例的編寫,對於錄製的測試腳本,需要進一步的修改整理,這些工作可在關鍵字視圖進行,也可在專家視圖中進行。
編輯測試腳本
1.在關鍵字視圖中編輯測試腳本
(1).在關鍵字視圖爲測試步驟添加註釋
方法是:在關鍵字視圖的列頭單擊鼠標右鍵,選擇“comment”,則會多出一列,名爲“comment”,在這一列中可以爲每個測試步驟添加註釋。


2).在關鍵字視圖添加測試信息的輸出
如果想在某個測試步驟完成後,輸入相應的測試信息到測試報告中,則可在該測試步驟單擊右鍵,選擇“Insert Step|Report”,出現如圖所示界面。
如在激活“login”界面前報告“開始登陸”
在界面的“Status”下拉框中,選擇測試
報告的狀態(可以是Done、Passed、
Failed、Warning這四種狀體中的一種)
在“name”中輸入信息摘要,在“Details”
中輸入詳細信息

添加報告後如圖:

(3).插入檢查點
可檢查類型包括下圖中所有Checkpoint中子菜單項,包括文字,位圖,XML,數據庫(數據表)等檢查點。每個檢查點的執行結果都會在Automation-Result中存在相應的記錄,有些檢查點需要在錄製狀態下才能夠使用。
也可通過在測試步驟上單擊鼠標右鍵選擇菜單”Insert Standard Checkpoint“

例如我們檢查OK按鈕的屬性,插入一個標準檢查點。
首先,定位到ok提交的步驟,單擊右鍵,
選擇菜單” Insert Standard 
Checkpoint“,出現如右圖界面。
在界面中選擇需要檢查的屬性,例如,選擇
“Enableed”屬性,設置爲ture,選擇“Text”
屬性,設置“OK”。


單擊“OK”按鈕後,則可以在關鍵字視圖看到
新添加的檢查點步驟,如下圖

(4).在關鍵字視圖中插入新的測試步驟
例如在輸入密碼前,我們需先點擊“help”按鈕查看幫助,這時我們就需要加入點擊“help”按鈕的測試步驟。
首先定位到輸入用戶名的步驟,然後單擊鼠標右鍵,選擇“Insert Step|Step Generator”,則出現左圖界面,“Category”包括“Test Object”、“Utility Object”和“Function”,分別代表如下
含義:
Test Object:測試對象,即被測程序的界
面上的控件元素。
Utility Object:工具對象,是QTP內建的
各種編寫測試腳本,輔助建立測試邏輯的工
具類對象
Function:各種函數,包括庫函數、內建
函數,本地腳本函數。
在這裏,我們選擇“Test Object”,然後單
擊“Object”下拉框旁邊的圖標按鈕

出現選擇對象界面,如左圖,在界面中選擇“help”對象,然後單擊“OK”返回到“Step Generator”界面後,在“operation”的下拉框選擇“Click”,並把“Insert another Step”選項勾選上。
(如果在“Select Object for Step”界面的對象 列表中沒有“help”對象,可以單擊界面中的手
型按鈕,然後移動到Flight程序的“Login”界
面,從中選擇對象“help”按鈕,則出現下圖界
面,單擊“OK”按鈕,把“help”按鈕添加到測試
對象列表中)


單擊“Insert”按鈕,返回關鍵字視圖,可看到新的測試步驟已經添加,如圖

2.在專家視圖中編輯測試腳本
“Expert View”是一個強大的VBscript的腳本編輯器,在這裏,可以直接編寫測試腳本的代碼,適合熟悉VBscript語言,有較好編程技巧的自動化測試工程師使用。
QTP提供的腳本編輯器支持“語法感知”功能,例如,在代碼中輸入“Dialog(”Login“)後加點,則自動顯示一個下拉列表,從中可選取”Login“測試對象所包含的所有屬性和方法,如圖

調試測試腳本
1.語法檢查
選擇菜單”Tools|Check Syntax“,或通過工具欄選擇 按鈕,或按快捷鍵”CTRL+F7“對測試腳本進行語法檢查,如語法檢查通過,則在”information“界面顯示提示信息,如下圖

如果語法檢查發現問題,則會在”information“界面列出詳細的信息,如下圖

2.使用斷點
語法檢查通過後,可以直接運行代碼,也可以設置斷點對腳本進行調試。可以通過快捷鍵”F9“,或單擊代碼所在行的邊框,或按工具欄的 按鈕設置斷點。


然後,按F5鍵或 按鈕運行,運行過程將在斷點處停住,如圖。這時候,可以進行單步調試,可以選擇“Debug|Step Over”,或快捷鍵“F10”運行到下一行代碼,也可以選擇“Debug|Step into”,或快捷鍵“F11”進入代碼行中所調用的函數

然後,按F5鍵或run 按鈕運行,運行過程將在斷點處停住,如圖。這時候,可以進行單步調試,可以選擇“Debug|Step Over”,或快捷鍵“F10”運行到下一行代碼,也可以選擇“Debug|Step into”,或快捷鍵“F11”進入代碼行中所調用的函數。

調試查看器的使用
在調試過程中,可選擇菜單”view|Debug Viewer“顯示調試查看器,如圖
就可以看到測試對象屬性或變量的值

運行測試腳本
1.運行整個測試,在進行語法檢查和調試都無誤後,可以按F5鍵運行整個測試腳本。在運行測試之前,可以對運行做必要的設置,選擇菜單”Tools|Options“,出現下圖界面。

“Run mode”運行模式可選normal
或fast

“View results when run 
session end” 在運行結束後自
動打開測試結果界面

“Allow other Mercury produncts
To run test”允許其他Mercury的
工具調用QTP

“save still image captures to 
results”保存靜止圖像到結果中

2.運行部分測試
如果多個Action,則可以定位到需要運行的Action,然後,選擇菜單“Automtion|Run Current Action”,來運行當前的的Action,有利於定位當前Action的問題
還有另一種只運行部分測試的方式,方法是選擇某個測試步驟,單擊右鍵,選擇菜單“Run From Step”,可以從當前測試開始運行測試,也可以選擇“Run to step”,從開始運行到當前所選的測試步驟
3.批量運行測試
可以使用QTP自帶的工具“Test Batch Runner”
來批量運行測試腳本。需在
“Tools|Options”中,確保
“Allow other Mercury 
products to run Test”選項
被勾選上。
通過開始菜單打開
“Test Batch Runner”工具,如圖,選擇
“Batch|Add”來添加要運行的測試腳本,
選擇“Batch|Run”來批量運行列表中所有
的測試腳本

分析測試結果
1.選擇測試結果的存放位置
在QTP中,運行測試腳本,會出現下圖對話框。
如果選擇”New run results folder“,可以爲本次測試選擇一個目錄用於存儲測試結果文件;如果選擇”Temporary run results folder“,則QTP將運行測試結果放在默認目錄中,並且覆蓋上次該目錄中的測試結果

2.查看概要測試結果
測試腳本運行結束後,可在下圖所示界面中查看概要的是結果信息,包括測試的名稱,測試開始和結束時間,運行的迭代次數。通過的狀態等。

3.查看檢查點的結果
在測試結果的左邊窗口中,用樹形結構展示了所有測試步驟,如果選擇節點Cheeckpoint ”OK“,則可以看到下圖的結果。

QTP腳本開發
• 關鍵字驅動測試
• 數據驅動測試
• QTP描述性編程
關鍵字驅動測試
1.什麼是關鍵字驅動測試方法
關鍵字驅動測試方法(Keyword-driven testing),也叫表格驅動測試方法。關鍵字驅動測試把測試腳本的編程工作分離出去,讓那些沒有編程技巧的人也能開發自動化測試腳本。
實現關鍵字驅動測試主要依賴自動化框架。通過自動化框架,僅需要測試人員開發表格和關鍵字,框架通過解釋表格數據和關鍵字來執行測試腳本,驅動被測的應用程序。這可以在QTP的關鍵字視圖中清晰的體現出來,例如,對windows計算器進行測試的一個測試用例可用如圖所示測試表格來完成。

2.編輯對象庫
使用QTP的關鍵字驅動框架進行自動化測試的第一步是收集測試對象的信息,存儲到對象庫中(Object Repository)。
添加測試對象的方法是選擇菜單“Resources|Object Repository”,打開“Object Repository-All Object Repositories”對話框,如左下圖。
以計算器程序爲例,選菜單“Oboject|Add Object to local”跳到
打開的計算器應用程序
界面,點擊鼠標出現下
圖對話框,點擊OK按扭
添加對象到對象庫中


添加後的對象庫如圖,這樣就可以在關鍵字視圖中編輯測試步驟時,從下拉列表中選擇測試對象

3.選擇測試對象
編輯好對象庫後,就可以在關鍵字視圖的Item列選擇需要的測試對象,如左圖。
如果測試對象不在下拉列表中,則可 
以選擇下拉列表中的“Object From
Repository”,從對象庫中選擇,
如下圖所示。


4.選擇對象相應的操作
從對象庫中選取了測試對象後,則可以在“Operation”列選擇其相應的操作,例如,按鈕的單擊可選擇“click”,如圖所示

5.設置測試邏輯
在關鍵字視圖中,同樣支持測試邏輯的設置,例如條件判斷,循環等。
下面介紹一個For循環的測試邏輯。該測試邏輯實現循環點擊計算器的“=”按鈕多次的效果。
(1).在關鍵字視圖,單擊鼠標右鍵,選擇菜單“Insert Step|Loop statement|For…Next”,添加一個循環的測試步驟,如圖


(2).在“Value”列中,顯示了For循環語句“For Iterator=1 To 1 Step 1”,該語句僅循環1次,因此,需要修改其中“To”後面的值爲“3”,讓循環體內的語句執行3次,如圖

(3).然後,在該語句的後面添加一個測試步驟,在Item列中選擇測試對象爲“=”按鈕,在Operation列中,選擇測試對象的操作爲“Click”,如圖所示

這樣就完成了一個循環測試
邏輯的設置,在專家試圖中可以
看到對應的腳本代碼如右圖 

數據驅動測試
自動化測試對錄製和編輯好的腳本進行回放,這種線性的自動化測試方式缺點是測試覆蓋面比較低。測試回放的只是錄製時做出的界面操作,以及輸入的測試數據,或者是腳本編輯時指定的界面操作和測試的數據。
如何讓測試腳本執行時,不僅僅限於測試錄製或編輯時的測試數據呢?數據驅動測試是解決這個問題的最佳方案。數據驅動測試把測試腳本中的測試數據取出來,存到外部文件或數據庫中,在測試過程中,從文件動態讀入測試數據。
數據驅動測試的一般步驟
1.參數化測試步驟的數據
2.編輯數據表格
3.設置迭代次數
在QTP中,可以使用多種方式來對測試腳本進行參數化,包括數據表參數化(Data Table Parameters)、環境變量參數化(Environment Variable Parameters)、隨機數參數化(Random Number Parameters)等。
下面以QTP自帶的“Flight”程序爲例,介紹如何對測試腳本進行參數化。
錄製的腳本如圖所示,以“目的地”的測試步驟的參數化過程爲例,介紹在關鍵字視圖中對測試腳本進行參數化。

(1).數據表參數化
首先,選擇“Fly to:”所在的測試步驟行,單擊“Value”列所在的單元格,如下圖所示。


單擊單元格旁邊的“<#>”按鈕,或按快捷鍵
“CTRL+F11”,則出現如右圖界面
在這個界面中,選擇“Parameters”,在旁邊
的下拉框中選擇“Data Table”,在“name”中輸
入參數名,在“Location in Data Table”中
可以選擇“Global sheet”,也可以選擇
“Current Action sheet”,區別是參數存儲的
位置不同

通過菜單“View|Data Table”就可以看見如圖所示數據表,可以看到,在flyto列有一個默認數據“London”,這是參數化前錄製腳本中的常量。

把其他幾個數據也參數化後,如圖所示

編輯數據表格
通過直接編輯表格添加更多的測試數據,如圖,QTP運行時,就會從如圖所示的數據表格中提取數據來對測試過程中的各項輸入進行參數化

參數化檢查點
測試腳本的最後一個步驟是檢查定票記錄中的航班終點是否正確,同樣需要進行適當地參數化,方法是單擊檢查點所在測試步驟的“Value”列中的單元格,如圖

單擊旁邊的 "對號"按鈕,出現如右圖所示界面。在“Configure value”中選擇“Parameter”後,單擊“OK”按鈕接收默認的設置,也可單擊旁邊的編輯按鈕,在有圖所示的界面中,進行參數化的詳細設置。我們可以選擇建一個新的參
數,也可以選擇“flyto”,因爲檢查點所指
的航班終點得到的預期值應該與航班終
點的輸入數據一致,單擊OK按鈕完成參
數化



設置數據表格的迭代方式
把測試步驟和檢查點的參數化工作都完成後,運行這個測試腳本前,還要做一些必要的設置,選擇菜單“File|Settings”,出現如圖測試設置界面

“Run one iterator only”是指僅運行一次,也就是說,即使Data Table中有多條數據,也僅運行一次;“Run on all rows”則是Data Table中所有數據都運行一次;選擇“Run from row…to…row…”則可進一步設置測試數據運行的範圍。
選擇“Run on all row”,運行後得到如圖所示測試結果

(2).使用隨機數進行參數化
對於選擇航班這個測試步驟的參數化有所不同,因爲航班數據表會跟隨所選的起點和終點發生變化,因此要通過隨機數來做特殊處理,如下代碼所示。

先通過訪問GetItemsCount屬性,獲取航班列表的行數,然後使用RandomNumber 隨機取其中一項,最後通過Select方法選擇航班
3).使用環境變量的參數化
下面以“Flight”的登錄界面的“Agent Name”和“Password”爲例介紹用環境變量參數化。
首先,選擇菜單“File|Settings”,出現如圖界面。在這個界面中,切換 
到“Environment”頁,在“Variable
type”中選擇“User-Defined”,然
後單擊旁邊的“+”按鈕,在下圖定
義環境變量的名和輸入的值。


重複上面步驟,定義“Password”環境變量,得到如下圖結果。

定義好環境變量並設置好其值之後,就可以在測試步驟中使用該環境變量。
在關鍵字視圖中,定位到“AgentName”測試步驟的“Value”列,如下圖, 

單擊旁邊的“<#>”,出現下圖所示界面。在界面中,選擇”Parameter”,並在下拉框中選擇“Environment”,在“Name”中選擇“AgentName”。重複這個步驟,設置“輸入登錄密碼”。

設置完後,結果如圖,QTP在運行測試腳本時,就會讀取測試步驟綁定的環境變量值,來執行相應的數據輸入動作。

QTP描述性編程
測試過程中,有些界面元素是動態出現或動態變化的,在錄製時,並沒有被加到測試庫中,如何讓這些在測試中動態出現的界面元素得到控制呢?QTP提供了描述性編程的方式來解決這些問題。
用描述性編程編寫的腳本在運行時,QTP會使用測試腳本中給出的對象描述來查找對象,查找的位置不是對象庫,而是與測試程序運行時QTP爲其創建的臨時測試對象版本進行匹配。
在QTP中,有兩種描述性編程的開發方式:一種是“直接描述”的方式,另一種是使用“Description對象”的方式。下面我們就以NCP servers登錄後的時間顯示錶爲例來說明,如圖。

1.直接描述方式
對於前面的NCP servers時間顯示錶,測試用例是要測試它的時間是否正確,它是隨時間不斷變化的,可以通過描述性編程來解決,例如下面的腳本:
Browser("深圳市元徵軟件有限責任公司").Page("深圳市元徵軟件有限責任公司").WebEdit("userName").Set "xiaoyu"
Browser("深圳市元徵軟件有限責任公司").Page("深圳市元徵軟件有限責任公司").WebEdit("password").SetSecure "4bda8fb406a2bf5fa628b028325fcebe031d"
wait 8
Browser("深圳市元徵軟件有限責任公司").Page("深圳市元徵軟件有限責任公司").Image("dl").Click
'通過正則表達式匹配web表
text1 = "服務器時間.*"
str = Browser("深圳市元徵軟件有限責任公司").Page("用戶管理 | 診斷服務增值業務服務管理後臺").WebTable("name:=WebTable","Text:=" & text1).GetCellData (1,2)
Msgbox str
直接描述的語法格式如下:
TestObject(“PropertyName1:=PropertyValue1”,“…”,“PropertyNameN:=PropertyValueN”)
TestObject:測試對象的類型名,例如爲WinButton,WebTable等
PropertyName:測試對象屬性名
PropertyValue:測試對象屬性值
2.使用Description對象
要使用Description對象,首先,用類似下面的代碼:
Set MyDescription = Description.Create()
text1 = "服務器時間.*“
‘爲Description添加描述屬性
MyDescription(”name”).value = “WebTable”
MyDescription(”Text”).value = text1 
str = Browser("深圳市元徵軟件有限責任公司").Page("用戶管理 | 診斷服務增值業務服務管理後臺").WebTable(MyDescription).GetCellData (1,2)
在這裏,測試對象的屬性描述都包裝在了Description對象中,用Description對象實例來代表一個測試對象的屬性描述
QTP與QC的整合
通過QTP連接到QC後,可以將測試腳本保存到QC的測試需求中,然後就可以通過QC根據測試用例需求來運行QTP腳本並自動記錄測試結果。方法如下:
1、安裝“QuickTest Add-in for Quality Center”插件, QTP的安裝界面如圖,選擇“Quality Center加載項”就可以安裝QC的插件

2、QTP連接到QC
可以通過“File|Quality Center Connection”菜單,或 按鈕打開“File|Quality Center Connection”對話框,如圖。
在“File|Quality Center Connection”對話框中,在Server URL中輸入QC地址,點擊“Connect”按鈕


連接到QC後,出現左圖所示用戶登錄對話框。與通過IE登錄QC一樣,填入用戶名,密碼點擊“Authenticate認證後,選擇域,工程就可以了。
登錄後如右圖所示,點擊“Close”按鈕,關閉對話框


3、QTP腳本保存到QC
連接到QC後,在保存腳本時,會出現“Quality Centera”按鈕,如左圖。點擊該按鈕,會跳到QC中的測試計劃目錄中,如右圖,選擇好目錄,修改好命名,保存即可。


4、QC中運行測試腳本
(1)、在測試計劃中運行測試腳本
在測試計劃中,選擇要運行的測試腳本,然後選擇測試腳本頁面,就可以看到與QTP中一樣的專家視圖和關鍵字視圖的腳本,如圖。點擊 按鈕,就會啓動QTP,並運行腳本,但運行結束後不會保存結果到QC中。其實在測試計劃中一般都調試腳本。


(2)、在測試實驗室運行QTP腳本
在測試實驗室中,可以運行一個測試腳本,也可以批量運行一個測試集中的多個腳本。
建立一個包含8個測試腳本的測試集後(建立測試集的方法參考QC的培訓文檔),如圖。可以選側一個測試腳本,然後點擊運行按鈕,運行單個測試項,也可以直接點擊運行測試集按鈕,運行測試集中的所有測試腳本。

點擊運行測試集後會出現如圖對話框,在該對話框中配置運行主機,配置後,點擊運行全部,測試腳本就會依次被執行。

運行完後測試結果記錄到QC,如圖,可以點擊 "LAUNCH REPORT"查看測試報告。

NCP Service項目自動化測試
以NCP Service項目爲例,演示QTP應用於WEB程序的自動化測試
 

發佈了21 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章