新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 自動化測試體系整體解決方案探討

        自動化測試體系整體解決方案探討

        作者: 時間:2017-01-09 來源:網絡 收藏
        自動化測試已經越來越深入人心,其重要性也是不言而喻的。性能測試中大規模并發的要 求,壓力測試中的大規模壓力的模擬,回歸測試中的大規模測試用例的反復執行都要求實現一個高可用、高可擴展性的自動化測試框架體系。因此,如何在一個開放 的框架下,構建一個完整的自動化測試體系是我們需要研究的方向。

          一個完整的自動化測試框架體系包含以下幾個部分:1、自動化測試框架;2、測試腳本以及測試數據管理;3、測試腳本的執行管理系統;4、測試結果的顯示與分析系統。其中最重要的是自動化測試框架部分。

        本文引用地址:http://www.104case.com/article/201701/337537.htm

          第一部分,自動化測試框架。自動化測試框架要解決的問題,從本質上來說,是實現分布 式資源透明化的過程。由于性能測試、壓力測試的要求,我們往往需要構建一個分布式的測試環境,在這個分布式的測試環境中,我們需要多種測試平臺(例如:多 臺windows,多臺linux等)。自動化測試框架的作用就在于將分布式環境中的各種資源變成相應的服務對象。例如一臺windows機器,在自動化 測試的框架中,我們看到的將不再是一臺windows機器,而是綁定到某一個IP地址上的一個服務對象。通過這個對象,我們可以通過一個通用的調用方法 (本地調用一個遠程提供的方法,需要采用對象映射的技術),告訴這個對象,讓它做我們希望它去做的事情,例如啟動一個指定的測試腳本(這個測試腳本可能是 我們日常寫的某一個測試用例,也可能是其他操作)。在自動化測試框架的實現上,其主要是建立了一個以提供服務為主的底層的通訊網絡。而在服務的應用上,我 們可以采用插件模式,以及對象映射的技術,可以動態的無限的擴展我們的服務。根據我個人的實踐,STAF + python的開發模式可以很好的實現這個框架。STAF主要構建了一個網絡體系,使得各種機器資源之間可以自由的通訊。而python則可以在STAF 的基礎上進行二次開發,可以構建一個動態插入的服務體系。

          第二部分,測試腳本及測試數據的管理。首先要選擇一種合適的自動化腳本語言。一般來 說,需要考慮以下幾個方面:(1)高可讀性,(2)無需編譯,(3)可擴展性,(4)強大的第三方支持,尤其是對各種數據源的支持。我們可以采用CVS或 者SVN的方式來實現對測試腳本和測試數據的管理。在這里,主要依靠高度組織化的目錄結構來實現,尤其是需要和實際測試過程中的測試套件,測試模塊以及測 試用例的組織結構進行匹配,分級管理。形成一個完整的測試腳本和測試用例的資源庫。對于測試腳本的編寫,有一些基本的要求:1、形成一套測試腳本的編寫規 范;2、測試腳本采取分層設計思想,持久層(數據資源庫,對象資源庫,統一IO),邏輯層(封裝基本業務邏輯,實現API級調用),腳本層(實現測試用例 過程,主要是描述測試步驟)。通過這些,測試工程師編寫測試腳本將會變得十分輕松,測試的效率也會有大幅度的提升,大規?;貧w,甚至是在第一輪測試就實現 自動化測試也不再是夢想。

          第三部分,測試腳本的執行管理系統。大量的測試腳本編制好了以后,一個很重要的步驟 就是大批量的執行這些測試腳本。通過CVS或者SVN的管理,我們生成了一個測試資源庫,一個測試用例將是一個測試腳本。測試腳本執行管理系統的目的,就 是要在用戶定制的時間去執行用戶選定的測試用例。測試腳本執行管理系統也應該能動態的追蹤到當前正在運行的任務的狀態,例如執行百分比等等;還可以實現多 用戶管理,例如同時執行多個用戶提交的測試需求。同時,測試腳本管理系統還應該實現測試環境自動部署的功能。一般來說,我們在進行大規模的自動化測試之 前,需要準確部署測試環境,這里就要求用最新的代碼版本來進行測試。因此,測試環境的自動部署也是很重要的。

          第四部分,測試結果的顯示與分析系統。通過統一的IO調用,我們可以將測試過程中產 生的錯誤信息,日志信息,以及測試結果動態的放到我們想要存放的地方。測試結果的顯示與分析系統正是基于這些數據進行處理的系統。每一個測試用例在執行的 過程中,需要輸出大量的日志信息,這些日志信息是非常重要的。通常,我們判斷一個測試用例執行結束以后,是否有Bug,常常需要深入分析這些日志信息。在 測試用例執行的過程中,不光要打印相關的測試數據,實際獲取到的數據,還要打印相應的測試步驟,這樣才便于對測試結果進行分析。至于顯示系統,主要是對測 試結果的一個分類檢索功能,可以生成各類報表,例如,一個300個測試用例的模塊中有多少通過的,有多少是失敗的等等。有一個基本原則是很重要的,自動化 測試不是為了自動化,而是為了發現Bug。如果自動化測試不能發現Bug,那么花費大量的人力物力實現自動化,也是沒有什么實際意義的。因此,深入收集測 試用例執行的過程中產生的各種信息是非常重要的。個人的實踐經驗表明,這些信息對于發現Bug起著至關重要的作用(測試步驟的描述也不容忽視)。

          自動化測試體系不是一個工具,一種自動化測試腳本語言就可以實現的。它需要一個完整的解決方案才能實現。個人的實踐經驗表明,自動化測試框架的引入、強大的資源整合能力和有效的自動化測試體系的設計將是實現自動化測試的十分重要的因素。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 新民市| 凉城县| 烟台市| 上高县| 宁武县| 仲巴县| 仙游县| 昭平县| 盘山县| 同江市| 洞头县| 济源市| 聂荣县| 南江县| 南投市| 河东区| 曲阜市| 金沙县| 正安县| 毕节市| 武汉市| 历史| 凤山市| 古丈县| 当涂县| 阿瓦提县| 西宁市| 绍兴市| 拜城县| 通山县| 广平县| 永丰县| 卓尼县| 明光市| 饶平县| 西畴县| 若羌县| 桐乡市| 寻乌县| 华阴市| 万年县|