國建勝 張亞楠 劉晶
摘要:近年來,隨著計算機軟件技術(shù)的不斷發(fā)展,軟件版本快速迭代,敏捷開發(fā)等快節(jié)奏的開發(fā)模式成為必然的發(fā)展趨勢。因此,對軟件測試的要求也越來越高,測試任務(wù)復(fù)雜,工作量大,版本迭代頻繁是現(xiàn)在測試面臨的問題,針對這些問題要求測試速度更快、精度更準(zhǔn)、準(zhǔn)確度更高,傳統(tǒng)軟件測試模式急需進行轉(zhuǎn)型升級。基于以上傳統(tǒng)測試問題,并結(jié)合實際項目中開展自動化測試的實踐,提出持續(xù)集成(CI)自動化測試框架,闡述現(xiàn)有的持續(xù)集成自動化框架,該框架的內(nèi)容、優(yōu)點,并提出基于Jenkins的持續(xù)集成框架的自動化測試框架實施與運行。
關(guān)鍵詞:自動化測試;持續(xù)集成;Jenkins持續(xù)集成應(yīng)用
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2019)06-0259-02
Automated Testing Framework Based on Continuous Integration
GUO Jian-sheng,ZHANG Ya-nan,LIU Jing
(China Automotive Technology & Research Center, Tianjin 300300,China)
Abstract: In recent years, with the continuous development of computer software technology, the software version is rapidly iterative, and the fast-paced development mode such as agile development has become an inevitable development trend. Therefore, the requirements for software testing are getting higher and higher, the test tasks are complex, the workload is large, and the version iteration is frequent. Nowadays, the test requires faster test speed, more accurate accuracy and higher accuracy. The software test model is in urgent need of transformation and upgrade. Based on the above traditional test problems, combined with the practice of automated testing in actual projects, the continuous integration (CI) automated testing framework is proposed, and the existing continuous integration automation framework, the content and advantages of the framework, and the continuous integration based on Jenkins are proposed. The framework's automated testing framework is implemented and operational.
Key words:automated testing;continuous integration;jenkins continuous integration application
動化測試是通過自動化測試工具或其他手段,按照測試工程師制定的計劃自動地進行測試,目的是減輕手工測試的工作量,從而達(dá)到提升測試效率,提高軟件測試質(zhì)量的目的。隨著在企業(yè)中開發(fā)的復(fù)雜程度越來越高,對測試的要求也越來越高,在一個跨越過各地區(qū)甚至是國家的團隊中,如何更好地讓團隊成員在一起協(xié)同工作并同時能夠確保軟件質(zhì)量是越來越多的團隊在考慮的問題,尤其在最近幾年,敏捷開發(fā)的概念越來越火爆,在這種需求不斷變化,團隊需要在快速發(fā)布的背景下,如何更好地保證軟件質(zhì)量是尤其重要的。采取持續(xù)集成的思想進行自動化測試,可以有效地解決這一問題,基于持續(xù)集成的自動化測試主要流程為,針對每次修改后的測試腳本,更新到版本控制工具,如Git,Jenkins通過webhook檢測到版本控制工具上的測試腳本有更新,觸發(fā)構(gòu)建job,將腳本clone到本地進行執(zhí)行,達(dá)到持續(xù)集成自動化測試的目的,本文主要對持續(xù)集成的自動化測試架構(gòu)進行詳細(xì)分析。
1 持續(xù)集成自動化測試框架組成
1.1持續(xù)集成自動化測試框架結(jié)構(gòu)
目前,持續(xù)集成的自動化測試框架主要組成為:編程語言+單元測試框架+掃描編譯工具+持續(xù)集成工具+數(shù)據(jù)庫+項目管理工具的結(jié)構(gòu),每個部分具體解釋:
?編程語言:編寫測試腳本、日志記錄和輸出;
?單元測試框架:提供測試腳本運行、異常校驗等一系列的配置;
?掃描編譯工具:測試文件掃描編譯,一般配合持續(xù)集成工具使用;
?持續(xù)集成工具:Jenkins等持續(xù)集成工具;
?數(shù)據(jù)庫:測試數(shù)據(jù)管理;
?項目管理工具:測試結(jié)果統(tǒng)計管理。
1.2持續(xù)集成自動化測試框架組件
常用的持續(xù)集成自動化測試框架主要包含以下組件:
?Log:日志記錄和管理功能,針對不同的情況,設(shè)置不同的日志級別,方便定位問題;
?Report:測試報告生成和管理以及即時通知,測試結(jié)果快速響應(yīng);
?Source:配置文件、靜態(tài)資源的管理,遵循高內(nèi)聚低耦合原則;
?Common:公共函數(shù)、方法以及通用操作的管理,遵循高內(nèi)聚低耦合原則;
?TestCase:測試用例管理功能,一個功能點對應(yīng)一個或者多個case,盡可能地提高覆蓋率;
?TestData:測試數(shù)據(jù)管理功能,數(shù)據(jù)與腳本分離,降低維護成本,提高可移植性;
?TestSuite:測試組件管理功能,針對不同場景不同需求,組裝構(gòu)建不同的測試框架,遵循框架的靈活性和擴展性;
?Statistics:測試結(jié)果統(tǒng)計管理功能,每次執(zhí)行測試的結(jié)果統(tǒng)計、分析、對比以及反饋,數(shù)據(jù)驅(qū)動,為軟件優(yōu)化和流程改進,提供參考;
?Continuous:持續(xù)集成環(huán)境,即CI環(huán)境,包括測試文件提交、掃描編譯、執(zhí)行測試、生成報告及時通知等功能,持續(xù)集成是自動化測試的核心。
2 持續(xù)集成自動化測試工作流程
程序員從SCM下載最新程序;程序員編寫程序代碼,測試腳本等,并提交更新結(jié)果給SCM,CI服務(wù)器根據(jù)出發(fā)條件,從SCM提取最新代碼,交給構(gòu)建工具的工作空間;構(gòu)建工具對代碼進行編譯、測試、并進行打包;最后有持續(xù)集成服務(wù)器對本次構(gòu)建的結(jié)果進行反饋。
3 持續(xù)集成工具Jenkins介紹
Jenkins是目前最流行的持續(xù)集成工具,它可以提供一個易于使用的持續(xù)集成系統(tǒng),使得用戶可以容易地將獲得編譯的結(jié)果用于部署,顯著提高工作效率。
Jenkins主要特點包括易于安裝,只需要通過Java命令來部署,無須其他的安裝步驟,也不需要相應(yīng)的數(shù)據(jù)庫配置;易于配置,提供良好的GUI配置頁面;支持變更,Jenkins能從Subversion/CVS等版本管理工具中生成修改列表,并且本身也不會對這些版本管理工具產(chǎn)生過大的負(fù)載;可生成固定鏈接,Jenkins對于大部分的頁面可生成易于理解的鏈接,可方便的被其他應(yīng)用程序訪問或者利用;RSS/郵件/IM工具集成,可以通過RSS、郵件或者IM的方式來獲得實時的編譯結(jié)果的通知;分布式編譯,能夠分發(fā)編譯或者測試的負(fù)載到多臺機器,這樣可以充分利用機器,避免造成空閑資源;生成測試報告,可以用圖表等形式生成詳盡的測試報告;支持第三方插件擴展,用戶可以自由開發(fā)插件使其支持自定義流程或工具。
4 結(jié)論
引入持續(xù)集成的自動化測試框架,能夠自動獲取測試腳本,完成測試腳本的編譯,執(zhí)行自動化單元測試,并根據(jù)定時任務(wù)進行自動化集成測試,執(zhí)行測試完成后,生成測試報告,通過郵件發(fā)送測試結(jié)果給相關(guān)人員。通過持續(xù)集成進行自動化測試的方式,可有效地提升測試效率,并應(yīng)對需求變化快,版本迭代測試多等現(xiàn)階段測試面臨的普遍問題,可以有效地把控測試風(fēng)險,并能在保持原有人力資源的基礎(chǔ)上,提高現(xiàn)有的測試質(zhì)量和效率。
參考文獻(xiàn):
[1] 陳冬嚴(yán),邵杰明,王東剛.精通自動化測試框架設(shè)計[M].北京:人民郵電出版社,2016:323-338.
[2] 葛長芝,魯盈盈,歐仕強.質(zhì)量全面管控[M].北京:電子工業(yè)出版社,2017:271-312.
[3] 趙卓. Selenium自動化測試指南[M].北京:人民郵電出版社,2013:229-235.
【通聯(lián)編輯:唐一東】