歡迎使用 QuickTest Professional Tutorial

歡迎使用 QuickTest Professional Tutorial。本手冊是 QuickTest 的自我學習手冊。當你完成此手冊教學之後，可以對 QuickTest 有基本的認識，並將你所學習到的技巧，應用到你的測試工作中。

使用 QuickTest 你可以測試標準的網頁、一般 Windows 應用程式、Visual Basic 應用程式、ActiveX 控制項、多媒體物件等。

本手冊將引導你學習如何使用 QuickTest 建立自動化測試、執行、分析測試結果。

本手冊分成9個課程，在每一個課程中你會以 QuickTest 內附的範例 Mercury 旅遊網站作為練習的對象，建立並執行自動化測試腳本（script）。

接下來：

  • 使用 Tutorial

Mercury Interactive logo
Copyright 2003 Mercury Interactive Corporation

Documentation comments or suggestions?
Please send feedback to documentation@merc-int.com


使用 Tutorial

本手冊分成9個課程，在每一個課程中你會以 QuickTest 內附的範例 Mercury 旅遊網站作為練習的對象，建立並執行自動化測試腳本（script）。

當你完成本手冊的課程之後，就可以將這些技巧應用在測試你的網站上了。

QuickTest Professional 簡介 比較自動測試與手動測試的差別、介紹 QuickTest 的測試流程、並熟悉 QuickTest 使用者介面、以及 Mercury Tours 範例網站。

錄製測試腳本 教導你如何錄製測試腳本，並且對測試腳本 test tree 做個介紹。

錄製並分析測試腳本 示範如何執行測試腳本以及檢視測試腳本的執行結果。

建立檢查點 說明如何建立在測試腳本中檢查點以驗證網站上的資訊是你預期的。

參數化 示範如何透過參數化，讓你可以在測試腳本中使用多組資料執行測試腳本。

建立輸出值 教導你如何將網頁上的資料，輸出到參數中。

使用用字元 教導你在測試腳本中如何使用萬用字元。

將測試腳本切割成多個動作 說明如何將測試腳本切割成多個動作，讓測試腳本更模組化。

從這裡出發 告訴你哪裡可以獲得更多關於 QuickTest 的資訊。


QuickTest Profession 簡介

QuickTest Professional Tutorial

QuickTest Professional 簡介

課程綱要：

  • 自動測試的好處
  • 測試流程
  • QuickTest 視窗
  • 使用 Mercury Tours 範例網站


自動測試的好處

假如你執行過人工測試，你一定了解人工測試的缺點，人工測試非常浪費時間而且需要投入大量人力。使用人工測試的結果，往往是在應用程式交付前，無法對應用程式的所有功能都作過完整測試。

使用 QuickTest 可以加速整個測試的過程，並且在建置（build）完新版本的應用程式或網站後，可以重複使用測試腳本進行測試。

以 QuickTest 執行測試，就與人工測試一樣，QuickTest 會模擬滑鼠的動作與鍵盤的輸入，不過 QuickTest 比人工測試快多了。

自動測試的好處
快速 (Fast)
QuickTest 執行測試比人工測試速度快多了。
可靠 (Reliable)
QuickTest 每一次的測試都可以正確的執行相同的動作，可以避免人工測試的錯誤。
可重複 (Repeatable)
QuickTest 可以重複執行相同的測試。
可程式化 (Programmable)
QuickTest 可以程式的方式，撰寫複雜的測試腳本，以帶出隱藏在應用程式中的資訊。
廣泛的 (Comprehensive)
QuickTest 可以建立廣泛的測試腳本，涵蓋應用程式的所有功能。
可再使用 (Reusable)
QuickTest 可以重複使用測試腳本，即使應用程式的使用介面已經改變。


測試流程

QuickTest 的測試流程包含七大階段：

  1. 錄製測試腳本前的準備

    2. 在測試前需要先確認你的應用程式以及 QuickTest 是符合你的測試需求的。

    確認你已經知道如何對應用程式進行測試，例如要測那些功能、操作步驟、輸入的資料、預期的結果等。

    同時你也應該檢查一下 QuickTest 的設定，如 Test Settings (Test > Settings) 以及 Options 對話視窗 (Tools > Options) ，以確保 QuickTest 會適切的錄製並儲存資訊。例如，你應該確認一下 QuickTest 的 Object Repository 是以什麼模式儲存資訊的。

  2. 錄製測試腳本

    3. 當你瀏覽你的網站或是操作你的應用程式時，QuickTest 會在 tree View 中以圖示的方式顯示錄製的操作步驟。每個操作步驟都是使用者在錄製時的操作，如在網頁上點選一個超連結 (link)，或是按下視窗上的按鈕。

  3. 加強測試腳本
    • 在測試腳本中加入檢查點，你可以檢查網頁超連結、物件屬性或是字串，以驗證應用程式的功能是否正確。
    • 將錄製的固定值參數以取代，讓你使用多組的資料測試你的應用程式。
    • 使用邏輯 (logic) 或是條件 (conditional) 判斷式，讓你可以進行更複雜的測試。
  4. 對測試腳本除錯 (debug)

    5. 在修改過測試腳本之後，你可能會需要對測試腳本作除錯的動作，以確保測試腳本能正常且流暢的執行。

  5. 在新版應用程式或網站上執行測試腳本

    6. 透過執行測試腳本，QuickTest 會在新版的網站或是應用程式上執行測試，檢查應用程式的功能是否正確。

  6. 分析測試結果

    7. 分析測試執行的結果，找出應用程式的問題所在。

  7. 回報問題 (defect)

    8. 如果你也安裝了 TestDirector，則你可以將發現的問題回報到 TestDirector 的資料庫中。TestDirector 是 Mercury 的測試管理工具。


QuickTest 視窗

在你開始錄製測試腳本之前，你應該先熟悉 QuickTest 的視窗。

以下的畫面就是 QuickTest 的主視窗。

QuickTest 的主視窗包含下列的元件：

  • Title bar—顯示目前測試腳本的名稱
  • Menu bar—顯示 QuickTest 的功能表
  • File toolbar—管理測試腳本常用的工具列

  • Test toolbar—錄製測試腳本常用的工具列

  • Debug toolbar—對測試腳本除錯常用的工具列

    • 注意：當你第一次執行 QuickTest 時 Debug toolbar 是不會顯示的。你可以設定 View -> Toolbars -> Debug 讓 Debug toolbar 出現。
    本手冊並未包含如何對測試腳本除錯的課程，假如你需要額外的資訊，請參考QuickTest Professional User’s Guide。

  • Action toolbar—包含常用的功能按鈕，以及一個顯示測試動作 (action) 的下拉式清單 (list)，方便你檢視整個測試腳本中的測試動作。

    • 注意：當你第一次執行 QuickTest 時 Action toolbar 是不會顯示的。你可以設定 View -> Toolbars -> Action 讓 Action toolbar 出現。
    當你在測試腳本中加入 reusable 或 external action，則 Action toolbar 就會自動顯示，假如你需要額外的資訊，請參考QuickTest Professional User’s Guide。

  • Test pane—包含 Tree View 以及 Expert View
  • Test Details pane—包含 Active Screen
  • Data Table—當你對測試腳本做參數化時存放參數資料的地方，除了一個 Global 的資料表外，每個 action 也會有各自的資料表。
  • Debug Viewer pane—協助你對測試腳本除錯 (debug)。 Debug Viewer pane 包含 Watch Expressions、 Variables 以及 Command。

    • 注意：當你第一次執行 QuickTest 時 Debug Viewer 是不會顯示的。你可以設定 View -> Debug 讓 Debug Viewer 出現。
    假如你需要額外的資訊，請參考QuickTest Professional User’s Guide。

  • Status bar—顯示測試腳本的狀態

接下來的課程會詳細介紹 Test 以及 Standard 工具列。
而 Debug toolbar 會在 QuickTest Professional User’s Guide 的 “Debugging Tests” 章節中詳細說明。
至於 Action toolbar 會在 將測測試腳本切割成多個動作 中介紹。

除了工具列以外，QuickTest 也提供快速鍵，假如你需要額外的資訊，請參考QuickTest Professional User’s Guide 的 “QuickTest at a Glance” 章節。

接下來花幾分鐘的時間熟悉一下 QuickTest 的使用介面吧！


使用 Mercury Tours 範例網站

Mercury Tours 範例網站是一個提供預訂機票服務的網站，本手冊的所有課程，都是以 Mercury Tours 範例網站為練習的對象。

請花點時間熟悉一下 Mercury Tours 範例網站的操作。


修改瀏覽器的設定

假如你是使用 Internet Explorer 瀏覽器，請你先取消「自動完成」的功能，不要讓瀏覽器幫你自動輸入帳號與密碼，以確保在錄製的過程中，所有的操作都會被錄製下來。

取消「自動完成」的設定：

  1. 開啟 Internet Explorer 瀏覽器，點選 工具 -> 網際網路選項 -> 內容。
  2. 點選 個人資訊 中的 自動完成AutoComplete 按鈕，開啟「自動完成設定」對話視窗。
  3. 在 使用「自動完成」 取消 表單上的使用者名稱和密碼 選項。
  4. 點選 確定 按鈕，儲存設定並關閉對話視窗。


第一次使用 Mercury Tours 範例網站

在你開始使用 Mercury Tours 範例網站，進行本手冊的練習之前，你要先在 Mercury Tours 範例網站註冊使用者帳號。

使用 Mercury Tours 範例網站：

  1. 開啟 Mercury Tours 範例網站
    • 在你的瀏覽器中輸入以下的 URL:
      http://newtours.mercuryinteractive.com

      • 會開啟 Mercury Tours 範例網站的首頁。

  2. 註冊使用者

    3. 要登入並使用 Mercury Tours 你必須要註冊使用者帳號。

    在 Mercury Tours 的首頁點選 REGISTER 按鈕，會開啟 Register 網頁。

    在 User Information 輸入你的使用者帳號、密碼，並再確認密碼 (其它的資料欄位你可以不填)。

    點選 SUBMIT 按鈕。Mercury Tours 會出現確認網頁，接著點選 SIGN-ON 按鈕，會開啟 Sign-on 網頁。輸入你剛剛註冊的使用者帳號與密碼後，按下 SUBMIT 按鈕。

    Flight Finder 網頁會被開啟。

  3. 探索 Mercury Tours 範例網站

    4. 從 Flight Finder 網頁開始，按照畫面上的指示試著預訂機票。

    注意，在 Book a Flight 網頁，你不需要填寫真實的旅客資訊，以及信用卡卡號。你只需要在標示為紅色的欄位中添入虛構的資料就可以了 (你可以輸入假的信用卡卡號，如：8888888888888888)。

  4. 結束訂票動作

    5. 當你完成訂票動作後，在 Flight Confirmation 網頁上點選 LOG OUT 按鈕或是點選畫面上方的 SIGN-OFF 按鈕。

    你也可以在 Sign-on 網頁重新登入 Mercury Tours 範例網站。

  5. 關閉瀏覽器

    6. 現在你已經知道如何操作 Mercury Tour 範例網站了，接下來可以開始使用 QuickTest 錄製測試腳本了！


