QTP是Quick Test Professional的簡稱,是一種自動測試工具。使用QTP的目的是想用它來執行重複的自動化測試,主要是用於迴歸測試和測試同一軟件的新版本。(百度百科)html
2.測試用例網站web
測試網站地址:http://newtours.demoaut.com數據庫
本文參考自:QTP教程(入門到高級)windows
軟件下載:連接: http://pan.baidu.com/s/1qYCZ6SO 密碼: wuks瀏覽器
本文測試案例(解壓到qtp安裝目錄的Tests下):http://download.csdn.net/detail/sinat_31719925/9864314函數
2.1註冊與登陸工具
按提示輸入如下訂票數據,點擊「CONTINUE」按鈕打開「Book a Flight」頁面:post
查看訂票數據,並選擇「BACK TO HOME」回到Mercury Tours網站首頁或者退出。性能
2.2測試腳本學習
2.2.1錄製/執行測試腳本
當瀏覽網站或使用應用程序時,QuickTest會紀錄你的操做步驟,併產生測試腳本。當中止錄製後,會看到QuickTest在Keyword View中以表格的方式顯示測試腳本的操做步驟。錄製前要關閉與測試不相關的程序窗口。
開啓QuickTest,在「Add-in Manager」窗口中選擇「Web」選項。(這句話能夠略過: 檢查「Help>About QuickTest Professional」查看目前加載了那些add-ins。若是沒有加載「Web」,那麼必須關閉並從新啓動QuickTest Professional,而後在「Add-in Manager」窗口中選擇「Web」。)
選中「Automation>Record and Run Settings」或者點選工具欄上的「Record」按鈕。打開「Record and Run Settings」對話窗口
填寫網站的地址和打開網站的瀏覽器:
切換到「Windows Application」 標籤頁,咱們選擇第二個單選按鈕。由於咱們只是對Mercury Tours 範例網站進行操做,不涉及到Windows程序
點擊record,自動登陸Mercury Tours 網站,如上文所示預訂從 New York 到 San Francisco 的機票。最後,咱們就錄製了一個完整的測試腳本—預約從紐約到舊金山的機票。
2.2.2分析錄製的測試腳本
在錄製過程當中,QuickTest會在測試腳本管理窗口(也叫Tree View窗口)中產生對每個操做的相應記錄。
當錄製結束後,QuickTest也就記錄下了測試過程當中的全部操做。測試腳本管理窗口顯示的內容以下圖所示:
若是要將全部畫面儲存在測試結果中,在「Save step screen capture to results」選項中選擇「Always」選項。通常狀況下咱們選擇「On error」或「On error and warning」表示在回放測試過程當中出現問題時,才保存圖象信息。在這裏咱們爲了更多的展現QuickTest的功能,因此選擇使用「Always」選項。
在工具條上點擊「Run」按鈕,打開「Run」對話框:
詢問要將本次的測試運行結果保存到何處。選擇「New Run results folder」單選按鈕,設定好存放路徑(在這使用預設的測試結果名稱)。
在測試執行完成後,QuickTest會自動顯示測試結果窗口,以下圖所示:
在樹視圖中展開「Test1 Iteration 1(Row 1)>Action1 Summary>Welcome Mercury Tours>Find a Flight: Mercury>」,選擇「 "fromPost":Select "New York" 」。
3創建檢查點
掌握瞭如何錄製、執行測試腳本以及查看測試結果。只是實現了測試執行的自動化,沒有實現測試驗證的自動化,因此這並非真正的自動化測試。在這一章咱們學習如何在測試腳本中設置檢查點,以驗證執行結果的真確性。
「檢查點」是將指定屬性的當前值與該屬性的指望值進行比較的驗證點。這可以肯定網站或應用程序是否正常運行。當添加檢查點時, QuickTest 會將檢查點添加到關鍵字視圖中的當前行並在專家視圖中添加一條「檢查檢查點」語句。運行測試或組件時, QuickTest 會將檢查點的指望結果與當前結果進行比較。若是結果不匹配,檢查點就會失敗。能夠在「測試結果」窗口中查看檢查點的結果
QuickTest檢查點種類:
下面在測試腳本上創建檢查點:
將上面的test1腳本另存爲「test1_checkpoint」測試腳本。咱們在Checkpoint測試腳本中建立4個檢查點,分別是:對象檢查、網頁檢查、文字檢查以及表格檢查。
如上圖選擇「Insert Standard Checkpoint」選型,顯示「Object Selection-Checkpoint Properties」對話窗口:
確保當前的焦點定位在「WebEdit: passFirst0」上,點擊「OK」按鈕,彈出以下的窗口:
對於每個檢查點,QuickTest會使用預設的屬性做爲檢查點的屬性,下表說明這些預設的屬性:
咱們接受預設的設定值,點擊「OK」。QuickTest會在選取的步驟以前創建一個標準檢查點。
選擇最上面的「Page:Book a Flight: Mercury」,並點擊「OK」按鈕確認,將打開「Page Checkpoint Properties」對話框。
當執行測試時,QuickTest會檢查網頁的連接與圖片的數量,以及加載的時間,如同對話窗口上方所顯示的那樣。 QuickTest頁檢查每個連接的URL以及每個圖片的原始文件是否存在。
接受默認設定,點擊「OK」。QuickTest會在Book a Flight: Mercury 網頁上加一個網頁檢查。在工具欄上點擊「Save」保存腳本。
3.3文字檢查
創建一個文字檢查點,檢查在「Flight Confirmation」網頁中是否出現「New York」?
展開「Action1>Welcome: Mercury Tours」選擇「Flight Confirmation: Mercury」頁面,在「Active Screen」會顯示相應的頁面
在「Active Screen」中選擇在「Departing」下方的「New York」。對選取的文字按下鼠標右鍵,並選取「Insert Text Checkpoint」打開「Text Checkpoint Properties」對話窗口。
當「Checked Text」出如今下拉式清單中時,在「Constant」字段顯示的就是選取的文字。這也就是QuickTest在執行測試腳本時所要檢查的文字。
點擊「OK」關閉窗口。 QuickTest會在測試腳本上加上一個文字檢查點,這個文字檢查點會出如今「Flight Confirmation: Mercury」網頁下方
3.4表格檢查
展開「Action1>Welcome: Mercury Tours」選擇「Book a Flight: Mercury」頁面,在「Active Screen」會顯示相應的頁面。
創建表格檢查點 在「Active Screen」中,在第一個航班的價錢上「270」上點擊鼠標右鍵,選擇「Insert Standard Checkpoint」打開「Object Selection-Checkpoint Properties」對話窗口。剛打開時選取的是「WebElement:270」,這時要選擇上一層的WebTable對象,在這個例子中選擇「WebTable: New York to San Francisco」。點擊「OK」打開「Table Checkpoint Properties」對話窗口,顯示整個表格的內容:
預設每個字段都會被選擇,表示全部字段都會檢查,能夠對某個字段雙擊,取消檢查字段,或者選擇整個欄和列,執行選取或取消的動做。 在每一個字段的列標題上雙擊,取消勾選的圖標,而後再270字段處雙擊,這樣執行時QuickTest只會對這個字段值做檢查。
點擊「OK」關閉對話框。 QuickTest會在測試腳本中,「Book a Flight: Mercury」頁面下加上一個表格檢查點
在工具欄上點擊「Save」保存腳本
3.5.1 驗證標準檢查點
在test results tree中展開「Book a Flight: Mercury >passFirst0」,並選擇「Checkpoint"passFirst0"」。 在「Details」窗口能夠看到標準檢查點的詳細結果,如檢查了哪些屬性,以及屬性的值。
3.5.2驗證網頁檢查點
在test results tree中展開「Checkpoint Iteration 1 (Row 1) > Action1 Summary >Welcome: Mercury Tours >Book a Flight: Mercury」,並選擇「Checkpoint"Book a Flight: Mercury"」。 在右邊的「Details」窗口中,能夠看到網頁檢查點的詳細信息,例如網頁檢查點檢查了哪些項目。
3.5.3驗證文字檢查點
在test results tree中展開「Checkpoint Iteration 1 (Row 1) > Action1 Summary >Welcome: Mercury Tours > Flight Confirmation: Mercury」,並選擇「Checkpoint"New York"」。顯示如界面,由於文字檢查點的實際值與預期值相同,因此檢查點的結果爲Passed。
3.5.4驗證表格檢查點
在test results tree中展開「Book a Flight: Mercury >New York to San Francisco 」,並選擇「Checkpoint"New York to San Francisco"」。 在「Details」窗口能夠看到表格的詳細結果。也能夠在下方看到整個表格的內容,被檢查的字段以黑色的粗體文字顯示,沒有檢查的字段以灰色文字顯示。以下圖所示:
4.參數化
4.1參數化對象和檢查點中的值
4.2參數的種類
設置要參數化的屬性,選擇「Parameter」選擇項,這樣就能夠用參數值來取代「New York」這個常數了,在參數中選擇「Data Table」選項,這樣這個參數就能夠從QuickTest的Data Table中取得,將參數的名字改成「departure」。
點擊「OK」確認。參數化之後能夠看到樹視圖中的變化,在參數以前,這個測試步驟顯示「foomPost …Select… New York」,如今,這個步驟變成了「foomPost …Select… Data Table("departure",dtGlobalSheet)」。並且當點擊Value字段時,Value字段會顯示如圖所示:
QuickTest會在Data Table中新增departure參數字段,而且插入了一行New York的值,New York 會成爲測試腳本執行使用的第一個值。
在departure字段中加入出發點資料,使QuickTest可使用這些資料執行腳本,在departure字段的第二行,第三行分別輸入:Portland 、Seattle
4.4 修正受到參數化影響的檢查點
當測試步驟被參數化之後,可能會影響到其餘的測試步驟也要參數化,例如咱們爲了驗證 「Flight Confirmation」網頁中是否出現「New York 」,(文字檢查點),在網頁上添加了一個文字檢查點。那麼,就要對出發地的文字檢查點作參數化,以符合對出發地點參數化的預期效果。
4.5執行並分析使用參數的測試腳本
在樹視圖中,展開「Parameter Iteration2 >Action1 Summary >Welcome Mercury Tours>Flight Confirmation: Mercury」,選擇「Checkpoint"New York"」,顯示以下圖:
在檢查點「Details」窗口中,顯示Portland爲預期記過同時也是實際的值,因此文字檢查點爲經過。同時也能夠看到在下方的「Application」窗口中,顯示機票的出發地點也是Portland。
5.輸出值
經過 QuickTest 能夠檢索測試或組件中的值,並將這些值做爲輸出值存儲。此後,就能夠檢索這些值,並在運行會話的不一樣階段使用該值做爲輸入.
5.1輸出值類型
將輸出值步驟添加到測試或組件時,首先選擇要輸出的值的類別,例如,屬性值、文本值或 XML 元素值。而後,就能夠肯定要輸出的值以及每一個值的存儲位置。在QuickTest中能夠建立如下幾個類別的輸出值:
1. 標準輸出值
2.文本和文本區輸出值
可使用文本輸出值來輸出屏幕或網頁中顯示的文本字符串
3.數據庫輸出值
基於在數據庫上定義的查詢的結果(結果集)來輸出數據庫單元格內容的值。能夠從結果集的所有內容中建立輸出值,也能夠從其中某一部分建立輸出值。
4. XML輸出值
5.2存儲輸出值
定義輸出值時,能夠指定運行會話期間在哪裏以及如何存儲每一個值。能夠將值輸出到:
1.測試、操做或組件參數
2. 運行時數據表
3. 環境變量
5.3在腳本中創建輸出值
在「Text Output Value Properties」對話窗口中點擊「Modify」按鈕,打開「Output Options」對話窗口,在名字字段顯示Select_a_Flight_MercuryOutput_Text_out,將其改爲depart_flight_price ,接受其它默認值,點擊「OK」確認,QuickTest會在Data Table中加入depart_flight_price字段。
5.4修正表格檢查點的預期值
5.5執行並分析使用輸出值的測試腳本
執行測試腳本:點擊工具欄上的「Run」按鈕
在執行結果窗口中,點擊樹視圖中的「Run-Time-Data」,能夠在表格中看到執行測試時使用的輸出值,在depart_flight_price字段中顯示了不一樣的機票價錢。
在結果窗口中點擊「Test output Summary」能夠看到,12個檢測點都經過了驗證,運行結果均爲Passed。