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