錄製測試腳本

當你瀏覽網站或使用應用程式時，QuickTest 會紀錄你的操作步驟，並產生測試腳本。

當你停止錄製測試腳本後，會看到 QuickTest 在 tree view 中以圖示的方式顯示測試腳本的操作步驟 (steps)。

課程綱要：

  • 錄製測試腳本前的準備動作
  • 錄製測試腳本
  • 分析 Test Tree


錄製測試腳本前的準備動作

在測試前需要先確認你的應用程式以及 QuickTest 是符合你的測試需求的。

在開始本手冊的所有課程前，請先確認以下事項：

  • 你已經在 Mercury Tours 範例網站註冊一個新的使用者帳戶。請參考 第一次使用 Mercury Tours 範例網站
  • 假如你是使用 Internet Explorer 瀏覽器，請你先取消「自動完成」的功能。請參考 修改瀏覽器的設定
  • 關閉所有的瀏覽器視窗。


錄製測試腳本

接下來，你會錄製一個測試腳本，在 Mercury Tours 範例網站上預訂一張從紐約 (New York) 到舊金山 (San Francisco) 的機票。

  1. 執行 QuickTest [image] 並開啟一個全新的測試腳本
    • 要開啟 QuickTest ，請點選 開始 -> 程式集 -> QuickTest Professional -> QuickTest Professional.

      • 在 Add-in Manager 勾選 Web Add-in ，並取消其它的 add-ins。然後點選 OK 按鈕關閉 Add-in Manager 視窗，進入 QuickTest Professional 主視窗。

      注意：QuickTest Professional 會花點時間以載入你選取的 add-ins。

      假如出現歡迎視窗，點選 Blank Test。

      或者，點選 File -> New，或是按下工具列上的 New [image] 按鈕。

      QuickTest Professional 會開啟全新的測試腳本。

    • 假如 QuickTest Professional 已經開啟，檢查 Help -> About QuickTest Professional 看目前載入了哪些 add-ins 。如果沒有載入 Web Add-in ，你必須關閉並重新開啟 QuickTest Professional，然後在 Add-in Manager 勾選 Web Add-in。

      • 點選 File -> New，或是按下工具列上的 New [image] 按鈕。

      開啟全新的測試腳本。

      注意：假如在執行 QuickTest Professional 時，未開啟 Add-in Manager，請點選 Tools -> Options，在 General tab 勾選 Display Add-in Manager on startup，下一次你執行 QuickTest Professaional 就會看到 Add-in Manager 開啟了。

  2. 開始錄製測試腳本

    3. 點選 Test -> Record 或是點選工具列上的 Record [image] 按鈕。 會開啟 Record and Run Settings 對話視窗。

    • 在 Web 頁籤，勾選 Open the following browser when a record or run session begins。

      • 從 Type 下拉清單選擇使用的瀏覽器，並且在 Address 輸入 http://newtours.mercuryinteractive.com。

      請確認勾選 Close the browser when the test is closed 。

    • 在 Windows Applications 頁籤，勾選 Record and run on these applications ，而且不要選取任何的應用程式。

      • 此設定可以避免你錄製到其它應用程式的操作。

      點選 OK。

      QuickTest 會開啟瀏覽器瀏覽 Mercury Tours 網站，並且開始錄製。

  3. 登入 Mercury Tours Web site

    4. 在 User Name 與 Password 輸入你註冊的帳號與密碼。

    點選 Sign-In。

    開啟 Flight Finder 網頁。

  4. 輸入訂票資料

    5. 輸入以下的訂票資料：

    • Departing From: New York
    • On: Dec 29
    • Arriving In: San Francisco
    • Returning: Dec 31
    • Service Class: Business class

      • 其它欄位則是保留預設值，然後點選 CONTINUE 開啟 Select Flight 網頁。

      注意：在輸入日期時請勿點選 View Calendar 按鈕，因為這個按鈕會開啟一個 Java 的月曆，而你並沒有載入 Java Add-in，會錄製不到這個動作。

      要檢查載入哪些 add-ins 請點選 Help -> About QuickTest Professional。要改變載入的 add-in，你必須關閉再重新開啟 QuickTest Professional。

  5. 選擇飛機航班

    6. 保留預設值，點選 CONTINUE 按鈕，開啟 Book a Flight 頁面。

  6. 輸入必要欄位

    7. 在標有紅色字體的必要欄位輸入旅客名字以及信用卡號碼 (你可以輸入虛構的信用卡號碼，例如：8888888888888888)。

    在 Billing Address 勾選 Ticketless Travel。

    按下網頁下方的 SECURE PURCHASE按鈕，開啟 Flight Confirmation 網頁。

  7. 檢視並完成訂票動作

    8. 檢視訂票資料，並點選 BACK TO HOME回到 Mercury Tours 網站的首頁。

  8. 停止錄製

    9. 在 QuickTest，點選工具列上的 Stop [image] 按鈕，停止錄製。

    你已經完成了預定紐約-舊金山機票的動作，QuickTest 已經錄製了從你按下 Record 按鈕後，到你按下 Stop 按鈕之間所有的操作。

  9. 儲存測試腳本

    10. 選取 File -> Save 或是點選工具列上的 Save [image] 按鈕，開啟 Save 對話視窗。

    建立一個 Tutorial 目錄，將測試腳本命名為 Recording。

    勾選 Save Active Screen files 。

    按下 存檔 按鈕，測試腳本名稱 (Recording) 會出現在 QuickTest 視窗的標題列。


分析 Test Tree

當你錄製測試腳本時， QuickTest 會將你的每一個操作錄製下來，並在 Tree View 中的 test tree 以圖示的方式表示所錄製的測試步驟。

在 test tree，你可以展開 (+) 或是合起 (–) 每個網頁 [image] 的測試步驟。你也可以選取 View -> Expand All 展開整個 test tree。

當你展開整個 test tree 時，它看起來應該與下面的 test tree 差不多：

QuickTest 會以圖示顯示此測試步驟作用的物件，並在圖示後顯示相關資訊。

以下會對上面的 test tree 的一些測試步驟作說明：

測試步驟
說明
下午 09:25 2004/05/22Action1 是一個動作的名稱，在 "將測試腳本切割成多個動作Dividing Tests into Multiple Actions." 中會說明何謂動作。
Welcome: Mercury 是被瀏覽器開啟的網站的名稱。
Welcome: Mercury 是網頁的名稱。
userName 是 edit box 的名稱。 Set 是在這個 edit box 上執行的動作。
QTP 則是被輸入的值。
password 也是 edit box 的名稱。 SetSecure 是在這個 edit box 上執行的動作，此動作有加密的功能。 3d5931a3f000395955ecf7 則是加密過的密碼。
Sign-In 是圖像物件的名稱。
Click 是在這個圖像上執行的動作。
27, 11 則是這個圖像被點選的 X, Y座標。

花點時間仔細看一下整個 test tree，並與你剛剛錄製的動作做個對照。


執行並分析測試腳本

當你執行測試腳本時，QuickTest 會開啟應用程式或網站並執行當初錄製的動作，並且在執行完後，開啟測試腳本的執行結果。

課程綱要：

  • 執行測試腳本
  • 分析測試結果


執行測試腳本

接下來你將會執行你在 錄製測試腳本 課程中錄製的測試腳本。

  1. 執行 QuickTest [image] 並開啟剛錄製的測試腳本

    2. 假如 QuickTest 沒開啟，點選 開始 -> 程式集 -> QuickTest Professional -> QuickTest Professional。

    • 假如開啟歡迎視窗，點選 Open Existing。
    • 假如沒開啟歡迎視窗，點選 File -> Open 或是點選工具列上的 Open [image] 按鈕。

      • 在 Open Test 對話視窗，選擇剛剛錄製的 Recording 測試腳本，然後點選 開啟。

  2. 確認所有畫面都會儲存在測試結果中

    3. QuickTest 可以讓你將所有的畫面儲存在測試結果中。在本課程中，所有的畫面都要儲存在測試結果中。

    點選 Tools -> Options 選擇 Run 頁籤，在 Save step screen capture to test results 選項中，選擇 always。

    點選 OK 關閉 Options 對話視窗。

  3. 開始執行你的測試腳本

    4. 點選 Run [image] 按鈕，或是點選 Test -> Run，開啟 Run 對話視窗

    勾選 New run results folder，並且接受預設的測試結果名稱。

    點選 OK 關閉 Run 對話視窗。

    當 QuickTest 開啟你的瀏覽器並且執行測試腳本時，請仔細的觀察 QuickTest 如何執行當初錄製的操作。
    同時在 QuickTest 的 test tree 會出現一個黃色的小箭頭，指示目前執行的測試步驟。


分析測試結果

當 QuickTest 執行完測試腳本，會自動開啟測試結果視窗。

一開始，測試結果視窗分成二個部份顯示測試執行的結果。

    • 左半邊顯示 test results tree，以圖示的方式顯示測試腳本所執行的步驟。 類似 QuickTest 主視窗中的 test tree，你可以點選 (+) 檢視每一個步驟，所有的執行步驟都會以圖示的方式表示。你可以設定 QuickTest 以不同的資料執行整個測試或是某個動作， 每一次的執行稱為一個反覆 (iteration) ，而且每個反覆都會被編號 (目前你執行的測試腳本只有一次反覆)。
    • 右半邊則是顯示測試結果的詳細資訊。在第一個表格會顯示哪些反覆是通過的、哪些反覆是失敗的。第二個表格則是顯示測試腳本的檢查點，哪些是通過的，哪些是失敗的，以及有幾個警告訊息。

