<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 測試自動化框架-您必須知道的東西! > 原文: [https://www.guru99.com/test-automation-framework.html](https://www.guru99.com/test-automation-framework.html) 在本教程中,您將學習 * [什么是框架?](#1) * [什么是 TEST 自動化框架?](#2) * [自動化框架的類型](#3) * [1)線性腳本-記錄&播放](#4) * [2)測試庫體系結構框架。](#5) * [3)數據驅動的測試框架。](#6) * [4)關鍵字驅動或表驅動測試框架。](#7) * [5)混合測試自動化框架。](#8) ## 什么是框架? 讓我們考慮一個示例,而不是提供有關框架的粗俗定義。 我確定您已經參加了一個研討會/講座/會議,要求參與者遵守以下指南- * 參加者應在講座開始前 5 分鐘就座 * 帶上筆記本和鋼筆做筆記。 * 閱讀摘要,以便您對演示文稿有一個大概的了解。 * 手機應設為靜音 * 如果您需要在演講中途離開,請使用揚聲器對面的出口。 * 會議結束時將提出問題 您認為您可以在不遵守這些準則的情況下舉辦**研討會嗎?** 答案是很大的**是的!** 當然,您可以在沒有上述指導的情況下進行研討會/講座/會議/示范(事實上,即使有……,我們中的某些人也不會遵循它們::-) 但是,如果遵循這些指導方針,將會帶來有益的結果,例如減少演講過程中的聽眾分心,增加參與者對主題的保留和理解。 基于以上內容,可以將**框架定義為一組準則,遵循這些準則可以產生有益的結果。** ## 什么是 TEST 自動化框架? 一套準則,例如編碼標準,測試數據處理,對象庫處理等,在自動化腳本編寫過程中遵循這些準則可產生有益的結果,例如增加代碼重用,更高的可移植性,降低的腳本維護成本等。 準則而非規則; 它們不是強制性的,您仍然可以在不遵循準則的情況下編寫腳本。 但是您會錯過擁有框架的優勢。 ## 自動化框架的類型 1)線性腳本 2)測試庫體系結構框架。 3)數據驅動的[測試](/software-testing.html)框架。 4)關鍵字驅動或表驅動測試框架。 5)混合測試自動化框架。 讓我們詳細了解一下- ## 1)線性腳本-記錄&播放 它是所有框架中最簡單的,也稱為**“記錄&回放”** 。在此框架中,測試儀手動記錄每個步驟(導航和用戶輸入),在第一個步驟中插入檢查點(驗證步驟) 圓的。 然后,他在隨后的回合中播放錄制的腳本。 **示例:**考慮登錄到 Flight Reservation Application,并檢查是否在成功登錄時加載了該應用程序。 在這里,測試人員將只記錄步驟并添加驗證步驟。 ``` SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click 'Check Flight Reservation Window has loaded after successful log-on Window("Flight Reservation").Check CheckPoint("Flight Reservation") ``` ### 優點 * 生成腳本的最快方法 * 不需要自動化專業知識 * 學習測試工具功能的最簡單方法 ### 缺點 * 很少重復使用腳本 * 測試數據被硬編碼到腳本中 * 維護噩夢 ## 2)測試庫體系結構框架。 也稱為**“結構化腳本”** 或**“功能分解”。** 在此框架中,測試腳本最初是通過“記錄&播放”方法記錄的。 稍后,將識別腳本中的常見任務并將其分組為“功能”。 這些功能由稱為**驅動程序**的主測試腳本以不同的方式來創建測試用例。 **示例:**使用與上述相同的示例,用于登錄“航班預訂”的功能將如下所示。 ``` Function Login() SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click End Function ``` 現在,您將在主腳本中調用此函數,如下所示 ``` Call Login() --------------------------- Other Function calls / Test Steps. --------------------------- ``` ### Advantages * 與“記錄&回放”相比,結構化腳本實現了更高級別的代碼重用 * 由于重復使用代碼較多,因此自動化腳本的開發成本較低 * 腳本維護更輕松 ### Disadvantages * 使用測試庫框架編寫腳本需要技術專家。 * 需要更多時間計劃和準備測試腳本。 * 測試數據在腳本中進行了硬編碼 ## 3)數據驅動的測試框架。 在此框架中,雖然[測試用例](/test-case.html)邏輯位于測試腳本中,但是測試數據是分開的,并保留在測試腳本之外。 從外部文件(Excel 文件,文本文件,CSV 文件,ODBC 源,DAO 對象,ADO 對象)讀取測試數據,并將其加載到測試腳本中的變量中。 變量既用于輸入值,又用于驗證值。 測試腳本本身是使用線性腳本或測試庫框架準備的。 **例如:**使用此方法開發航班預訂登錄腳本將涉及兩個步驟。 **步驟 1)**創建一個 Test-Data 文件,該文件可以是 Excel,CSV 或任何其他數據庫源。 | **代理名稱** | **密碼** | | --- | --- | | 吉米 | 汞 | | 蒂娜 | 汞 | | 法案 | 汞 | **步驟 2)**開發測試腳本并引用您的測試數據源。 ``` SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set DataTable("AgentName", dtGlobalSheet) Dialog("Login").WinEdit("Password:").Set DataTable("Password", dtGlobalSheet) Dialog("Login").WinButton("OK").Click 'Check Flight Reservation Window has loaded Window("Flight Reservation").Check CheckPoint("Flight Reservation") **Note "dtGlobalSheet" is the default excel sheet provided by QTP. ``` ### Advantages * 對測試腳本的更改不會影響測試數據 * 測試用例可以與多個數據集一起執行 * 只需更改外部數據文件中的測試數據,即可執行各種測試方案 ### Disadvantages * 需要更多時間來計劃和準備測試腳本和測試數據 ## 4)關鍵字驅動或表驅動測試框架。 “關鍵字驅動”或“表驅動”框架要求開發數據表和關鍵字**,而獨立于用于執行它們的測試自動化工具**。 可以在有或沒有應用程序的情況下設計測試。 在關鍵字驅動的測試中,表中以及每個測試的分步說明中都記錄了被測應用程序的功能。 關鍵字驅動框架即 3 個基本組成部分。 關鍵字,應用程序圖,組件功能。 **什么是關鍵字?** 關鍵字是可以在 GUI 組件上執行的操作。 例如 對于 GUI 組件文本框,某些關鍵字(操作)為 InputText,VerifyValue,VerifyProperty 等。 **什么是應用程序映射?** 應用程序映射提供了 GUI 組件的命名參考。 應用程序映射不過是“ **對象存儲庫**” **什么是組件功能?** 組件功能是那些主動操縱或詢問 GUI 組件的功能。 一個功能示例是單擊具有所有錯誤處理的 Web 按鈕,然后在具有所有錯誤處理的 Web 編輯中輸入數據。 組件功能可以取決于應用程序或獨立于應用程序。 **例**:要理解“關鍵字視圖”,請舉相同的示例。 它涉及 2 個步驟 **步驟 1** :創建數據表(與在數據驅動框架中創建的測試數據表不同)。 該數據表包含要在 GUI 對象上執行的操作以及相應的參數(如果有)。 每行代表一個測試步驟。 | **對象** **(應用程序映射)** | **動作** **(關鍵字)** | **參數** | | --- | --- | --- | | WinEdit(代理名稱) | 設置 | 大師 99 | | WinEdit(密碼) | Set | 汞 | | WinButton(確定) | 點擊 | ? | | 窗口(航班預訂) | 驗證 | 存在 | **步驟 2** :以組件函數的形式編寫代碼。 創建數據表后,您只需編寫一個程序或一組腳本即可在每個步驟中讀取,然后根據包含在“操作”字段中的關鍵字執行該步驟,執行錯誤檢查并記錄所有相關信息。 該程序或腳本集將類似于以下偽代碼: ``` Function main() { Call ConnectTable(Name of the Table) { //Calling Function for connecting to the table. while (Call TableParser() != -1) //Calling function for Parsing and extracting values from the table. { Pass values to appropriate COMPONENT functions.Like Set(Object Name, Argument) ex.Set(Agent Name, Guru99). } } Call CloseConnection() //Function for Closing connection after all the operation has been performed. } //End of main ``` 以上就是關鍵字驅動框架。 關鍵字驅動框架的優點是關鍵字是可重用的。 為了理解這一點,您需要驗證網站的登錄操作,例如 YAHOO MAIL。 該表將如下所示- | **對象** **(應用映射)** | **操作** **(關鍵字)** | **參數** | | --- | --- | --- | | WebEdit(用戶名) | 組 | 此電子郵件地址已受到防止垃圾郵件機器人的保護。 您需要啟用 JavaScript 才能查看它。 | | WebEdit(密碼) | Set | xxxxxx | | WebButton(確定) | 請點擊 | | | 窗口(雅虎郵件) | 校驗 | 負荷 | 在這種情況下,如果您觀察到關鍵字 Set,Click,Verify 仍然保持不變,則已經為其開發了相應的組件功能。 您需要做的就是將應用程序映射(對象存儲庫)從較早的 Flight Reservation 更改為 Yahoo Mail,并更改參數值,并且相同的腳本將起作用! ### Advantages * 提供高代碼重用性 * 獨立于測試工具 * 獨立于被測應用程序,相同的腳本適用于 AUT(有一些限制) * 可以設計有無 AUT 的測試 ### Disadvantages * 最初的投資相當高,只有在應用程序很大且測試腳本要維持很多年的情況下,才能實現上述好處。 * 創建關鍵字驅動框架需要高級自動化專業知識。 **注意:**即使 Micro Focus UFT 宣傳自己為關鍵字驅動框架,也無法使用 HP UFT 實現完整的測試工具和應用程序獨立性。 ## 5)混合測試自動化框架。 顧名思義,該框架是上面討論的一個或多個框架的組合,這些框架從其優點中脫穎而出,并試圖減輕其缺點。 這種混合測試自動化框架是大多數框架隨時間推移和多個項目而演變而成的。 最大化的行業使用結合了功能分解方法的關鍵字框架。 **PS:**其他值得一提的框架是 ### 測試模塊化框架 在此框架中,測試腳本中的常見任務被分組為模塊。 **例**:在 QTP 中使用動作可以創建 Modualr 腳本 登錄示例腳本 ``` SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click 'End of Script ``` 現在,您可以在主腳本中按以下方式調用此操作: ``` RunAction ("Login[Argument]", oneIteration) ``` ### 業務流程測試(BPT) 該框架將大型業務流程分解為多個組件,這些組件可以在相同或不同的測試腳本中多次重復使用。 例如,預訂航班的業務流程分為登錄,查找航班,預訂,付款&注銷等組件,這些組件可以在同一業務流程或不同流程中重復使用。 此外,BPT 促進了 SME 和自動化工程師之間的緊密協作。
                  <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>

                              哎呀哎呀视频在线观看