<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # QTP / UFT 中的數據,關鍵字&混合自動化框架 > 原文: [https://www.guru99.com/creating-automation-frameworks-with-qtp.html](https://www.guru99.com/creating-automation-frameworks-with-qtp.html) 在本教程中,我們將使用 QTP(HP UFT)創建 * [數據驅動框架](#1) * [關鍵字驅動框架](#2) * [混合框架](#3) 因此,讓我們開始吧- ## 數據驅動框架 數據驅動框架是由輸入和輸出數據的不同組合驅動的框架。 傳遞不同數據組合的一種方法是通過參數化。 在這種方法中,我們使用了 QTP 的不同功能。 要了解有關參數化的更多信息,請在處訪問[。](/uft-qtp-parameterization.html) 但是,在 DDF 中,編寫腳本來進行參數化。 當必須使用多個輸入測試 AUT 的功能并捕獲相應的輸出時,這種框架非常有用。 這些輸入可以從數據庫,Excel,Outlook,文本文件等外部文件中讀取,并將各自的輸出寫回到相應的外部源。 ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/22/6e/226e5c610301fb9f13b00baa566fac5d_1182x410.png "Creating Automation Frameworks with QTP") 數據驅動框架涉及的一般步驟是: 1. 為要測試的應用程序準備[測試用例](/test-case.html) 2. 將對象從 AUT 添加到 OR 3. 根據測試用例編寫腳本 在本教程中,我們將使用 Excel 作為測試數據的外部源,為示例測試用例開發數據驅動的框架設計。 ## 步驟 1)為被測應用程序準備測試用例 **測試用例**:打開訂單號并獲取該訂單的客戶名稱。 對不同的訂單號重復相同的過程 **外部源**:Excel 文件 ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/2e/d7/2ed7b921cb620c245df10a0335c3047e_963x594.png "Creating Automation Frameworks with QTP") 該示例的外部源是一個 Excel 文件。 必須編寫 Micro Focus UFT 中的 VB 腳本才能打開 Excel 文件,以便讀取測試數據。 這可以以分層的方式實現。 1.首先打開一個 Excel 文件作為“應用程序” 2.然后必須從指定位置打開工作簿 3.存在測試數據的表。 4.最后,必須讀取單元格。 ## 步驟 2)將對象從 AUT 添加到 OR 一旦測試用例準備就緒,就開始將所有必需的對象添加到存儲庫中。 在我們的測試案例中,需要添加的對象如下 * 航班預訂應用程序中的“打開文件夾”圖標 ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/58/4c/584cbe6fd7d0257c376747b3dc2645d6_335x94.png "Creating Automation Frameworks with QTP") * 單擊“打開文件夾”圖標可以獲取“訂單號”復選框 ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/25/73/2573d65c8cdc286bcc26e81677944736_191x28.png "Creating Automation Frameworks with QTP") * 訂貨號(在其中輸入數字)的 WinEdit 框 ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/55/dd/55dddfdd7765bf0a3369a87a4a74727e_158x53.png "Creating Automation Frameworks with QTP") * 確定按鈕 ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/45/41/45419d1b46852b326b6ac3b5d273acec_92x54.png "Creating Automation Frameworks with QTP") * “名稱”字段是 WinEdit 框。 單擊特定按鈕的“確定”按鈕后,將使用名稱填充該字段。 ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/39/a6/39a6bd530acd5ea141d8d9de2c06e176_283x46.png "Creating Automation Frameworks with QTP") 添加所有必需的對象后,對象存儲庫將顯示如下: ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/d4/c4/d4c45d4312b34256d8e343a5913b4956_390x248.png "Creating Automation Frameworks with QTP") ## 第 3 步)根據測試用例編寫腳本 在運行腳本之前,請確保已保存并關閉了包含測試數據的 Excel 文件。 下面的腳本是從 Excel 中讀取訂單號,然后通過變量“ vOrder”將其分配給應用程序,并通過變量“ vName”從應用程序中寫入客戶名稱。 **Excel 名稱**:FlightDDF.xlsx **工作表名稱**:工作表 1 ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/f4/61/f461ab29cc5d0cfbb0f5ae11539d273d_1060x584.png "Creating Automation Frameworks with QTP") ### 輸出量 一旦運行了以上腳本,就可以從 Excel 中獲取輸出,如下所示: ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/b7/39/b739e3164e72c0cece25223da3218d31_362x332.png "Creating Automation Frameworks with QTP") 數據驅動框架也可以通過編寫描述性程序來開發。 ### 使用數據庫作為 DDF 的外部源 如果外部源是數據庫,則可以使用以下步驟執行相同的測試用例 1. 編寫 VBScript 建立數據庫連接 2. VBScript 打開記錄集或表。 3. VBScript 打開所需的字段 4. 從該字段讀取特定的單元格。 ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/cb/f4/cbf415299ed89ca354b9288723280254_609x341.png "Creating Automation Frameworks with QTP") ### 腳本 ``` To Establish a Microsoft Database connection ``` 驅動程序= {Microsoft Access 驅動程序(* .mdb)}; DBQ = <數據庫的路徑> **記錄集名稱:** OpenOrder **字段名稱:** OrderNo,CustomerName P.S:無法使用以下腳本連接 Microsoft Access 2010。 ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/9b/72/9b7219c902fc2f107af5109a6ddef2b2_1059x395.png "Creating Automation Frameworks with QTP") ### Output ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/19/33/193302959f1176b43afff365a4bc917a_334x208.png "Creating Automation Frameworks with QTP") ### DDF 的優點 * 單個測試中可以讀取和寫入大量測試數據到外部文件中 * 循環語句用于重復幾次迭代的相同步驟。 因此減少了編碼工作 * 由于數據是直接讀寫到外部文件中的,因此無需復制,粘貼或導出數據即可使用它們 * 可以從外部文件讀取測試數據,并且可以將輸出寫入任何其他外部文件 ### DDF 的缺點 * 開發此框架需要腳本知識 * 有時,來自外部來源(如數據庫)的數據數量或組合可能會使 QTP 變慢甚至崩潰 ## 關鍵字驅動框架 關鍵字驅動框架是關鍵字驅動測試的框架。 此處**關鍵字指的是用戶定義的功能**。 在此框架中,將創建關鍵字以執行特定的測試步驟或測試用例。 然后,將這些關鍵字調用到驅動程序測試中,以在同一測試中運行多個測試用例。 要了解 QTP 中的用戶定義功能,請在此處訪問[](/uft-qtp-functions-library-call.html) ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/2e/8c/2e8cd6756ce0dbf971d869b26283f8d5_720x278.png "Creating Automation Frameworks with QTP") 通常,可以通過三種方式來開發框架以進行測試。 1. 記錄并運行測試 2. 將對象添加到本地存儲庫,并為所有測試步驟編寫腳本 3. 為所有測試步驟編寫描述性程序 在本教程中,通過記錄和運行測試來開發 KDF。 我們的目標是針對五個不同的測試用例運行一個測試,例如登錄到應用程序,插入訂單,打開訂單,刪除訂單并關閉應用程序。 因此,我們將記錄這些測試用例的測試步驟,并分別使用關鍵字 Login,InsertOrder,OpenOrder,DeleteOrder 和 CloseApp 創建函數。 **測試用例 1:登錄到應用程序** **關鍵字:**登錄() **錄制腳本:** **![Creating Automation Frameworks with QTP](https://img.kancloud.cn/11/fa/11fac63413a48e69b41bca393bf6afaa_756x103.png "Creating Automation Frameworks with QTP")** **測試用例 2:插入訂單** **關鍵字:** InsertOrder() **Recorded Script:** **![Creating Automation Frameworks with QTP](https://img.kancloud.cn/54/a6/54a69943748a227c746b860e211c6326_617x241.png "Creating Automation Frameworks with QTP")** **測試案例 3:打開訂單** **關鍵字:** OpenOrder() **Recorded Script:** **![Creating Automation Frameworks with QTP](https://img.kancloud.cn/41/ce/41ce15ca195980083477b6cb0050d339_680x120.png "Creating Automation Frameworks with QTP")** **測試案例 4:刪除訂單** **關鍵字:** DeleteOrder() **Recorded Script:** **![Creating Automation Frameworks with QTP](https://img.kancloud.cn/53/c6/53c6f350a77d1bb3f8ff5d3ce4bf88e3_771x182.png "Creating Automation Frameworks with QTP")** **測試案例 5:關閉應用程序** **關鍵字:** CloseApp() **Recorded Script:** ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/31/6c/316c7679878c155c562cb09932aed257_438x64.png "Creating Automation Frameworks with QTP") 為不同測試用例創建的功能將保存在功能庫中,并與主測試關聯。 在主測試中為所需的測試用例調用關鍵字就足夠了,從而減少了主測試中驅動程序腳本的大小。 這個簡單框架的驅動程序腳本如下: ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/99/cf/99cfbd1b258c2f58e7ad69510d6068b3_323x236.png "Creating Automation Frameworks with QTP") 通過運行上面的腳本,可以從一個測試中獲得所有五個測試用例的實際結果。 ### 優點 * 只需調用各自的關鍵字,就可以在單個測試上運行任意數量的測試用例 * 為所有 Web / Windows 對象&編寫通用的描述性編程,將它們作為關鍵字調用將有助于為不同的動態應用程序運行相同的測試 * 減少驅動程序腳本的大小 ### 缺點 * 如果要運行的測試用例數量很少,那么開發這些框架所花費的時間將非常長。 * 在同一測試中為許多應用程序設計 KDF 時,并不總是使用記錄步驟的方法。 ## 混合框架 混合框架是數據驅動框架(DDF)和關鍵字驅動框架(KDF)的組合,其中可以在同一測試中執行帶有多個輸入的多個測試用例。 在本文中,將在單個測試中執行 KDF 中使用的相同測試用例。 所有測試用例的關鍵字和腳本與 KDF 中的相同。 但是,TC3:打開訂單已被參數化。 因此,編寫此測試用例的腳本是為了從 Excel 文件接收訂單號,并將客戶名稱寫入 excel 文件。 ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/4e/26/4e2649a81cd236e84fff8c4738345623_695x386.png "Creating Automation Frameworks with QTP") **Test Case1: Login into the application** **Keyword:** Login () **Test Case2: Insert the Order** **Keyword:**InsertOrder() **測試案例 3:打開多個訂單號的訂單** **Keyword:**OpenOrder() **描述:**這里使用與開發 DDF 相同的腳本,從而實現多次迭代的測試用例。 **腳本:** ![Creating Automation Frameworks with QTP](https://img.kancloud.cn/a4/10/a410b0bb63ff216e315e5d6c19df1902_634x355.png "Creating Automation Frameworks with QTP") **Test Case4: Delete the Order** **Keyword:**DeleteOrder() **Test Case5: Close the application** **Keyword:**CloseApp() 通過遵循這種簡單的方法,可以實現 TC3 的參數化。 如果適用,所有其他測試用例也可以在同一測試中進行參數化。 例如,這是設計混合框架的非常簡單的方法。 使用描述性編程也可以實現相同的框架。 ### Advantages * 與其他框架相比,運行使用混合框架設計的測試所需的時間相對較少 * 當我們需要同一測試套件中的所有測試用例和與特定測試用例相關聯的輸入時,可以使用此方法。 ### 壞處 * 需要結合不同框架的明確知識。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看