由於 QuickTest 可以依照當初錄製的操作執行測試腳本，所以執行結果是通過的。接下來你將觀察 QuickTest 執行測試腳本的詳細結果，以及當你點選某個測試步驟時，會出現什麼樣的詳細資訊。

  1. 檢視某個測試步驟的詳細資訊

    2. 在 test results tree，展開 (+) Test Recording Summary -> Recording Iteration 1 (Row 1) -> Action1 Summary -> Welcome Mercury -> Find a Flight

    選取 test results tree 中的 "fromPort":Select "New York" 。

    則測試結果視窗會變成三個部份，分別顯示：

    • 左半邊是 Test results tree：有一個測試步驟被選取
    • 右上方是 Test results detail：被選取的測試步驟，其測試結果
    • 右下方是 Active Screen：顯示此測試步驟執行時擷取下來的畫面

      • 當你點選 test results tree 上的網頁圖示，你會在 Active Screen 中看到執行時的畫面。當你點選 test results tree 上的測試步驟 (在某個物件上執行某個動作) ，除了顯示當時的畫面外，此物件還會被粉紅色的框框框住。在上面的例子中，點選 test results tree 上的 "fromPort":Select "New York"， Active creen 會顯示被框住的 Departing From 下拉式清單。

  2. 關閉測試結果視窗

    3. 點選 File -> Exit。

現在，你已經成功的建立並執行一個測試腳本了。


建立檢查點

在前一個課程，你建立了一個可以成功在 Mercury Tours 範例網站上執行的預定機票測試腳本。接著你將會建立檢查點，以驗證網站的執行結果是正確的。

課程綱要：

  • 了解檢查點的種類
  • 檢查物件
  • 檢查網頁
  • 檢查文字
  • 檢查表格
  • 執行並分析使用檢查點的測試腳本


了解檢查點的種類

QuickTest Professional 提供以下的檢查點：

檢查點類型
說明
範例
標準檢查點
檢查物件的屬性
檢查某個 radio button 被選取
圖片檢查點
檢查圖片的屬性
檢查圖片的來源檔是正確的
表格檢查點
檢查表格的內容
檢查表格內的欄位內容是正確的
網頁檢查點
檢查網頁的屬性
檢查網頁載入的時間或是網頁是否含有不正確的連結 (link)
文字 /
文字區域檢查點
檢查網頁上或是視窗上該出現的文字是否正確
檢查訂票後是否正確出現訂票成功的文字
圖像檢查點
擷取網頁或視窗的畫面檢查畫面是否正確
檢查網頁 (或是網頁的某一部份) 是否如預期的呈現
資料庫檢查點
檢查資料庫的內容是否正確
檢查資料庫查詢的值是否正確
Accessibility
檢查點
Identifies areas of a Web site
to check for Section 508 compliancy
Check if the images on a Web page include ALT properties, required by the W3C Web Content Accessibility Guidelines.
XML 檢查點
檢查 XML 文件的內容
注意：XML 檔案檢查點是用來檢查特定的 XML 檔案； XML 應用程式檢查點則是用來檢查網頁內所使用的 XML 文件。

你可以在錄製過程中建立檢查點，也可以在錄製完成後再建立檢查點。接下來的課程，要教導你如何在 錄製測試腳本 課程的測試腳本上建立檢查點。

注意： When QuickTest creates a checkpoint, it assigns a name based on information inside the checkpoint—the checked value, for example. The checkpoint name remains unchanged, even if you subsequently modify the information on which it was based. Keep this in mind when looking for checkpoints displayed in the Tree View. However, note that QuickTest may shorten the name displayed in the Tree View.

要進一步了解如何建立檢查點，請參考 QuickTest Professional User’s Guide。


檢查物件

在這個課程，你會在 Book a Flight 網頁建立標準檢查點。這個檢查點是用來檢查旅客姓氏。

  1. 執行 QuickTest [image] 並開啟 Recording 測試腳本

    2. 假如 QuickTest 沒開啟，點選 開始 -> 程式集 -> QuickTest Professional -> QuickTest Professional。

    • 假如開啟歡迎視窗，點選 Open Existing。
    • 假如沒開啟歡迎視窗，點選 File -> Open 或是點選工具列上的 Open [image] 按鈕。

      • 在 Open Test 對話視窗，選擇剛剛錄製的 Recording 測試腳本，然後點選 Open。

  2. 將測試腳本另存成名為 Checkpoint 測試腳本

    3. 點選 File -> Save As。將測試腳本存檔成 Checkpoint。

  3. 確認 Active Screen 是開啟的

    4. 假如你沒有看到 QuickTest 右邊的 Active Screen，點選工具列上的 Active Screen [image] 按鈕，或是點選 View -> Active Screen。

  4. 選取要建立檢查點的網頁

    5. 你想要在使用者輸入姓氏後，建立一個檢查點檢查 First Name edit box 的屬性。

    在 test tree 中，展開 (+) Action1 -> "Welcome: Mercury" -> "Book a Flight"。

    由於輸入使用者姓氏的測試步驟是 "passFirst0" Set... 這個步驟，所以你要選取 "passFirst0" Set... 下面的測試步驟以便建立檢查點。

    選取這個測試步驟後，在 Active screen 會顯示 Book a Flight 網頁，而且被選取的物件也會被框起來。你也可以看到旅客的姓氏出現在 First Name edit box 中。

  5. 建立一個標準檢查點

    6. 對 Active Screen 中的 First Name edit box 點選滑鼠右鍵，選取 Insert Standard Checkpoint。開啟 Object Selection – Checkpoint Properties 對話視窗。

    確認 WebEdit: passFirst0 被選取後，點選 OK。

    開啟 Checkpoint Properties 對話視窗。

    對話視窗會顯示物件的屬性：

    • Logical name 是這個物件的名稱
    • Class 是這個物件的類別。 WebEdit 表示這個物件是個 edit box。
    • 在 Type 欄位中的 ABC 圖示表示這個屬性的值是個常數。

      • 對每個物件， QuickTest 會使用預設的屬性作為檢查的屬性。以下說明這些預設的屬性：

      屬性
      值
      說明
      html tag
      INPUT
      INPUT 就是 HTML 原始碼中的 INPUT 標籤。
      innertext
      在這個範例中，innertext 的值是空的。檢查點會檢查執行時這個屬性值是不是空的。
      name
      passFirst0
      passFirst0 這個 edit box 的名稱。
      type
      text
      text 是 HTML 原始碼中這個 INPUT 物件的類型。
      value
      <姓氏>
      (錄製測試腳本時你輸入的姓氏)
      在這個 edit box 輸入的文字。

      接受預設的設定值，然後點選 OK。QuickTest 會在你選取的步驟之前建立一個標準的檢查點。

  6. 儲存測試腳本

    7. 點選 File -> Save 或是點選工具列上的 Save [image] 按鈕。

    接下來你會按照以上的步驟建立其它類型的檢查點。


檢查網頁

在這個課程，你將會建立一個網頁檢查點。網頁檢查點會檢查網頁的連結 (link)以及圖片的數量是否與當初錄製時的數量一樣。

  1. 選取要建立檢查點的網頁

    2. 在 test tree 中，展開 (+) Action1 -> "Welcome: Mercury"。

    選取 test tree 中的 "Book a Flight" 網頁 [image] 。在 Active Screen 會顯示這個網頁的畫面。

  2. 建立一個網頁檢查點

    3. 在 Active Screen 上任一地方按下滑鼠右鍵，選取 Insert Standard Checkpoint，會開啟 Object Selection – Checkpoint Properties 對話視窗。 由於你點選的位置不同，對話視窗顯示被選取的物件可能會不一樣。

    點選 Page: Book a Flight (在最上層) 然後點選 OK。

    接著開啟 Page Checkpoint Properties 對話視窗。

    當你執行測試時，QuickTest 會檢查網頁的連結與圖片的數量，以及載入的時間，就如同對話視窗上方所顯示的。

    QuickTest 也檢查每個 link 的 URL 以及每個圖片的原始檔是否存在。

    接受預設值，點選 OK。

    QuickTest 會在 Book a Flight 網頁下方加上一個網頁檢查點。

  3. 儲存測試腳本

    4. 點選 File -> Save 或是點選工具列上的 Save [image] 按鈕。


檢查文字

在這個課程，你將會建立一個文字檢查點，檢查在 "Flight Confirmation" 網頁中是否出現 "New York"。

  1. 選取要建立檢查點的網頁

    2. 在 test tree 中，展開 (+) Action1 -> "Welcome: Mercury"。

    選取 test tree 中的 "Flight Confirmation" 網頁。在 Active Screen 會顯示網頁的畫面。

  2. 建立文字檢查點

    3. 在 Active Screen 中，選取在 “Departing,” 下方的 New York。

    對選取的文字按下滑鼠右鍵，點選 Insert Text Checkpoint 開啟 Text Checkpoint Properties 對話視窗。

    當 Checked Text 出現在下拉式清單中時，在 Constant 欄位會顯示你剛剛選取的文字。這就是 QuickTest 在執行測試腳本時所要檢查的文字。

    點選 OK 關閉對話視窗。

    QuickTest 會在測試腳本上加上一個文字檢查點，這個文字檢查點會出現在 "Flight Confirmation" 網頁下方。

  3. 儲存測試腳本

    4. 點選 File -> Save 或是點選工具列上的 Save [image] 按鈕。


檢查表格

