新聞中心

EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 自動化測試體系整體解決方案探討

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

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

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

本文引用地址:http://butianyuan.cn/article/201701/337537.htm

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

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

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

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

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



關(guān)鍵詞: 自動化測試體系解決方

評論


技術(shù)專區(qū)

關(guān)閉