複製鏈接
請複製以下鏈接發送給好友

QTP

鎖定
QTP是Quick Test Professional的簡稱,是一種自動測試工具。使用QTP的目的是想用它來執行重複的自動化測試,主要是用於迴歸測試和測試同一軟件的新版本。因此在測試前要考慮好如何對應用程序進行測試,例如要測試哪些功能、操作步驟、輸入數據和期望的輸出數據等。
外文名
QuickTest Professional
英文簡稱
QTP
詞語分類
計算機用語
軟件類型
自動測試工具
用    途
用它來執行重複的手動測試
支持腳本語言
VBScript

QTP基本功能

HP QuickTest Professional 提供符合所有主要應用軟件環境的功能測試和迴歸測試的自動化。採用關鍵字驅動的理念以簡化測試用例的創建和維護。它讓用户可以直接錄製屏幕上的操作流程,自動生成功能測試或者回歸測試用例。專業的測試者也可以通過提供的內置腳本和調試環境來取得對測試和對象屬性的完全控制。

QTP軟件特點

QTP
QTP(6張)
(1)QTP是一個側重於功能的迴歸自動化測試工具;提供了很多插件,如:.NET的,Java的,SAP的,Terminal Emulator的等等,分別用於各自類型的產品測試。默認提供Web,ActiveX和VB。
(2)QTP支持的腳本語言VBScript,這對於測試人員來説,感覺要“舒服”得多(如相比SilkTest採用C#,Java,4Test語言)。VBScript畢竟是一種鬆散的、非嚴格的、普及面很廣的語言。
(3)QTP支持錄製和回放的功能。錄製產生的腳本,可以拿來作為自己編寫腳本的template。錄製時,還支持一種lower level 功能,這個對於QTP不容易識別出來的對象有用,不過它是使用座標來標識的,對於座標位置頻繁變動的對象,採用這種方式不可行。另外,QTP的編輯器支持兩種視圖:Keyword模式和Expert模式。Keyword模式想法是好的,提供一個 描述近似於原始測試用例的、跟代碼無關的視圖(我基本很少用,除了查看、管理當前test中各個action的完整流程),而Expert就是代碼視圖,一般編寫腳本都在這個區域。
(4)一個有用的工具:Object Spy,可以用來查看Run-time object和Test object屬性和方法。
(5)QTP通過三類屬性來識別對象:(a)Mandatory;( b)Assistive; (c)Ordinal identifiers。大部分情況下,通過對象的一些特定屬性值就可以識別對象(類型a)。這些屬性可以通過Tools->Object Identification 定義。
(6)Object Repository(OR)是QTP存儲對象的地方。測試腳本運行後,QTP根據測試腳本代碼,從這個對象庫中查找相應對象。每個Action可以對應有一個或者多個OR,也可以設置某個OR為 sharable的,這樣可以供其他Action使用。注意,使用QTP錄製功能時,默認將被測對象放在local OR中,可以通過 Resources->Object Respository,選擇Local查看。
(7)説到QTP的要點,不得不説Action。Action是QTP組織測試用例的具體形式,擁有自己的DataTable和Object Repository,支持Input和output參數。Action可以設置為share類型的,這樣可以被其他test中的Action調用(注意:QTP是不支持在一個test中調用另外一個test的,只有通過sharable action來調用)。
(8)如(3)所述,一個test中,多個action的流程組織,只有通過Keyword視圖查看和刪除,在Expert視圖中沒有辦法看到。
(9)調用Action可以通過菜單Insert->Call to *** 來實現。QTP提供三種類型的調用方式:(a)call to new Action,在當前test中創建一個新的Action;(b)call to Copy of Action;(c)call to existing action,調用一個re-usable action,如果這個re-usable action來自另外一個test,將以只讀的方式插入到當前test中。
(10)QTP提供excel 形式的數據表格DataTable,可以用來存放測試數據或參數。DataTable有兩種類型:global 和local。QTP為DataTable提供了許多方法供存取數據,在對測試代碼進行參數化的時候,這些方法非常有用。
(11)環境變量(Environment Variables)。在一個test中,環境變量可以被當前test中所有action共享。環境變量也有兩種類型:build in 和user defined。用户自定義的環境變量可以指向一個XML文件,這樣可以實現在眾多test之間共享變量
(12)QTP可以引用外部的VBS代碼庫,通過Settings→Resource加入,也可以ExecuteFile命令在代碼中直接執行。這種VBS庫可以為所有action和test共享。
(13)QTP默認為每個test提供一個測試結果,包括Passed,Failed,Done,Warning和information幾種狀態類型,可以進行對結果Filter。但是,只能為每個test產生一個testing result,不能為多個testing產生一個總的testing result.

QTP主要步驟

QTP進行功能測試的測試流程 [制定測試計劃]——>[創建測試腳本]——>[增強測試腳本功能]——>[運行測試]——>[分析測試結果] 大致五個步驟:

QTP制定計劃

自動測試的測試計劃是根據被測項目的具體需求,以及所使用的測試工具而制定的,完全用於指導測試全工程。
QTP是一個功能測試工具,主要幫助測試人員完成軟件的功能測試,與其他測試工具一樣,QTP不能完全取代測試人員的手工操作,但是在某個功能點上,使用QTP的確能夠幫助測試人員做很多工作。在測試計劃階段,首先要做的就是分析被測應用的特點,決定應該對哪些功能點進行測試,可以考慮細化到具體頁面或者具體控件。對於一個普通的應用程序來説,QTP應用在某些界面變化不大的迴歸測試中是非常有效的。

QTP創建腳本

當測試人員瀏覽站點或在應用程序上操作的時候,QTP的自動錄製機制能夠將測試人員的每一個操作步驟及被操作的對象記錄下來,自動生成測試腳本語句。與其他自動測試工具錄製腳本有所不同的是,QTP除了以VBScript腳本語言的方式生成腳本語句以外,還將被操作的對象及相應的動作按照層次和順序保存在一個基於表格的關鍵字視圖中。比如,當測試人員單擊一個鏈接,然後選擇一個CheckBox或者提交一個表單,這樣的操作流程都會被記錄在關鍵字視圖中。

QTP增強腳本

錄製腳本只是為了實現創建或者設計腳本的第一步,基本的腳本錄製完畢後,測試人員可以根據需要增加一些擴展功能,QTP允許測試人員通過在腳本中增加或更改測試步驟來修正或自定義測試流程,如增加多種類型的檢查點功能,既可以讓QTP檢查一下在程序的某個特定位置或對話框中是否出現了需要的文字,還可以檢查一個鏈接是否返回了正確的URL地址等,還可以通過參數化功能,使用多組不同的數據驅動整個測試過程

QTP運行測試

QTP從腳本的第一行開始執行語句,運行過程中會對設置的檢查點進行驗證,用實際數據代替參數值,並給出相應的輸出結構信息。測試過程中測試人員還可以調試自己的腳本,直到腳本完全符合要求。

QTP分析測試

運行結束後系統會自動生成一份詳細完整的測試結果報告。 [1] 

QTP主要優點

Mercury QuickTest Professional 甚至可以使新測試人員在幾分鐘內提高效率。您只需通過按“記錄”按鈕,並使用執行典型業務流程應用程序即可創建測試腳本。系統使用簡明的英文語句和屏幕抓圖來自動記錄業務流程中的每個步驟。用户可以在關鍵字視圖中輕鬆修改、刪除或重新安排測試步驟。
QuickTest Professional 可以自動引入檢查點,以驗證應用程序的屬性和功能,例如驗證輸出或檢查鏈接有效性。對於關鍵字視圖中的每個步驟,活動屏幕均準確顯示測試中應用程序處理此步驟的方式。您也可以為任何對象添加幾種類型的檢查點,以便驗證組件是否按預期運行(只需在活動屏幕中單擊此對象即可)。
然後,可以在產品介紹(具有 Excel 所有功能的集成電子表格)中輸入測試數據,以便在不需要編程的情況下處理數據集和創建多個測試迭代,從而擴大測試案例範圍。您可以鍵入數據,或從數據庫、電子表格或文本文件導入數據。
高級測試人員可以在專家視圖中查看和編輯自己的測試腳本,該視圖顯示 QuickTest Professional 自動生成的基於業界標準的內在 VB 腳本。專家視圖中進行的任何變動自動與關鍵字視圖同步。
一旦測試人員運行了腳本,TestFusion 報告顯示測試運行的所有方面:高級結果概述,準確指出應用程序故障位置的可擴展樹視圖,使用的測試數據,突出顯示任何差異的應用程序屏幕抓圖,以及每個通過和未通過檢查點的詳細説明。通過使用 Mercury TestDirector 合併 TestFusion 報告,您可以在整個 QA 和開發團隊中共享報告。
QuickTest Professional 也加快了更新流程。當測試中應用程序出現變動(例如“登錄”按鈕重命名為“登入”)時,您可以對共享對象庫進行一次更新,然後此更新將傳播到所有引用該對象的腳本。您可以將測試腳本發佈到 Mercury TestDirector,使其他 QA 團隊成員可以重複使用您的測試腳本,從而消除了重複工作。
QuickTest Professional 支持所有常用環境的功能測試,包括 Windows、Web、.Net、Visual BasicActiveXJavaSAPSiebelOracle、PeopleSoft 和終端模擬器。為防止系統加載插件過多導致系統負載過重,在系統中只支持3個常用環境插件。
QTP8.0帶出了自動化測試革命的一個新名詞:關鍵字驅動。
QTP自身又帶有數據表支持數據驅動的測試,數據驅動使得自動化測試代碼複用率顯著提高,E測工作室自動化測試專家認為一段自動化測試腳本想要收回成本至少要被運行6次以上,數據驅動即提高了自動化測試收益。

QTP學習方法

使用QTP的目的是想用它來執行重複的手動,主要是用於迴歸測試和測試同一軟件的新版本。因此你在測試前要考慮好如何對應用程序進行測試,例如要測試哪些功能、操作步驟、輸入數據和期望的輸出數據等。
1,確保你的IE運行正常,依次點擊菜單 查看 ——> 工具欄,一定要上網助手等插件卸載掉,特別3721這個垃圾網站和其它攔截廣告的插件(它也把測試過程中彈出的窗口當成廣告,一樣會攔截的。)
2,如果是按照Tutorial_oldsidney_cn.pdf 文件 中的訂購飛機票的例子來練習 QTP的使用,那麼只需選擇Web插件就可以了。如果是測試其它的應用程序或系統,就要根據需要來選擇相應的插件了。
在這個階段你就要自己針對某個系統去錄製腳本、維護腳本了。在錄製後的回放過程中,你可能會遇到各種問題,這個時候就需要發揮你的主觀能動性來解決遇到的問題。我想你可以按照下面的方法去解決:1,查看QTP的有關文檔,包括Help 、QTP User‘s Guide等文檔。這些都是比較系統全面的材料。你該好好利用呀。
3,在本論壇上查看以前別人是如何解決此類問題的(如果有的話)或者是發新貼尋求幫助,也可以搜索Google 等網站尋找問題的解決方法;3,與自己部門的同事交流,例如與測試人員交流他們是如何解決的,與開發人員交流某個QTP無法識別的控件具體是是用什麼來識別的等。畢竟他們對你測試的環境和測試的軟件比論壇上的人熟悉呀。
4,自己通過學習VBscrīpt 等方式來提高自己的管理QTP scrīpt的能力。
或許你會發現許多問題都是由提出問題的人來解決的,因為他們希望問題得到解決的迫切心比誰都強烈。
如果你對VB scrīpt 、QTP和需要測試的程序或系統非常熟悉,你可能就想直接寫QTP scrīpt來表現一下了。如果你能達到這個水平,那麼恭喜你——-你就是真正的高手了。這個時候你已經可以從宏觀上把握QTP了,也能靈活自如地使用QTP了。 [2] 

QTP收購事件

2008年被惠普收購,正式名字為HP QuickTest Professional software ,2012年12月20日發佈的版本為HP QuickTest Professional 11.5 [3-4] 
2017年Micro Focus收購了惠普企業的軟件部門,QTP(UFT)現在是Micro Focus的產品。 [5-6] 
參考資料