在這個課程，你將會建立一個表格檢查點，檢查 Book a Flight 網頁上出國航班的價錢。

  1. 選取要建立檢查點的網頁

    2. 在 test tree 中，展開 (+) Action1 -> "Welcome: Mercury"。

    選取 test tree 中的 "Book a Flight" 網頁。在 Active Screen 會顯示網頁的畫面。

  2. 建立表格檢查點

    3. 在 Active Screen 中，在第一個航班的價錢上 (New York to San Francisco)—270— 點選滑鼠右鍵，然後選取 Insert Standard Checkpoint。

    開啟 Object Selection – Checkpoint Properties 對話視窗。

    一開始被選取的是 WebElement : 270 ，這時你要點選上一層的 WebTable 物件，選取 WebTable: New York to San Fransisco。

    注意，你會看到在 Active Screen 上，你選取的表格也會被框起來。點選 OK。

    接著開啟 Table Checkpoint Properties 對話視窗，顯示整個表格的內容。

    預設每個欄位都會被勾選，表示所有欄位都會做檢查。你可以對某個欄位點二下，取消檢查欄位，或是選取整個欄或列，執行選取或取消的動作。

    在每個欄位的標題列點二下，取消勾選的圖示，然後在第 3 行、第 3 列點二下，會在 270 左邊出現勾選的圖示。則執行時 QuickTest 會對此欄位做檢查。

    建議：你可以拖曳的方式改變欄位的寬度與高度，以便檢視表格內的資料。

    點選 OK 關閉對話視窗。

    QuickTest 會在測試腳本中， "Book a Flight" 頁面下加上一個表格檢查點。

  3. 儲存測試腳本

    4. 點選 File -> Save 或是點選工具列上的 Save [image] 按鈕。


執行並分析使用檢查點的測試腳本

在這個課程，你將會執行使用檢查點的測試腳本，並且分析執行的結果。

  1. 展開整個 test tree 檢視整個測試腳本

    2. 選取 View -> Expand All 或是使用 * 這個快速鍵。整個 test tree 就會展開如下所示：

  2. 開始執行測試腳本

    3. 點選 Run [image] 或是選取 Test -> Run ，會開啟 Run 對話視窗。勾選 New run results folder，接受預設值。

    點選 OK。當測試執行完畢，QuickTest 會自動開啟測試結果視窗。

  3. 檢視測試結果

    4. 當 QuickTest 執行完測試腳本，測試執行結果視窗會自動開啟，而且此次的測試執行結果應該是 Passed ，也就是說，所有的檢查點都是 Passed 。假如你的測試結果是 Failed ，表示有檢查點 Failed。

  4. 檢視網頁檢查點的結果

    5. 在 test tree 展開 (+) Checkpoint Iteration 1 (Row 1) -> Action1 Summary -> Welcome: Mercury -> Book a Flight:。

    並選取 Checkpoint:"Book a Flight:"。

    在右邊的 Details 窗格，你可以看到網頁檢查點的詳細結果，例如網頁檢查點檢查了哪些項目。

    建議：你可以拖曳 Details 窗格下方的邊緣，以便能更清楚的看到整個測試的結果。

    由於所有網頁檢查的項目，其實際值與預期值相符，所以這個網頁檢查點的結果是 passed 。

  5. 檢視表格檢查點的結果

    6. 在 test tree 的 Book a Flight: 網頁 展開 (+) New York to [image] 。

    並選取 Checkpoint:"New York to"。

    在 Details 窗格你可以看到表格檢查點的詳細結果，也可以在下方看到整個表格的內容 (有被檢查的欄位以黑色粗體文字顯示，沒有被檢查的欄位以灰色文字顯示)。由於這個表格檢查點檢查的欄位值，其實際值與預期值相符，所以檢查點的結果為 passed 。

  6. 檢視標準檢查點的結果

    7. 在 test tree 的 Book a Flight: 網頁 展開 (+) passFirst0。

    並選取 Checkpoint:"passFirst0"。

    在 Details 窗格你可以看到標準檢查點的詳細結果，如檢查了哪些屬性，以及屬性值為何。由於這個檢查點所有屬性值的實際值與預期值都一樣，所以檢查點的結果是 passed 。

  7. 檢視文字檢查點的結果

    8. 在 test tree 的展開 (+) Checkpoint Iteration 1 (Row 1) -> Action1 Summary -> Welcome: Mercury -> Flight Confirmation。

    並選取 Checkpoint:"New York"。

    在 Details 窗格你可以看到文字檢查點的詳細結果，由於這個文字檢查點的實際值與預期值都一樣，所以檢查點的結果是 passed 。

  8. 關閉測試結果視窗

    9. 點選 File -> Exit 關閉測試結果視窗。


參數化

當你在作測試時，你可能會想要使用多種不同的測試資料，針對同樣的操作或功能進行測試。

舉例來說，當你想要使用 10 組不同的訂單資料，來驗證新增訂單的功能。最簡單的方式是你可以直接將這 10 組不同資料的操作錄製下來；另一個聰明的選擇是，你可以將新增訂單的操作錄製下來，然後透過 QuickTest 的參數化功能，建立這 10 組不同的資料，如此一來，QuickTest 執行測試腳本時，就會分別使用這 10 組資料，執行 10 次新增訂單的測試了。

課程綱要：

  • 定義資料表參數
  • 在資料表中輸入參數
  • 修正受到參數化影響的測試步驟
  • 執行並分析使用參數化的測試腳本


定義資料表參數

在之前的課程，您錄製的測試腳本預訂了從紐約到舊金山的機票，在測試腳本中，紐約是個常數值，也就是說，每次執行測試腳本預定機票時，出發地點都是紐約。在這次課程，您將會學習到，如何將測試腳本中的出發地點參數化，如此一來，執行測試腳本時就會以不同的出發地點去預訂機票了。

  1. 執行 QuickTest [image] 並開啟 Checkpoint 測試腳本

    2. 假如 QuickTest 沒開啟，點選 開始 -> 程式集 -> QuickTest Professional > QuickTest Professional。

    • 假如開啟歡迎視窗，點選 Open Existing。
    • 假如沒開啟歡迎視窗，點選 File -> Open 或是點選工具列上的 Open [image] 按鈕。

      • 在 Open QuickTest Test 對話視窗，選擇剛剛錄製的 Checkpoint 測試腳本，然後點選 Open。

  2. 將測試腳本另存成名為 Parameter 測試腳本

    3. 點選 File -> Save As。將測試腳本存檔成 Parameter。

  3. 確認 Active Screen 是開啟的

    4. 假如你沒有看到 QuickTest 右邊的 Active Screen，點選工具列上的 Active Screen [image] 按鈕，或是點選 View -> Active Screen。

  4. 確認 Data Table 是開啟的

    5. 假如在 QuickTest 下方沒有出現 Data Table，請點選工具列上的 Data Table [image] 按鈕，或是點選 View -> Data Table.

  5. 選取要參數化的文字

    6. 在 test tree 中，展開 (+) Action1 -> "Welcome: Mercury" -> "Find a Flight"。

    在 "fromPort" Select "New York" 點選滑鼠右鍵，然後點選 Method Arguments。Method Arguments 對話視窗會開啟。

  6. 設定要參數化的屬性

    7. 所謂的 method 是 VBScript 中的用語，在 QuikTest 中用來表示「在物件上執行操作」。在這個例子中，這個 method 叫做 Select 因為使用者的操作是在一個清單上選擇一個選項。
    底下的 Arguments 表格，則是顯示此 method 可使用的參數。

    • ABC 圖示表示此參數是個常數。
    • Item 表示這個參數是清單上的一個選項。
    • New York 則是這個選項的值。

      • 選取 Item 這一行，則 Edit value 的 Constant 這個欄位會變成可以輸入的狀態，並且會出現參數的值 New York。

      接下來在 Edit value 選取 Parameter。如此一來，你就可以使用參數值來取代紐約 (New York) 這個常數值。

      請確認 Data Table 這個選項，這個選項表示此參數的值會從 QuickTest Data Table 中取得。

      而且 Parameter name 欄位會出現 fromPort_Item，請將其修改成 departure。

      點選 OK 關閉視窗。 QuickTest 會在 Data Table 中新增 departure 參數欄位，並且插入一行 New York 的值。則 New York 會成為測試腳本執行時所用的的第一個值。

      同時請特別注意一下在 test tree 中的變化。在參數化之前，此測試步驟是顯示 "fromPort" Select "New York"。現在，這個測試步驟變成了 "fromPort" Select <departure> 而且原來的圖示之前也多了個 [image] 圖示，表示此測試步驟已經被參數化了。


在資料表中輸入參數

如您所見，QuickTest 會在 Data Table 中顯示參數值。在此課程，你會在 Data Table 中加入更多筆出發地點的資料，讓 QuickTest 可以使用這些資料執行測試腳本。

  1. 在 departure 欄位輸入更多資料

    2. 點選 departure 欄位的第二行，並輸入 Portland。

    點選第三行，並輸入 Seattle。

    按下 Enter.

  2. 儲存測試腳本

    3. 點選 File -> Save 或是點選工具列上的 Save [image] 按鈕。


修正受到參數化影響的測試步驟

當某個測試步驟被參數化後，有可能會影響到其它的測試步驟也需要作參數化的動作。接下來，您將會對出發地點的文字檢查點作參數化，以符合您對出發地點作參數化的預期結果。。

  1. 修改文字檢查點

    2. 在 test tree 中，展開 (+) "Welcome: Mercury" -> "Flight Confirmation"。

    在 Checkpoint: "New York" 上點選滑鼠右鍵，選取 Checkpoint Properties，開啟 Text Checkpoint Properties 對話視窗。

  2. 對文字檢查點作參數化

    3. 在 Checked Text 的 Constant 欄位中會顯示 New York ，表示測試腳本每次執行時，這個文字檢查點的預期值為 New York。

    點選 Parameter。

    在 Parameter name 欄位中，選取 departure，設定此文字檢查點的預期值將從 Data Table 中的 departure 參數欄位中取得。

    點選 OK 關閉對話視窗。 同時請注意，在此測試步驟前也會出現 [image] 圖示，表示此文字檢查點也被參數化了。

  3. 儲存測試腳本

    4. 點選 File -> Save 或是點選工具列上的 Save [image] 按鈕。


執行並分析使用參數的測試步驟

