自動化測試體系整體解決方案探討
一個(gè)完整的自動化測試框架體系包含以下幾個(gè)部分:1、自動化測試框架;2、測試腳本以及測試數(shù)據(jù)管理;3、測試腳本的執(zhí)行管理系統(tǒng);4、測試結(jié)果的顯示與分析系統(tǒng)。其中最重要的是自動化測試框架部分。
本文引用地址:http://m.butianyuan.cn/article/201701/337537.htm第一部分,自動化測試框架。自動化測試框架要解決的問題,從本質(zhì)上來說,是實(shí)現(xiàn)分布 式資源透明化的過程。由于性能測試、壓力測試的要求,我們往往需要構(gòu)建一個(gè)分布式的測試環(huán)境,在這個(gè)分布式的測試環(huán)境中,我們需要多種測試平臺(例如:多 臺windows,多臺linux等)。自動化測試框架的作用就在于將分布式環(huán)境中的各種資源變成相應(yīng)的服務(wù)對象。例如一臺windows機(jī)器,在自動化 測試的框架中,我們看到的將不再是一臺windows機(jī)器,而是綁定到某一個(gè)IP地址上的一個(gè)服務(wù)對象。通過這個(gè)對象,我們可以通過一個(gè)通用的調(diào)用方法 (本地調(diào)用一個(gè)遠(yuǎn)程提供的方法,需要采用對象映射的技術(shù)),告訴這個(gè)對象,讓它做我們希望它去做的事情,例如啟動一個(gè)指定的測試腳本(這個(gè)測試腳本可能是 我們?nèi)粘懙哪骋粋€(gè)測試用例,也可能是其他操作)。在自動化測試框架的實(shí)現(xiàn)上,其主要是建立了一個(gè)以提供服務(wù)為主的底層的通訊網(wǎng)絡(luò)。而在服務(wù)的應(yīng)用上,我 們可以采用插件模式,以及對象映射的技術(shù),可以動態(tài)的無限的擴(kuò)展我們的服務(wù)。根據(jù)我個(gè)人的實(shí)踐,STAF + python的開發(fā)模式可以很好的實(shí)現(xiàn)這個(gè)框架。STAF主要構(gòu)建了一個(gè)網(wǎng)絡(luò)體系,使得各種機(jī)器資源之間可以自由的通訊。而python則可以在STAF 的基礎(chǔ)上進(jìn)行二次開發(fā),可以構(gòu)建一個(gè)動態(tài)插入的服務(wù)體系。
第二部分,測試腳本及測試數(shù)據(jù)的管理。首先要選擇一種合適的自動化腳本語言。一般來 說,需要考慮以下幾個(gè)方面:(1)高可讀性,(2)無需編譯,(3)可擴(kuò)展性,(4)強(qiáng)大的第三方支持,尤其是對各種數(shù)據(jù)源的支持。我們可以采用CVS或 者SVN的方式來實(shí)現(xiàn)對測試腳本和測試數(shù)據(jù)的管理。在這里,主要依靠高度組織化的目錄結(jié)構(gòu)來實(shí)現(xiàn),尤其是需要和實(shí)際測試過程中的測試套件,測試模塊以及測 試用例的組織結(jié)構(gòu)進(jìn)行匹配,分級管理。形成一個(gè)完整的測試腳本和測試用例的資源庫。對于測試腳本的編寫,有一些基本的要求:1、形成一套測試腳本的編寫規(guī) 范;2、測試腳本采取分層設(shè)計(jì)思想,持久層(數(shù)據(jù)資源庫,對象資源庫,統(tǒng)一IO),邏輯層(封裝基本業(yè)務(wù)邏輯,實(shí)現(xiàn)API級調(diào)用),腳本層(實(shí)現(xiàn)測試用例 過程,主要是描述測試步驟)。通過這些,測試工程師編寫測試腳本將會變得十分輕松,測試的效率也會有大幅度的提升,大規(guī)?;貧w,甚至是在第一輪測試就實(shí)現(xiàn) 自動化測試也不再是夢想。
第三部分,測試腳本的執(zhí)行管理系統(tǒng)。大量的測試腳本編制好了以后,一個(gè)很重要的步驟 就是大批量的執(zhí)行這些測試腳本。通過CVS或者SVN的管理,我們生成了一個(gè)測試資源庫,一個(gè)測試用例將是一個(gè)測試腳本。測試腳本執(zhí)行管理系統(tǒng)的目的,就 是要在用戶定制的時(shí)間去執(zhí)行用戶選定的測試用例。測試腳本執(zhí)行管理系統(tǒng)也應(yīng)該能動態(tài)的追蹤到當(dāng)前正在運(yùn)行的任務(wù)的狀態(tài),例如執(zhí)行百分比等等;還可以實(shí)現(xiàn)多 用戶管理,例如同時(shí)執(zhí)行多個(gè)用戶提交的測試需求。同時(shí),測試腳本管理系統(tǒng)還應(yīng)該實(shí)現(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)。每一個(gè)測試用例在執(zhí)行的 過程中,需要輸出大量的日志信息,這些日志信息是非常重要的。通常,我們判斷一個(gè)測試用例執(zhí)行結(jié)束以后,是否有Bug,常常需要深入分析這些日志信息。在 測試用例執(zhí)行的過程中,不光要打印相關(guān)的測試數(shù)據(jù),實(shí)際獲取到的數(shù)據(jù),還要打印相應(yīng)的測試步驟,這樣才便于對測試結(jié)果進(jìn)行分析。至于顯示系統(tǒng),主要是對測 試結(jié)果的一個(gè)分類檢索功能,可以生成各類報(bào)表,例如,一個(gè)300個(gè)測試用例的模塊中有多少通過的,有多少是失敗的等等。有一個(gè)基本原則是很重要的,自動化 測試不是為了自動化,而是為了發(fā)現(xiàn)Bug。如果自動化測試不能發(fā)現(xiàn)Bug,那么花費(fèi)大量的人力物力實(shí)現(xiàn)自動化,也是沒有什么實(shí)際意義的。因此,深入收集測 試用例執(zhí)行的過程中產(chǎn)生的各種信息是非常重要的。個(gè)人的實(shí)踐經(jīng)驗(yàn)表明,這些信息對于發(fā)現(xiàn)Bug起著至關(guān)重要的作用(測試步驟的描述也不容忽視)。
自動化測試體系不是一個(gè)工具,一種自動化測試腳本語言就可以實(shí)現(xiàn)的。它需要一個(gè)完整的解決方案才能實(shí)現(xiàn)。個(gè)人的實(shí)踐經(jīng)驗(yàn)表明,自動化測試框架的引入、強(qiáng)大的資源整合能力和有效的自動化測試體系的設(shè)計(jì)將是實(shí)現(xiàn)自動化測試的十分重要的因素。
評論