上海電氣電站集團(tuán)設(shè)備有限公司 賈燁維
Web自動化測試框架的設(shè)計(jì)與實(shí)現(xiàn)
上海電氣電站集團(tuán)設(shè)備有限公司 賈燁維
【摘要】隨著社會的進(jìn)步以及科技的發(fā)展,各行各業(yè)的工作類型趨于多樣化和信息化,人們對信息處理的高效化和規(guī)范化也愈發(fā)迫切。同時,隨著科技發(fā)展特別是互聯(lián)網(wǎng)技術(shù)的不斷普及,各互聯(lián)網(wǎng)公司的數(shù)量不斷增加,為了促進(jìn)web技術(shù)的進(jìn)一步發(fā)展,促進(jìn)互聯(lián)網(wǎng)公司以及各新型行業(yè)的發(fā)展,提高web工作人員的職業(yè)技術(shù)水平迫在眉睫。對此,本文基于web自動化測試框架,研究其在實(shí)際工作中的設(shè)計(jì)理念和實(shí)現(xiàn)方式,并對它的優(yōu)勢和不足進(jìn)行了簡單分析。
【關(guān)鍵詞】自動化測試;框架設(shè)計(jì);Web
進(jìn)入21世紀(jì)以來,隨著以阿里巴巴、京東為代表的電子商務(wù)飛速發(fā)展,Web應(yīng)用程序作為電子商務(wù)的支撐技術(shù),在社會的各個領(lǐng)域內(nèi)變得越來越重要,而人們也越來越重視Web應(yīng)用程序的運(yùn)行質(zhì)量與效果。但是,傳統(tǒng)的測試方法需要程序人員對Web程序的兼容性以及回歸性進(jìn)行反復(fù)測驗(yàn),雖然目前也有很多的錄制—回歸軟件可以實(shí)現(xiàn)自動化檢測,但是該方法在檢驗(yàn)過程中容易發(fā)生腳本錯誤等編碼問題,所以程序測試人員需要不斷對腳本進(jìn)行調(diào)試,即通過Web自動化測試框架對龐大的Web應(yīng)用程序進(jìn)行檢測,因此并沒有在實(shí)質(zhì)上提高測試的效率。在此背景下,研究出一個維護(hù)簡單方便的自動化測試框架,以此切實(shí)提高Web應(yīng)用程序的測試效率,對于互聯(lián)網(wǎng)技術(shù)的發(fā)展具有重要意義。
由于傳統(tǒng)測試工具的諸多局限性,人們逐步嘗試通過自動化測試框架來改善這些不足,以此來提高web程序的測試效率。目前,自動化測試框架指的是一個由假設(shè)、概念以及為自動化測試提供支持的實(shí)踐的集合。其可通過管理、控制自動化過程中自變量、因變量參數(shù)的變化,進(jìn)而實(shí)現(xiàn)在不同測試條件下測試效率的最大化。
經(jīng)過這些年的發(fā)展,目前發(fā)展較成熟的web程序測試框架主要有以下幾種:(1)腳本模塊化框架:其腳本的通過底層來實(shí)現(xiàn),通過對web應(yīng)用程序功能上和組件上進(jìn)行分解,進(jìn)而抽象并建立對應(yīng)的腳本;(2)數(shù)據(jù)驅(qū)動測試框架:通過從被測試程序的中提取數(shù)據(jù),并載入相應(yīng)測試編碼,再將測試數(shù)據(jù)載入到原腳本中的一種框架;(3)關(guān)鍵字驅(qū)動的測試框架:這種框架在應(yīng)用程序內(nèi)相對獨(dú)立,并可通過使用關(guān)鍵詞來測試程序邏輯上的完整性,主要依靠底層對關(guān)鍵字執(zhí)行相應(yīng)動作來實(shí)現(xiàn)測試功能;(4)測試庫構(gòu)架框架:與腳本模塊化不同的是,該框架將web應(yīng)用程序分解成獨(dú)立的過程或者一段函數(shù)。但是,該框架需要建立可以代表待測程序片段或者模塊的功能性庫文件。
Web自動化測試發(fā)展到今天,具有較強(qiáng)的適應(yīng)性和比較明顯的優(yōu)勢,但與此同時,仍有一些固有的局限性,下面對web自動化測試的優(yōu)勢和局限性進(jìn)行簡單分析。
2.1 自動化測試框架的優(yōu)勢
自動化測試技術(shù)是web技術(shù)與自動化技術(shù)的融合,也完美地繼承了前兩者的優(yōu)勢,可將其特點(diǎn)總結(jié)為以下幾個方面:
第一,有助于在極短時間內(nèi)完成針對應(yīng)用程序的多類測試項(xiàng)目。web軟件測試的過程中,需要進(jìn)行較繁瑣的測試步驟和各種各樣的測試內(nèi)容,通過自動化測試技術(shù)可以同時完成以上測試過程,以此大大縮短應(yīng)用程序的測試時間,這也縮短了應(yīng)用程序投入市場的時間。
第二,有利于我們對資源的充分利用。自動化測試工具最大程度地發(fā)揮了計(jì)算機(jī)技術(shù)的作用,有利于對資源進(jìn)行分類整理,以此保障資源的充分利用。
第三,有利于下降web應(yīng)用程序的開發(fā)成本。通常情況下,為了保證應(yīng)用程序的穩(wěn)定性和最新性,軟件在升級前必須進(jìn)行回歸測試。而采用web自動化測試框架后,應(yīng)用程序的測試工作從繁雜的反復(fù)調(diào)試工作中解放出來,更多的是依賴先進(jìn)的網(wǎng)絡(luò)技術(shù)以及完善的測試框架,這可以極大地節(jié)約了人力成本。
利用微生物或其組分抑制植物病害的生物防治可代替化學(xué)殺真菌劑,也是一種生態(tài)的、有效的農(nóng)業(yè)病原菌防治方法。幾個研究小組報道了殼聚糖酶的體外抗真菌活性,它們可用于提高植物對不同植物病原真菌的抗性[28-30]。Kouzai等人報道了殼聚糖酶活性在植物抗病性中的分子機(jī)制。植物病原真菌在感染過程中改變細(xì)胞壁成分,避免宿主裂解酶降解,細(xì)胞壁幾丁質(zhì)向殼聚糖的轉(zhuǎn)化可能是病原體的感染原因之一。
2.2 自動化測試框架的局限性
雖然自動化測試框架具有很明顯的優(yōu)勢,但仍然不能全面取代傳統(tǒng)的手工測試,認(rèn)識其存在的不足,有利于我們進(jìn)一步完善web自動化測試工具。其局限性主要表現(xiàn)在以下幾點(diǎn):(1)自動化測試工具并不能測試所有應(yīng)用程序;(2)自動化測試框架的結(jié)果受框架本身的影響很大;(3)自動化測試框架實(shí)際上對軟件的開發(fā)有一定的制約。
3.1 WATF 的需求分析和主要構(gòu)建工具
通過對現(xiàn)有自動化測試框架的對比分析,筆者可以將WATF的功能需求概括為以下四點(diǎn):(1)具有維護(hù)簡單方便的腳本結(jié)構(gòu),由于程序的捕捉方式會產(chǎn)生腳本的數(shù)據(jù)硬編碼出現(xiàn)錯誤,因此程序測試員需要根據(jù)腳本變化而不斷進(jìn)行修改,以確保腳本可以適應(yīng)應(yīng)用程序的變化,這樣直接導(dǎo)致測試效率仍然沒有得到根本上的提高,因此優(yōu)秀的WATF需要易于維護(hù)的模塊化腳本;(2)支持測試環(huán)境的還原功能,測試需要有一個自動化執(zhí)行環(huán)境,在運(yùn)行測試之前可以根據(jù)外部條件觸發(fā)條件進(jìn)行判斷,自動將測試所需測試環(huán)境配置好,即為滿足回歸測試的要求;(3)可根據(jù)需要定制測試計(jì)劃,我們可以設(shè)置測試的時間范圍,或是根據(jù)每天的實(shí)際情況,定時構(gòu)件測試框架,并測試結(jié)束時得到的測試報告,這樣即使測試失敗,也可通過讓測試人員知情,增加自動化測試的可靠;(4)支持分布式測試以及并發(fā)測試,隨著應(yīng)用程序功能越來越來豐富,測試人員需要測試的項(xiàng)目也越來越多,并且一個測試項(xiàng)目通常包含上千個測試用例,按照順序依次測試會消耗大量的時間,如果可以并發(fā)地測試這些測試用例或者同時測試多個項(xiàng)目,則可以極大地縮短測試時間;另一方面,由于不同的測試任務(wù)需要有不同的測試環(huán)境,測試框架也應(yīng)該可以完成分布式測試,并可以實(shí)時監(jiān)管各分布式節(jié)點(diǎn)。
根據(jù)上述WATF的測試需求,可以初步確定如下主要構(gòu)建工具:(1)Maven:一種基于項(xiàng)目對象模型來管理項(xiàng)目的構(gòu)建、文檔以及報告的軟件項(xiàng)目管理工具,Maven可以對WATF檢測出的源代碼進(jìn)行編譯打包;(2)Hudson:在Java的基礎(chǔ)上開發(fā)的持續(xù)集成服務(wù)器,可以定期監(jiān)控預(yù)先設(shè)計(jì)好的外部任務(wù),同時具有大量的擴(kuò)展插件支持,可以保證相關(guān)人員提高開發(fā)和測試效率;(3)TsetNG:根據(jù)JUnit和NUnit思想而構(gòu)建的運(yùn)用注釋來強(qiáng)化測試的JAVA測試框架。并且改框架解決了JUnit測試框架中出現(xiàn)的大部分問題,不僅可以運(yùn)用于單元間的測試,還可以用來集成測試以及驗(yàn)收測試;(4)Selenium:一種開源式的Web功能測試工具,其特點(diǎn)在于可以支持css、dom、xpath等方式對Web測試要素進(jìn)行定位,并且可以支持ie、chrome等多種瀏覽器。
3.2 WATF 的框架結(jié)構(gòu)
依照上述設(shè)計(jì)思路以及對目前主流測試框架的分析,并結(jié)合Web系統(tǒng)的特點(diǎn),設(shè)計(jì)如圖1所示的測試框架:
圖1 WATF框架結(jié)構(gòu)Figure 1 WATF frame structure
(1)數(shù)據(jù)層:改框架基于數(shù)據(jù)驅(qū)動,輸入的數(shù)值和輸出的檢測值均為變量、所有的測試數(shù)據(jù)都從數(shù)據(jù)文件中讀取,在測試的執(zhí)行過程中,該層為例層提供數(shù)據(jù)。
(2)控制層:這是整個測試框架的驅(qū)動,其主要功能是啟動自動化測試流程、加載測試數(shù)據(jù)、調(diào)用測試用例和控制報告輸出等。
(3)對象層:其主要作用是在測試過程中識別數(shù)據(jù)。
(4)操作層:判斷及驗(yàn)證用例腳本的執(zhí)行過程,并生成日志目錄。
(5)用例層:包含所有用例腳本和函數(shù)庫文件。在框架測試過程中,可以結(jié)合被測應(yīng)用對象的特點(diǎn),將某些公共可共享模塊寫成函數(shù)放入到庫文件中,有利于減少冗余腳本,便于后期的維護(hù)。
(6)報告層:在測試結(jié)束后,框架將測試的結(jié)果寫入對應(yīng)的報告文件中,即為報告層。
3.3 技術(shù)實(shí)現(xiàn)案例
WFAF測試技術(shù)能夠識別出與測試對象無關(guān)的外部支撐函數(shù),例如加載程序所需的數(shù)據(jù)文件、啟動測試環(huán)境必需的文件等,并將它們打包放入Controller文件中,使其可以成為封裝完好可執(zhí)行文件。當(dāng)程序測試員進(jìn)行測試時,只需提前修改好對應(yīng)數(shù)據(jù)文件、用例描述文件和配置文件,然后運(yùn)行之前封裝完好的Controller.exe文件,即可開始自動化測試,在自動運(yùn)行完測試程序后,測試框架便可自動生成一份測試報告,報告中即包含所測項(xiàng)目的測試結(jié)果。
WATF技術(shù)通過提高web應(yīng)用程序的測試效率,達(dá)到節(jié)約測試成本的目的。在試驗(yàn)過程中,可將WATF自動化測試應(yīng)用于CDMS系統(tǒng)的測試,表1是對CDMS系統(tǒng)3個模塊共500多個測試用例的測試,并分別使用WATF技術(shù)與手工技術(shù)進(jìn)行檢測,通過對比其所用時間,其結(jié)果如表1所示。通過對比數(shù)據(jù)可以發(fā)現(xiàn),測試相同項(xiàng)目,使用WATF技術(shù)可以使測試所用時間大大縮短。
表1Table 1
本文分析了現(xiàn)階段的自動化測試框架的優(yōu)勢和不足,提出了一種基于Web的自動化測試框架(WATF),WATF具有檢測效率高、自動化程度高、可擴(kuò)展性強(qiáng)等優(yōu)勢。但研究人員還需根據(jù)后續(xù)應(yīng)用中出現(xiàn)的問題,進(jìn)一步研究并不斷完善WATF技術(shù)。
參考文獻(xiàn)
[1]任樂兵.網(wǎng)絡(luò)管理系統(tǒng)的Web自動化測試設(shè)計(jì)與實(shí)現(xiàn)[D].西安電子科技大學(xué),2007.
[2]汪曉波.Web應(yīng)用自動化測試工具的設(shè)計(jì)實(shí)現(xiàn)及應(yīng)用[D].北京郵電大學(xué),2012.
[3]楊麗晶.商務(wù)網(wǎng)站的Web自動化測試設(shè)計(jì)與實(shí)現(xiàn)[D].中國海洋大學(xué),2011.
作者簡介:
賈燁維(1984—),男,碩士,工程師,研究方向:軟件開發(fā)。