現在，您可以執行修改完成後的 Parameter 測試腳本了。QuickTest 會使用 Data Table 中 departure 欄位的值，執行三次測試腳本。

  1. 執行 Parameter測試腳本

    2. 點選工具列上的 Run [image] 或是點選 Test -> Run，開啟 Run 對話視窗。

    選取 New run results folder ，其餘為預設值。

    點選 OK 開始執行測試腳本。當執行完畢，會自動開啟測試結果視窗。

  2. 檢視測試結果
    • Iteration 2:

      • 在 results tree 中，展開 (+) Parameter Iteration 2 -> Action1 Summary -> Welcome Mercury -> Flight Confirmation。

      選取 Checkpoint:"New York"。

      在檢查點的 Details 窗格中，顯示 Portland 為預期結果同時也是實際值，所以此文字檢查點為通過。你也可以看到在下方的 Application 窗格中，顯示機票的出發地點也是 Portland。

    • Iteration 3:

      • 在 results tree 中，展開 (+) Parameter Iteration 3 -> Action1 Summary -> Welcome Mercury -> Flight Confirmation。

      選取 Checkpoint:"New York"。

      在檢查點的 Details 窗格中，顯示 Seattle 為預期結果同時也是實際值，所以此文字檢查點為通過。你也可以看到在下方的 Application 窗格中，顯示機票的出發地點也是 Seattle。

      以下的表格顯示每次執行時，此文字檢查點的結果：

      Iteration
      Expected Text
      Actual Text
      Result
      #1
      New York
      New York
      Checkpoint Passed
      #2
      Portland
      Portland
      Checkpoint Passed
      #3
      Seattle
      Seattle
      Checkpoint Passed

      注意：雖然每次執行時，文字檢查點的結果是通過的，但是第二次與第三次的執行結果仍然為失敗。這是因為出發地點改變，造成在表格檢查點中的機票價錢改變，導致表格檢查點失敗。在 建立輸出值 的課程，您將會修正表格檢查點，讓 QuickTest 自動更新表格檢查點的預期結果，就可以檢查正確的票價了。

  3. 關閉測試結果視窗

    4. 點選 File -> Exit 關閉測試結果視窗。


建立輸出值

在 參數化 課程中，你透過使用參數與 Data Table 讓測試腳本可以使用不同的測試資料。同樣地，你也可以從應用程式輸出資料到 Data Table，而且此資料還可以在測試腳本的後面階段被使用到。QuickTest 會將取得的資料顯示在 Runtime Data Table。

舉例來說，你可以透過輸出值驗證二個不同網頁上的航班是一樣的，首先你先以輸出值將一個網頁上的航班編號輸出到 Data Table，然後用此輸出值當成另一個網頁上航班編號的預期結果。

課程綱要：

  • 建立一個輸出值
  • 執行並分析使用輸出值的測試腳本


建立一個輸出值

在 參數化 課程中，因為在表格檢查點中機票價錢的預期結果，並未隨著出發地點的改變而變動，導致第二、三次的執行結果是失敗的。

接下來，你將會從 Select a Flight 網頁上取得機票價錢，並且以取得的機票價錢更新表格檢查點的預期結果。如此一來，測試腳本就可以利用在 Select a Flight 網頁上取得的機票價錢，去驗證 Book a Flight 上顯示的機票價錢。

  1. 執行 QuickTest [image] 並開啟 Parameter 測試腳本

    2. 假如 QuickTest 沒開啟，點選 開始 -> 程式集 -> QuickTest Professional -> QuickTest Professional。

    • 假如開啟歡迎視窗，點選 Open Existing.
    • 假如沒開啟歡迎視窗，點選 File -> Open 或是點選工具列上的 Open [image] 按鈕。

      • 在 Open QuickTest Test 對話視窗，選擇 Parameter 測試腳本，然後點選 Open。

  2. 將測試腳本另存成名為 Output 測試腳本

    3. 點選 File -> Save As，將測試腳本存檔成 Output。

  3. 確認 Active Screen 是開啟的

    4. 假如你沒有看到 QuickTest 右邊的 Active Screen，點選工具列上的 Active Screen [image] 按鈕，或是點選 View -> Active Screen。

  4. 選取要輸出的文字

    5. 在 test tree 中，展開 (+) "Welcome: Mercury" 並且點選 "Select a Flight" 網頁，則這個網頁會出現在 Active Screen。

    在 Active Screen 中，選取框住 270 ，但是不包含 $ 符號。然後點選滑鼠右鍵，然後選取 Insert Text Output，會開啟 Text Output Value Properties 對話視窗。

  5. 設定輸出值

    6. 在 Data Table column name 欄位會顯示 Select_a_FlightOutput_Text_out，將其改成 depart_flight_price。

    接受其它預設值，點選 OK，QuickTest 會在 Data Table 中加入 depart_flight_price 欄位。

    注意：在 Data Table 上 depart_flight_price 欄位的第一行會顯示從應用程式上取得的輸出值 —270。在執行時，第一次 QuickTest 還是會取得一樣的值 —270，但是接下去第二、三次，就會從應用程式上取得實際值，並存放到 Data Table 中。

    QuickTest 會在你選取的測試步驟之前加上一個輸出值步驟，並且在 "Select a Flight" 網頁圖示前加上 [image] 圖示。

  6. 修正表格檢查點的預期值

    7. 在 test tree 中，展開 (+) "Welcome:Mercury" -> "Book a Flight:"。

    在 Checkpoint "New York to" 上點選滑鼠右鍵，點選 Checkpoint Properties，開啟 Table Checkpoint Properties 對話視窗。

    點選第三行，第三列 (被勾選的欄位)，在 Edit value: 中點選 Parameter 並從 Parameter name 中選取 depart_flight_price。

    點選 OK，在 test tree 中，這個表格檢查點會被加上 [image] 圖示，表示這個表格檢查點已經被參數化了。

  7. 儲存測試腳本

    8. 點選 File -> Save 或是點選工具列上的 Save [image] 按鈕。


執行並分析使用輸出值的測試腳本

接下來，你會執行測試腳本並分析其結果。

  1. 執行 Output 測試腳本

    2. 點選工具列上的 Run [image] 或試點選 Test -> Run，開啟 Run 對話視窗。

    選取 New run results folder ，其餘為預設值。

    點選 OK 開始執行測試腳本。當執行完畢，會自動開啟測試結果視窗。

  2. 檢驗執行時期的資料 (run-time data)

    3. 在測試結果視窗中，點選 results tree 上的 Run-Time Data，可以在表格中看到測試執行時擷取到的輸出值，而且在 depart_flight_price 欄位中顯示不同的機票價錢。

  3. 檢視檢查點的結果

    4. 點選 View -> Expand All。

    選取 Output Iteration 1 (Row 1) -> "Book a Flight" -> Checkpoint:"New York to"。

    注意在 Details 窗格中，顯示檢查點的結果是通過的。

    同樣地，也檢視 Iterations 2 以及 3 ，在 Details 窗格中，檢查點的結果也是通過的。

  4. 關閉測試結果視窗

    5. 點選 File -> Exit 關閉測試結果視窗。


使用萬用字元表示法

在 建立檢查點 課程中，你建立了文字檢查點，以檢查某個特定文字。在 QuickTest 你可以使用萬用字元表示法，讓測試腳本更有彈性、更能適應應用程式的變化。

課程綱要：

  • 萬用字元表示法
  • 使用萬用字元表示法
  • 執行並分析使用萬用字元表示法的測試腳本


萬用字元的表示法

透過萬用字元表示法， QuickTest 可以利用不同的屬性識別物件，也可以檢查不同的文字。不管是物件的屬性、方法的參數、測試步驟的參數、檢查點都可以使用萬用字元表示法。

萬用字元表示法透過一些特殊字元如點(.)、星號(*)、脫字符號(^)、以及中括號([])，組合搜尋的規則。要進一步了解如何使用萬用字元表示法，請參考 QuickTest Professional User’s Guide。


使用萬用字元表示法

接下來，你將會建立一個文字檢查點，用來檢查飛機出發日期，而此日期會依照你選取的航班不同而改變。你可以透過萬用字元表示法，設定文字檢查點止檢查此日期文字的格式，而不是檢查其日期。

為此，你將會使用萬用字元表示法，設定檢查日期的範圍是否正確。

  1. 執行 QuickTest [image] 並開啟 Recording 測試腳本

    2. 假如 QuickTest 沒開啟，點選 開始 -> 程式集 -> QuickTest Professional -> QuickTest Professional。

    • 假如開啟歡迎視窗，點選 Open Existing。
    • 假如沒開啟歡迎視窗，點選
      File -> Open 或是點選工具列上的 Open [image] 按鈕。

      • 在 Open QuickTest Test 對話視窗，選擇 Recording 測試腳本，然後點選 Open。

  2. 將測試腳本另存成名為 RegExpression 測試腳本

    3. 點選 File -> Save As ，將測試腳本存檔成 RegExpression。

  3. 確認 Active Screen 是開啟的

    4. 假如你沒有看到 QuickTest 右邊的 Active Screen，點選工具列上的 Active Screen [image] 按鈕，或是點選 View -> Active Screen。

  4. 選取要建立檢查點的文字

    5. 在 test tree 中，展開 (+) "Welcome: Mercury" 並且點選 "Select a Flight:" 網頁，則這個網頁會出現在 Active Screen。

    在 Active Screen ，以滑鼠框住出發班機的日期 12/29/2004 ，再以滑鼠右鍵點選並選取 Insert Text Checkpoint，開啟 Text Checkpoint Properties 對話視窗。

  5. 使用萬用字元表示要檢查的文字

    6. 在 Checked Text 點選 Edit Constant Value Options [image] 按鈕，開啟 Constant Value Options 對話視窗。

    在 Value 欄位，輸入 [0-1][0-9]/[0-3][0-9]/200[0-9]。設定 QuickTest 以 MM/DD/200Y 文字格式檢查此文字檢查點。

    勾選 Regular expression 選項，會出現訊息問你要不要在每個特殊字元前加上反斜線，點選 No。

    注意：假如你點選 Yes QuickTest 會將特殊字元，如 ( [ ), ( - ) 以及 ( ] ) 視作一般字元，而非萬用字元了。

    接受其它預設值，點選 OK 關閉 Constant Value Options 對話視窗，回到 Text Checkpoint Properties 對話視窗。

    點選 OK 關閉 Text Checkpoint Properties 對話視窗。

    QuickTest 會在測試腳本中加入文字檢查點， [image] 圖示會出現在 "Select a Flight:" 網頁的下方。

  6. 儲存測試腳本

    7. 點選 File -> Save 或是點選工具列上的 Save [image] 按鈕。


執行並分析使用萬用字元表示法的測試腳本

接下來將執行測試腳本，並分析其執行結果。

  1. 執行 RegExpression 測試腳本

    2. 點選工具列上的 Run [image] 按鈕，或是點選 Test -> Run，開啟 Run 對話視窗。

    選取 New run results folder 並接受預設的執行結果目錄名稱。

    點選 OK，開始執行測試腳本。當執行完畢，會自動開啟測試結果視窗。

  2. 檢視檢查點的執行結果

    3. 在 results tree，展開 (+) Test RegExpression Summary -> RegExpression Iteration 1 (Row 1) -> Action1 Summary -> Welcome: Mercury -> Select a Flight:。

    選取 CheckPoint:"[0-1][0-9]/[0-3][0-9"。

    你可能會注意到檢查點的顯示名稱比你輸入的萬用字元表示法還短，如果要了解更多的資訊，請參考 了解檢查點的種類。

    由於實際值與萬用字元表示法的格式是一致的，所以此文字檢查點結果為通過。

  3. 關閉測試結果視窗

    4. 點選 File -> Exit 關閉測試結果視窗。


將測試腳本切割成多個動作

在 QuickTest 中 Action 是一個可以被重複使用 (reuse) 的最小單位，當你建立一個全新的測試腳本時，測試腳本中只有一個 Action 名為 Action1，你可以將整個測試腳本切割成多個 Actions，讓測試腳本更為模組化且更容易被重複使用。

課程綱要：

  • 使用多個動作
  • 建立新動作
  • 插入已經存在的動作
  • 對動作作參數化
  • 執行並分析多個動作的測試腳本


使用多個動作

假如你檢視一下之前錄製的測試腳本，你將會發現其實整個測試腳本可以分割成幾個特別的業務流程：

    • 登入網站
    • 搜尋並預定機票
    • 登出

假如您要建立可以預訂五張不同機票的測試腳本，就如同我們在 參數化 課程中所學到的，您可以將整個測試腳本參數化。或者，您也可以透過將測試腳本切割成三個動作：登入網站、搜尋並預定機票、登出，然後將第二個動作參數化，以模擬一個用戶登入，然後預定五張機票，最後再登出。

要將測試腳本切割成動作，你可以插入新的動作、將一個動作切割成二個動作、插入已經存在的動作、或是呼叫已經存在的動作。

你可以使用以下的功能表選項或工具列上的按鈕，在錄製測試腳本時或是錄製完測試腳本後，插入動作：

  • 點選 Insert -> New Action 或是工具列上的 Insert New Action [image] 按鈕。
  • 點選 Step -> Split Action 或是工具列上的 Split Action [image] 按鈕。
  • 點選 Insert -> Copy of Action 或是在 Action 上點選滑鼠右鍵，選取 Insert Copy of Action.
  • 點選 Insert -> Call to Action 或是在 Action 上點選滑鼠右鍵，選取 Insert Call to Action.


建立新動作

接下來，你會建立一個分割成三個動作的測試腳本。


插入已存在的動作

當你在規劃一系列的測試個案時，可能會發現有些動作，如登入，可能在很多的測試個案中都會用到，則當你在一個測試腳本中，已經建立好登入的動作後，你可以透過複製或是呼叫方式，在其它的測試腳本中使用登入的動作。

當你以複製的方式插入動作，則你可以修改這個動作的複本，而且你的修改不會影響原來的動作，原來動作的改變也不會影響這個複本。當你以呼叫的方式插入動作，這個動作會變成唯讀的動作，你只能在原來的測試腳本中，才能修改被呼叫的動作。使用呼叫的方式，測試腳本可以有比較好的可維護性，因為當被測系統改變時，你只要修改原始的測試腳本就可以了。

在接下來的課程中，你會建立一個類似 ActionA 的測試腳本，其中 Sign_in 以及 ReturnHome 動作將來自外部的測試腳本 ( 以呼叫的方式使用其它測試腳本中的動作 ) 而且 FlightOrder 動作會作稍微的修改。


對動作作參數化

當你看到 ActionB 測試腳本下方的資料表 (Data Table) 時，你會發現有四個工作表：Global、Copy of FlightOrder、Sign_in [ActionA]以及ReturnHome [ActionA]。

注意：假如你沒看到資料表 (Data Table)，點選 View -> Data Table 就會顯示資料表。

在 Global 工作表中的資料是給整個測試腳本使用的。假如 Global 資料表中有 5 筆資料，則整個測試腳本會執行 5 次。另外，你也可以使用每個動作所屬的工作表。假如某個動作所屬的資料表中有 5 筆資料，表示當整個測試腳本執行 1 次時，此動作會執行 5 次。

注意：Sign_in [ActionA] 與 ReturnHome [ActionA] 工作表顯示為灰色的，表示這二個工作表是唯讀的，因為這二個工作表示屬於被呼叫的測試腳本的，你只能開啟原始的測試腳本才能修改。

接下來，你會為 FlightOrder 動作建立一個資料表，以用來驗證應用程式如何處理單一使用者預訂多張機票的動作。

  1. 開啟 ActionB 測試腳本

    2. 假如 ActionB 還沒開啟，點選 File -> Open 並選取 ActionB 測試腳本，然後按下 Open。

  2. 選取要參數化的步驟

    3. 展開 (+) Copy of FlightOrder -> "Welcome: Mercury" -> "Find a Flight"。

    在 test tree 中，對 "toPort" Select "San Francisco" 點選滑鼠右鍵，並選取 Method Arguments，開啟 Method Arguments 對話視窗。

  3. 輸入參數資料

    4. 在 Edit value 欄位，選擇 Parameter。

    在 Parameter name 欄位，輸入 ArrivalCity。

    你現在建立的資料，是給 Copy of FlightOrder 動作使用的參數資料。給某個動作所使用的參數稱為動作參數 (action parameter)。

    確認選取 Data Table 選項，點選 Edit Parameter Options [image] 按鈕，開啟 Data Table Parameter Options 對話視窗。

    選取 Current action sheet (local) 選項後，點選 OK 關閉對話視窗。

    再點選 OK 關閉 Method Arguments 對話視窗，QuickTest 自動在 Copy of FlightOrder 工作表中加入 ArrivalCity 欄位，而且第一筆資料為 San Francisco 。

  4. 參數化其它步驟

    5. 同一位旅客在同一天出發到二個不同的地點是很不合理的，所以你也要對出發與到達的日期作參數化。

    在 test tree 中，對 "fromMonth" Select "Dec" 點選滑鼠右鍵，依照步驟 2 與 3 的說明，對出發日期作參數化。請確認當 Data Table Parameter Options 對話視窗開啟後，選取 Current action sheet (local) 選項。

    在 test tree 中，對 "toMonth" Select "Dec" 點選滑鼠右鍵，依照步驟 2 與 3 的說明，對到達日期作參數化。請確認當 Data Table Parameter Options 對話視窗開啟後，選取 Current action sheet (local) 選項。

  5. 在資料表中輸入參數化資料

    6. 在資料表中，點選 Copy of FlightOrder 頁籤。

    在 ArrivalCity 欄位的第二列輸入 Portland 後按下 Enter。

    在出發 (departure) 與到達 (arrival) 欄位中，輸入 Oct 。

  6. 設定以資料表中的所有資料重複執行動作

    7. 預設值，QuickTest 只會執行一次測試腳本中的動作，而你想要 QuickTest 使用 Copy of FlightOrder 資料表中的所有資料為參數執行測試腳本。

    對 Copy of FlightOrder 動作點選滑鼠右鍵，選取 Action Properties，開啟 Action Properties 對話視窗。

    點選 Run 頁籤。

    選取 Run on all rows，假如有出現訊息視窗，點選 OK 關閉它。最後再點選 OK 關閉 Action Properties 對話視窗。

  7. 儲存測試腳本

    8. 選取 File -> Save 或是點選工具列上的 Save [image] 按鈕。

    現在你已經建立一個測試腳本，先登入 Mercury Tours 網站，並且預定二張機票：第一張機票是在 Dec 29 - Dec 31 從 London 到 San Francisco；第二張機票是在 Oct 29 - Oct 31 從 London 到 Portland 。最後在點選 Home 連結登出網站。


執行並分析多個動作的測試腳本

接下來，你會執行 ActionB 測試腳本，整個測試腳本只會執行一次，但是 FlightOrder 動作會執行二次，而且二次的資料分別是以 Copy of FlightOrder 資料表中的二筆資料。

  1. 執行 ActionB 測試腳本

    2. 關閉所有的瀏覽器。

    點選工具列上的 Run [image] 或是選取 Test -> Run，開啟 Run 對話視窗。

    選取 New run results folder 並接受預設的測試結果目錄名稱。

    點選 OK，當測試腳本執行完畢，開啟測試結果視窗。

  2. 檢視測試結果

    3. 檢視測試結果，可以看到測試結果標示為 Done，這表示整個測試執行沒有發生任何錯誤 (也沒有任何檢查點可以通過檢查)。

    展開 Test ActionB Summary -> ActionB Iteration 1 (Row 1) ，選取 Copy of FlightOrder Summary 動作，你可以看到下面顯示了二個動作執行的結果，表示這個動作執行了二次。

  3. 關閉測試結果視窗

    4. 點選 File -> Exit 關閉測試結果視窗。


從這裡出發

現在你已經完成本手冊中的所有練習，準備好使用 QuickTest 測試你的應用程式了。

課程綱要：

  • 開始測試你的應用程式
  • 取得額外的資訊


開始測試你的應用程式

透過本學習手冊，你已經學到如何使用 QuickTest 測試一般視窗應用程式以及網站。

我們建議你可以依照以下的程序對你的應用軟體進行自動化測試：

  1. 規劃測試個案

    2. 決定如何組織你的測試。考慮使用者如何操作你的應用程式或網站，以便決定錄製哪些操作。並且在測試前需要先確認你的應用程式以及 QuickTest 是符合你的測試需求的。

    決定使用哪種 object repository 模式，你所選擇的 object repository 模式，關係著 QuickTest 如何儲存與應用程式有關的資料。你可以使用預設的模式，每個測試腳本有自己的 object repository，也可以使用共享的 (shared) object repository 模式，讓多個測試腳本共用同一個 object repository。

    假如你是初學者，你可以使用預設的模式。

    假如你已經很熟悉 QuickTest，則你可以使用共享的 (shared) object repository 模式，讓多個測試腳本共用一個 object repository。當你的應用程式的使用者操作介面有變動，你只需要修改一個 object repository 中的資料就可以了。

    如需要詳細的資料，請參考 QuickTest Professional User’s Guide。

  2. 錄製你的測試腳本

    3. 依照你規劃的操作步驟，錄製測試腳本 (請參考 錄製測試腳本)。

  3. 修改你錄製的測試腳本
    • 加入檢查點 (請參考 建立檢查點) 以驗證網頁、GUI 物件、表格以及文字的值是否正確。
    • 將測試腳本中的固定資料以參數取代 (請參考 參數化) 以使用不同的資料驗證你的應用程式。
    • 建立輸出值 (請參考 建立輸出值) 以便在測試執行過程中取得輸出值。
    • 假如需要，可以使用萬用字元表示法 (請參考 使用萬用字元表示法) 。

      • 你還可以在測試腳本中以程式碼的方式加上條件判斷式。如需要詳細的資料，請參考 QuickTest Professional User’s Guide。

  4. 除錯 (假如需要的話)

    5. 對測試腳本進行除錯，以確保測試腳本可以正常的執行，不會中斷。如需要詳細的資料，請參考 QuickTest Professional User’s Guide。

  5. 執行測試腳本

    6. 在你的應用程式或網站執行測試腳本 (請參考 執行並分析測試腳本) 以驗證應用程式或網站的功能如你預期的。

  6. 分析測試結果

    7. 檢視測試腳本執行的結果，指出你的應用程式或網站，可能出現問題的所在。

  7. 回報發現的問題 (defects)

    8. 假如你有使用 TestDirector ，你可以提報問題單到 TestDirector 中 (TestDirector 是 Mercury Interactive 的測試管理工具，如需要詳細的資料，請參考 QuickTest Professional User’s Guide 以及 TestDirector 的文件)。


取得額外的資訊

要取得更多關於 QuickTest Professional 的資訊，你可以參考印好的文件，或是線上資源。


印好的文件

除了本手冊，QuickTest Professional 也提供以下的文件：

  • QuickTest Professional Installation Guide

說明如何安裝 QuickTest Professional。

  • QuickTest Professional User’s Guide

以 step-by-step 的方式提供使用 QuickTest Professional 執行自動化測試的指引。此使用手冊 (User’s Guide) 提供比本手冊 (Tutorial) 更詳細的資訊。

  • QuickTest Professional Object Model Reference

說明 QuickTest Professional 的 物件、 VBScript 語法、methods 以及範例。

  • QuickTest Professional Shortcut Key Reference Card

詳列可以用快速鍵執行的指令。


線上資源

除了本學習手冊之外，你還可以參考以下的文件與資源：

  • ReadMe (available from the QuickTest Professional Start menu program folder)

Provides the latest news and information about QuickTest Professional.

  • What’s New in QuickTest Professional (available from Help > What’s New in QuickTest)

Describes the newest features, enhancements, and supported environments in the current version of QuickTest Professional.

  • QuickTest Professional Context-Sensitive Help (available from dialog boxes and windows)

Describes specific QuickTest dialog boxes and windows.

  • QuickTest Professional User’s Guide (available from Help > QuickTest Professional Help)

Provides step-by-step instructions for using QuickTest Professional to test your application or Web site. The User’s Guide describes many useful testing tasks and options not covered in this tutorial.

  • QuickTest Professional Object Model Reference (available from Help > QuickTest Professional Help)

Describes QuickTest Professional test objects, lists the methods and properties associated with each object, and provides syntax information and examples for the methods.

  • QuickTest Professional Automation Object Model Reference (available from the QuickTest Professional Start menu program folder and from Help > QuickTest Automation Object Model Reference)

Provides syntax, descriptive information, and examples for automation objects, methods, and properties. It also contains a detailed overview to help you get started writing QuickTest automation scripts. The automation object model assists you in automating test management, by providing objects, methods and properties that enable you to control virtually every QuickTest feature and capability.

  • Microsoft VBScript Reference (available from Help > QuickTest Professional Help)

Includes Microsoft’s VBScript User's Guide and VBScript Language Reference.

  • Mercury Tours sample Web site (available from the QuickTest Professional Start menu program folder and also from the QuickTest Professional Record and Run Settings dialog box) and the Mercury Tours Windows sample flight application (available from the QuickTest Professional Start menu program folder)

The demonstration applications for QuickTest Professional and the basis for many of the examples in the documentation. The examples and instructions in this tutorial are based on the Mercury Tours Web site (http://newtours.mercuryinteractive.com).

  • Technical Support Online (available from Help >Technical Support Online)

Opens Mercury Interactive’s Customer Support Web site in your default Web browser. This site enables you to browse the knowledge base and add your own articles, post to and search user discussion forums, submit support requests, download patches and latest documentation, and more.The URL for this Web site is http://support.mercuryinteractive.com.

  • Support Information (available from Help >Support Information)

Presents Mercury Interactive's Web site and Customer Support site, information on user discussion forums, and links to information on Mercury Interactive's offices worldwide.

  • Mercury Interactive on the Web (available from Help > Mercury Interactive on the Web)

Opens Mercury Interactive’s home page in your default Web browser. This site provides you with the latest information about Mercury Interactive and its products, including new software releases, seminars and trade shows, customer support, and educational services. The URL of this Web site is http://www.mercuryinteractive.com.


Copyright Page

Copyright Information

QuickTest Professional Tutorial, Version 6.5

This manual, and the accompanying software and other documentation, is protected by U.S. and international copyright laws, and may be used only in accordance with the accompanying license agreement. Features of the software, and of other products and services of Mercury Interactive Corporation, may be covered by one or more of the following patents: U.S. Patent Nos. 5,701,139; 5,657,438; 5,511,185; 5,870,559; 5,958,008; 5,974,572; 6,138,157; 6,144,962; 6,205,122; 6,237,006; 6,341,310; and 6,360,332. Other patents pending. All rights reserved.

ActiveTest, ActiveTune, ActiveWatch, Astra, Fasttrack, Global SiteReliance, LoadRunner, Mercury Interactive, the Mercury Interactive logo, Open Test Architecture, Optane, POPs on Demand, ProTune, QuickTest, RapidTest, SiteReliance, SiteRunner, SiteScope, SiteSeer, TestCenter, TestDirector, TestSuite, Topaz, Topaz ActiveAgent, Topaz AIMS, Topaz Console, Topaz Delta, Topaz Diagnostics, Topaz Observer, Topaz Open DataSource, Topaz Prism, Topaz Rent-a-POP, Topaz WeatherMap, TurboLoad, Twinlook, Visual Testing, Visual Web Display, WebTest, WebTrace, WinRunner and XRunner are trademarks or registered trademarks of Mercury Interactive Corporation or its wholly owned subsidiary Mercury Interactive (Israel) Ltd. in the United States and/or other countries.

All other company, brand and product names are registered trademarks or trademarks of their respective holders. Mercury Interactive Corporation disclaims any responsibility for specifying which marks are owned by which companies or which organizations.

© 2003 Mercury Interactive Corporation, All rights reserved

If you have any comments or suggestions regarding this document, please send them via e-mail to documentation@merc-int.com.

Contacting Mercury Interactive Corporation
1325 Borregas Avenues
Sunnyvale, CA 94089
Tel: (408) 822-5200
Toll Free: (800) TEST-911, (866) TOPAZ-4U
Customer Support: (877) TEST-HLP
Fax: (408) 822-5300
http://www.mercuryinteractive.com


錄製測試腳本

  1. 執行 QuickTest [image] 並開啟一個全新的測試腳本

    2. 請參考 錄製測試腳本 的步驟 1

  2. 開始錄製 Mercury Tours 範例網站

    3. 接下來課程，你會錄製一個與 錄製測試腳本 課程中類似的測試腳本。不過為了練習如何使用多個 actions，這個測試腳本的執行步驟有稍微的經過安排。

    首先先關閉所有的瀏覽器。

    點選 Test -> Record 或是點選工具列上的 Record [image] 按鈕，將開啟 Record and Run Settings 對話視窗。

    • 在 Web 頁籤，點選 Open the following browser when a record or run session begins。

      • 在 Type 清單中選擇使用的瀏覽器，並在 Address 欄位中輸入 http://newtours.mercuryinteractive.com。

      勾選 Close the browser when the test is closed 選項。

    • 在 Windows Applications 頁籤，勾選 Record and run on these applications ，而且請確認清單中沒有任何應用程式。

      • 點選 OK。

      QuickTest 會開啟瀏覽器，顯示 Mercury Tours 首頁，並開始錄製測試腳本。

  3. 登入 Mercury Tours

    4. 在 User Name 以及 Password 輸入你之前註冊的帳號與密碼。

    點選 Sign-In。

    開啟 Flight Finder 網頁。

  4. 輸入航班資訊

    5. 輸入下列資料：

    • Departing From: New York
    • On: Dec 29
    • Arriving In: San Francisco
    • Returning: Dec 31

      • 其餘為預設值，點選 CONTINUE ，開啟 Select Flight 網頁。

  5. 選擇航班

    6. 接受預設值，點選 CONTINUE ，開啟 Book a Flight 網頁。

  6. 輸入必要的旅客資訊

    7. 輸入旅客姓名與信用卡號。

    點選網頁下方的 SECURE PURCHASE，開啟 Flight Confirmation 網頁。

  7. 回到 Flight Finder 網頁

    8. 在 Flight Confirmation 網頁下方，點選 BACK TO FLIGHTS ，回到 Flight Finder 網頁。

    回到 Flight Finder 網頁後再停止錄製，讓開始與結束都是同一頁面，這樣才可以讓測試腳本可以重複執行。

  8. 停止錄製

    9. 點選工具列上的 Stop [image] 按鈕停止錄製。

  9. 將測試腳本儲存成 ActionA

    10. 點選 File -> Save As，將測試腳本儲存成 ActionA。


將測試腳本分成二個動作

因為你的測試腳本包含了二個主要的業務流程：登入與訂票，所以將整個測試流程分成二個動作便相當合理。

  1. 選擇第二個動作要開始的網頁

    2. 在 test tree，展開 (+) Action1 -> "Welcome: Mercury"。

  2. 將測試腳本分成二個動作

    3. 選取 “Find a Flight” 網頁，並點選 Step -> Split Action 或是點選工具列上的 Split Action [image] 按鈕，開啟 Split Action 對話視窗。

  3. 輸入動作的名稱與說明

    4. 在 1st action 中的 Name 欄位輸入： Sign_in。

    在 1st action 中的 Description 欄位輸入： Enters user name and password to sign in。

    在 2nd action 中的 Name 欄位輸入： FlightOrder。

    在 2nd action 中的 Description 欄位輸入： Chooses and purchases a flight。

    其餘欄位保留預設值，點選 OK 關閉 Split Action 對話視窗。則 test tree 會合起來，而且出現二個動作。

    點選 View -> Expand All 檢視每個動作的內容，。注意， FlightOrder 動作的開始與結束應該都是 Find a Flight 網頁。


插入新動作

接下來，你將會插入一個新的動作，並且錄製回到 Mercury Tours 首頁的步驟，讓整個測試腳本的起始與結束都是在同一頁面。

  1. 插入新的動作

    2. 點選 Insert -> New Action 或是點選工具列上的 Insert New Action [image] 按鈕，開啟 Insert New Action 對話視窗。

    在 Name 欄位中輸入動作名稱 ReturnHome ，並選取 At the end of the test 然後點選 OK。關閉對話視窗後，在測試腳本最後面會顯示剛剛新增的 ReturnHome 動作。

  2. 準備錄製測試腳本

    3. 啟動瀏覽器並開啟 Flight Finder 網頁。

    輸入 Mercury Tours 的網址 (http://newtours.mercuryinteractive.com) 並登入，則會開啟 Flight Finder 網頁。

    調整一下瀏覽器與 QuickTest 的位置，以便可以看到二個視窗。

  3. 變更 Record and Run settings

    4. 目前你的 Record and Run settings 是設定在 Open the following browser when a record or run session begins ，QuickTest 會自動開啟瀏覽器到你指定的網址。不過你現在是要在已開啟的瀏覽器上，錄製的新的動作，所以你必須變更設定。

    點選 Test -> Record and Run Settings ，開啟 Record and Run Settings 對話視窗。

    在 Web 頁籤，選取 Record and run test on any open Web browser ，然後點選 OK。

  4. 錄製 ReturnHome 動作

    5. 在 Tree View，選取新的 ReturnHome 動作。

    點選 Test -> Record 或是點選工具列上的 Record [image] 按鈕。

    在 Flight Finder 網頁上，點選左邊目錄區的 Home ，回到 Mercury Tours 的首頁。

    然後點選工具列上的 Stop [image] 按鈕停止錄製。

  5. 回覆 Record and Run Settings 設定

    6. 由於你為了錄製 ReturnHome 動作而變更了 Record and Run Settings 的設定，但是這樣的變更會影響 QuickTest 執行測試腳本的方式。對這個測試腳本來說，你需要 QuickTest 幫你自動開啟瀏覽器並瀏覽 Mercury Tours 首頁，所以你必須將 Record and Run Settings 設定改回原本的設定。

    點選 Test -> Run and Record Settings，開啟 Record and Run Settings 對話視窗。

    同樣在 Web 頁籤，勾選 Open the following browser when a record or run session begins，並確認 http: //newtours.mercuryinteractive.com 顯示在 Address 欄位中，點選 OK。

  6. 儲存測試腳本

    7. 點選 File -> Save 或是點選工具列上的 Save [image] 按鈕，儲存測試腳本。


將動作設定成可再使用的動作 (Reusable Actions)

所謂的可再使用的動作 (Reusable Actions) 相當於程式設計中的函數 (function)。當你有個業務流程，在很多測試腳本中都會用到時，你可以將這個業務流程錄製成一個可再使用的動作 (Reusable Actions)。然後就可以在需要用到此業務流程的測試腳本中，呼叫使用它。

要讓一個動作可以被其它的測試腳本呼叫使用，這個動作必須是一個可再使用的動作 (Reusable Actions)。例如，您在這個課程中所建立的 Sign_in 以及 ReturnHome 動作，在其它的測試腳本中，通常也會有相同的動作，所以就可以將其設定為可再使用的動作 ( Reusable Actions )。

  1. 將 Sign_in 動作設定成可再使用的動作 (Reusable Actions)

    2. 在 Tree View 以滑鼠右鍵點選 Sign_in 然後選取 Action Properties，會開啟 Action Properties 對話視窗dialog box opens。點選 Reusable action 然後按下 OK。假如出現訊息視窗，注意一下顯示的訊息，然後點選 Do not show this dialog box again，然後按下 OK。則此動作的圖示會變成 [image] ，而且動作的名稱會變成藍色的文字。

  2. 檢視 Sign_in 動作

    3. 注意，你現在已經無法在 tree view 上展開 Sign_in 動作了。

    當你將某個動作轉換成可再使用的動作 (Reusable Actions) 後，你會發現在 tree view 上方出現了一個動作清單，清單中顯示在這個測試腳本中的所有可再使用的動作 (Reusable Actions) ，以及所呼叫的外部動作。

    要檢視 Sign_in 動作的內容，只要在清單中選取 Sign_in 動作就可以了。

    在 動作 清單中，選取 Test Flow 就可以回到原本的 test tree 了。

  3. 將 ReturnHome 也設定成可再使用的動作 (Reusable Actions)

    4. 對 ReturnHome 動作，重複步驟 1 與 2。

  4. 儲存測試腳本

    5. 點選 File -> Save 或是點選工具列上的 Save [image] 按鈕。


插入一個動作的複本

首先，你會插入 FlightOrder 動作的複本。

  1. 開啟一個新的測試腳本

    2. 假如你忘記怎麼作，請參考 錄製測試腳本 的步驟 1。

  2. 插入 FlightOrder 的複本

    3. 點選 Insert -> Copy of Action，開啟 Insert Copy of Action 對話視窗。

    點選 From test 欄位右邊的「瀏覽」按鈕，選取 ActionA 測試腳本後點選 Open，則在 ActionA 測試腳本中可以被使用的動作會顯示在 Select an action 清單中。注意，被選取的動作的說明會顯示在 New action description 中。

    選取 FlightOrder 動作，確認 Location 為 At the end of the test 後按下 OK。Copy of FlightOrder 動作會出現在測試腳本的最下方。注意，你剛剛插入的動作，與其他的動作一樣，你可以修改動作中的步驟。

  3. 修改 Copy of FlightOrder 動作

    4. 在 test tree 中，展開 (+) Copy of FlightOrder -> "Welcome: Mercury" -> "Find a Flight"，在 "fromPort" Select "New York" 點選滑鼠右鍵，選取 Method Arguments，開啟 Method Arguments 對話視窗。

    將 Constant 欄位中的值改成 London 後，按下 OK。

  4. 刪除測試腳本中的 Action1

    5. 每當開啟新的測試腳本都會有預設的 Action1 動作。由於測試腳本中一定要有至少一個的動作，所以你必須先插入 Copy of FlightOrder 動作，然後才能刪除 Action1 動作。現在，你可以將 Action1 刪除了。

    在 Tree View 中，點選 Action1 然後選取 Edit -> Delete 或是按下鍵盤上的 Delete 按鍵。出現確認訊息，按下 Yes 。

  5. 儲存測試腳本

    6. 點選 File -> Save As 或是點選工具列上的 Save [image] 按鈕，將測試腳本存成 ActionB。

  6. 檢查原始的 FlightOrder 動作是否也被修改

    7. 點選 File -> Open，選取 ActionA，點選 Open。

    展開 FlightOrder -> "Welcome: Mercury" -> "Find a Flight"，檢查一下你在 ActionB 測試腳本中修改的出發地點，在 ActionA 測試腳本中是否有被修改到 ( ActionA 的出發地點應該還是 New York )。


插入呼叫的動作

接下來，你將以呼叫的方式，把 ActionA 中的 Sign_in 與 ReturnHome 動作，插入 ActionB 中。

  1. 開啟 ActionB 測試腳本

    2. 點選 File -> Open，選取 ActionB 後按下 Open 按鈕。

  2. 插入呼叫的 Sign_in 動作

    3. 點選 Insert -> Call to Action，開啟 Insert Call to Action 對話視窗。

    點選 From test 右邊的「瀏覽」按鈕，選取 ActionA 測試腳本後點選 Open，只有可再使用的動作 (reusable actions) 會顯示在 Insert Call to Action 對話視窗中。

    選取 Sign_in 動作後，按下 OK ，Sign_in [ActionA] 動作會出現在測試腳本的最下方，而且圖示變成 [image] ，動作的名稱也變成藍色的文字，表示此動作為外部呼叫的動作。

    注意，你無法在 test tree 中展開 Sign_in 動作，要檢視 Sign_in 動作，你可以在 Action 清單中選取 Sign_in 動作。由於此動作目前是唯讀的，假如你要修改的話，只有開啟原來的測試腳本 (ActionA) 才能夠修改它。

    選取 動作 清單中的 Test Flow 回到原來的 test tree 。

  3. 將 Sign_in 動作設定成測試腳本的第一個動作

    4. 你希望將 Sign_in 動作變成測試腳本中的第一個動作。

    選取 Sign_in 動作，然後將其拖拉到 test tree 的最上方。

  4. 插入呼叫的 ReturnHome 動作

    5. 依照步驟 2 ，將 ActionA 測試腳本中的 ReturnHome 動作，插入測試腳本的最下方。

  5. 儲存測試腳本

    6. 點選 File -> Save 或是點選工具列上的 Save [image] 按鈕。

  6. 修改原始的 ReturnHome 動作

    7. 點選 File -> Open，選取 ActionA 測試腳本，然後按下 Open。

    對 ReturnHome 動作點二下以便檢視其內容。

    在 test tree ，選取 ReturnHome 動作的圖示，然後點選 Insert -> Step -> Comment ，開啟 Insert Comment 對話視窗，並加入註解。

    輸入：Return to page used in first step of the test ，後按下 OK。

    加入註解如下：

  7. 儲存測試腳本

    8. 點選 File -> Save 或是點選工具列上的 Save [image] 按鈕。

  8. 檢查原始 ReturnHome 動作的修改也影響到呼叫它的測試腳本

    9. 點選 File -> Open，選取 ActionB 測試腳本，按下 Open。

    對 ReturnHome [ActionA] 動作的圖示點二下以便檢視其內容，可以看到你在原始測試腳本 (ActionA) 中加入的註解也出現在呼叫它的測試腳本 (ActionB) 中。

    在 Action 工具列，點選 Action 清單並選取 Test Flow 回到原本的 test tree。