999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Jenkins 的可持續(xù)集成自動化構建系統(tǒng)研究

2022-11-07 02:16:34劉聰聰任靜媛
汽車電器 2022年9期
關鍵詞:設置系統(tǒng)

劉聰聰,杜 彬,任靜媛

(陜西重型汽車有限公司汽車工程研究院,陜西 西安 710200)

在整個汽車行業(yè)的研發(fā)過程中,軟件正越來越多地取代硬件,以降低系統(tǒng)的成本,獲得更大的靈活性。這就意味著軟件在整個行業(yè)中的比重將越來越大,軟件代碼的品質已經成為整個產品品質的重要衡量參數(shù)。那么在汽車行業(yè)軟件開發(fā)過程中,開發(fā)工程師與測試工程師需要根據需求不斷對軟件代碼迭代更新,相應的軟件就需要進行全功能測試,由此產生了大量的重復工作,這樣不僅效率低,而且會出現(xiàn)不可避免的人工操作失誤。因此,有必要引入一個自動化可持續(xù)集成構建的系統(tǒng)來解決這些問題。該系統(tǒng)只需要工程師將相應的代碼上傳到指定位置,平臺會根據配置自動調度工具自動化測試,保證迭代變更后的軟件代碼在最短的時間內發(fā)現(xiàn)問題并解決,提升了工作效率與軟件代碼品質,同時減少了后期維護成本。本文以汽車行業(yè)某軟件開發(fā)過程為例,闡述基于Jenkins的可持續(xù)集成自動化構建平臺的設計與實現(xiàn)。

1 可持續(xù)集成自動化構建系統(tǒng)概述

本文所述可持續(xù)集成自動化構建系統(tǒng)根據V流程,將現(xiàn)有工具基于Jenkins進行資源整合,從檢出代碼、編譯構建、運行測試、結果記錄、郵件發(fā)送等都是自動完成的,不用人工操作,實現(xiàn)了軟件閉環(huán)測試過程。基于Jenkins平臺搭建的可持續(xù)集成自動化構建系統(tǒng)的工作流程如圖1所示。

圖1 可持續(xù)集成自動化構建系統(tǒng)的工作流程圖

1)開發(fā)工程師根據需求變更代碼并提交代碼于SVN;測試工程師根據需求編寫測試用例并提交于SVN;平臺用戶創(chuàng)建項目,配置平臺信息并上傳SVN。

2)根據用戶新建項目調整創(chuàng)建Jenkins任務設置。

3)用戶指定并創(chuàng)建Jenkins構建過程。

4)SVN指定路徑變更/定時觸發(fā)Jenkins構建。

5)自動調用工具鏈執(zhí)行相應的測試過程。

6)測試結果郵件發(fā)送給相關人員。

整個過程執(zhí)行一遍,工程師會接收到反饋郵件,并將發(fā)現(xiàn)的問題及時修改,若沒問題,則代碼保存在SVN供用戶使用。之后會按照變更觸發(fā)和定時觸發(fā)進行多次回歸測試,直到達到定義的相關標準為止。

Jenkins、SVN和執(zhí)行工具可以部署在專門的服務器上,這樣工程師在工作時不會受平臺運行的影響。同時,平臺執(zhí)行時間可以設置,可以選擇非工作時間執(zhí)行,充分有效利用時間,提高效率。相比于傳統(tǒng)的人工手動測試來說,這種模式下工程師只需要維護SVN中的代碼版本的迭代和測試用例的更新,不需要在版本迭代時人工處理各個節(jié)點的代碼更新、打包和運行操作,整個過程都交給Jenkins統(tǒng)一控制,節(jié)約人力成本,開發(fā)人員能夠更好地聚焦在軟件邏輯以及測試用例的開發(fā)。

2 可持續(xù)集成自動化構建系統(tǒng)設計與實現(xiàn)

2.1 創(chuàng)建節(jié)點并配置節(jié)點

對于規(guī)模較大的項目,可能需要多次變更與維護,代碼提交比較頻繁,測試項目較多,此時采用單節(jié)點測試壓力較大,從而采用多節(jié)點部署,相當于增加Leader機制,即讓master來擔任Leader的角色,負責任務的調度與狀態(tài)收集、節(jié)點的管理等,把具體的構建任務交由各節(jié)點完成。

如圖2所示,master是主節(jié)點,負責整體的調度部署;Test1_A、Test_B、Test_C、Test_D為工具鏈節(jié)點,該節(jié)點輪詢構建,不斷進行回歸測試。

圖2 多節(jié)點列表

節(jié)點的配置如圖3所示,以編譯節(jié)點為例,其他節(jié)點類似。“Usage”設置為“User this node as possible”,即盡可能使用此節(jié)點,“Launch method”設置為“Keep this agent online as much as possible”,即通過連接到主節(jié)點啟動代理。

圖3 配置節(jié)點

2.2 創(chuàng)建任務并配置任務

創(chuàng)建任務,以編譯一個子任務為例,如圖4所示,通過設置任務的屬性Restrict where this project can be run將任務與對應節(jié)點匹配,通過配置Source Code Management項來獲取最新的源代碼,如源代碼使用SVN管理,這里選擇“Subversion Modules”,如圖5所示,在“Repository URL”錄入SVN倉庫地址。

圖4 設置任務的屬性

圖5 配置源代碼獲取方式

通過配置“Build Triggers”項,實現(xiàn)如何進行觸發(fā)構建。一般Jenkins的自動構建選擇以下兩種方式進行觸發(fā)。一是采用Build periodically周期性構建,它使用cron語法,包含5個字段(MINUTE HOUR DOM MONTH DOW),H 5 * * *表示每天早上5點進行自動構建。二是對于像SVN要持續(xù)進行檢測代碼庫是否存在更新及是否需要執(zhí)行一次變更構建,則選擇Poll SCM選項,例如將其設置為H */2 * * *,即每隔2h進行一次源碼變更檢查。如圖6、圖7所示。

圖6 Build periodically設置

圖7 Poll SCM設置

Jenkins提供了多種方式可進行Build配置,其中,可調用外部命令和腳本。本例中,選擇執(zhí)行windows批處理命令,根據項目要求編寫相關命令,如圖8所示,通過調用Jar包實現(xiàn)代碼的預處理,再進行文件的拷貝與執(zhí)行,以及實現(xiàn)文件的打包與存儲。

圖8 批處理命令舉例

在完成Build配置后,選擇“Post-build Actions”配置其他的選項,比如該子任務執(zhí)行結果需要發(fā)布存儲的SVN倉庫配置和郵件反饋設置。郵件設置如圖9所示,添加收件人郵箱即可,當構建失敗、構建過程不穩(wěn)定或恢復穩(wěn)定時,將發(fā)送電子郵件。也可以添加指定的郵箱插件,例如網易郵箱等,指定發(fā)送/抄送用戶、制式郵件模板等,使得郵件標準易讀。

圖9 郵件配置

至此便實現(xiàn)了Jenkins項目的配置。其中SVN、企業(yè)郵箱等均是安裝的工具插件,成百上千的插件可以安裝在Jenkins主機上集成不同的構建工具來適應用戶的需求,增強Jenkins功能。

2.3 自動構建系統(tǒng)平臺化

章節(jié)2.1和2.2描述了搭建自動化構建系統(tǒng)的部分操作及配置,對于復雜的項目配置項更多,擁有可以與Jenkins相關聯(lián)的上位機能避免配置中的繁瑣過程,只需在平臺界面進行配置并提交于Jenkins即可,便于使用和維護。該上位機可使用JAVA語言開發(fā),平臺接口根據需求進行擴展。在程序主體框架搭建好的情況下,每次集成工具通過創(chuàng)建插件項目、添加主框架、添加擴展點、根據擴展點接口創(chuàng)建對應的類進行實現(xiàn)。實現(xiàn)方式與編程習慣有關,通常需要3個類,一是負責實現(xiàn)測試工具的集成頁面,二是實現(xiàn)頁面數(shù)據的保存和加載,三是負責實現(xiàn)測試工具的集成調用。

3 測試驗證

本文的實施環(huán)境由搭建Jenkins主節(jié)點和SVN的服務器1臺和2臺分別運行工具和開發(fā)測試的服務器組成。配置平臺周期構建時間為早上5點,定時觸發(fā)構建根據Jenkins監(jiān)控SVN倉庫的更新情況而定,每2min檢測一次,如有變化則對最新的代碼進行自動化構建。

圖10為編譯構建完成的截圖,可以看出編譯任務PrjTest_Compiler_OnTime每天上午5∶12進行構建;對于每天非周期構建時間,編譯任務PrjTest_Compiler_Update 會根據Jenkins檢測SVN的情況作出響應,如圖10、11所示,3月19日除了5∶12周期性執(zhí)行過,還在下午12∶3進行了執(zhí)行,這樣既保證了構建的完整性,又避免了不停回歸測試引起的資源浪費。測試結果以郵件的形式進行反饋,如圖12所示。

圖10 周期編譯構建截圖

圖11 事件觸發(fā)編譯構建截圖

圖12 測試結果郵件反饋截圖

以實際某項目為例,分別采用手動測試和使用可持續(xù)集成平臺測試,表1列舉出該項目執(zhí)行一遍兩種方法的相關內容對比。

由表1可知,該項目4個測試項執(zhí)行一遍至少需要3h,失誤率在10%,自動化測試耗時只花費在平臺的配置上,執(zhí)行時間在非工作時間且失誤率低。通過對比可知自動化測試所耗時間僅為人工測試的1/6。在多輪測試時,配置好的平臺不需要額外耗時,平臺會按照配置的時間執(zhí)行即可,同一項目執(zhí)行周期越長,越能體現(xiàn)自動化構建的優(yōu)勢。由此可知,自動化構建系統(tǒng)不僅能降低人工帶來的失誤率,且大大提高了工作效率。

表1 某項目手動測試與自動化測試效果對比

4 總結

本文基于Jenkins設計實現(xiàn)了可持續(xù)集成自動化構建系統(tǒng),并將其應用于實際項目中,與傳統(tǒng)方法對比可知,可持續(xù)集成平臺通過自動化構建、自動化測試以及自動化部署與反饋的方式實現(xiàn)軟件的閉環(huán)測試,以插件式的方式集成工具使得測試過程更完整,再搭配變更/定時的觸發(fā)方式輪詢構建保證了開發(fā)系統(tǒng)中的問題能迅速被發(fā)現(xiàn)和修復,使得開發(fā)過程始終保持在一個穩(wěn)定健康的狀態(tài)。這樣,既滿足了敏捷開發(fā)的需要,又有效提高了開發(fā)效率。

猜你喜歡
設置系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
7招教你手動設置參數(shù)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
本刊欄目設置說明
中俄臨床醫(yī)學專業(yè)課程設置的比較與思考
主站蜘蛛池模板: 亚洲中文字幕av无码区| 免费在线色| 欧美日本不卡| 国产福利免费在线观看| 国产精品欧美在线观看| 国产人碰人摸人爱免费视频| 亚洲AV无码不卡无码| 亚洲第一区欧美国产综合| 欧美中出一区二区| 强奷白丝美女在线观看| 99久久精品免费观看国产| 永久免费av网站可以直接看的| 亚洲六月丁香六月婷婷蜜芽| 午夜a视频| 狂欢视频在线观看不卡| 中文字幕欧美日韩高清| 亚洲av日韩综合一区尤物| 香蕉久久国产超碰青草| 女人爽到高潮免费视频大全| 91成人在线免费观看| 国产精品久久久久久久久| 成人伊人色一区二区三区| 青青草综合网| 久久人与动人物A级毛片| 91精品专区国产盗摄| 2021国产精品自拍| 免费人成视网站在线不卡| 91精品国产一区| 国产91线观看| 亚洲成人黄色在线| 97se亚洲综合在线韩国专区福利| 亚洲日韩第九十九页| 香蕉色综合| 2022国产无码在线| 午夜无码一区二区三区在线app| 97国产精品视频自在拍| 欧美成人亚洲综合精品欧美激情| 综1合AV在线播放| 国产精品视频a| 蜜桃视频一区二区| 中文字幕无码av专区久久| 国产人妖视频一区在线观看| 高清欧美性猛交XXXX黑人猛交| 国产91小视频在线观看 | 久久动漫精品| 国产欧美网站| 少妇极品熟妇人妻专区视频| 四虎国产精品永久在线网址| 精品成人免费自拍视频| 亚洲精品午夜天堂网页| 国产亚洲视频免费播放| 国产一区二区三区免费| 亚洲欧美另类中文字幕| 欧美国产日韩另类| 一本大道无码日韩精品影视| 国产精品极品美女自在线| 国产激情无码一区二区APP| 91探花在线观看国产最新| 美女裸体18禁网站| 亚洲欧美不卡| 亚洲天堂日本| 福利在线不卡一区| 久久久久久久久18禁秘| 麻豆精品在线| 久草中文网| 亚洲日韩高清在线亚洲专区| 99视频只有精品| 久久精品人人做人人爽电影蜜月 | 亚洲第一页在线观看| 日韩精品少妇无码受不了| 国产91精选在线观看| 精品国产香蕉伊思人在线| 免费A∨中文乱码专区| 性欧美精品xxxx| 日韩欧美中文亚洲高清在线| 久久久久亚洲AV成人网站软件| 亚洲欧美在线综合图区| 色婷婷久久| 九色视频在线免费观看| 国产在线视频福利资源站| 最新午夜男女福利片视频| 农村乱人伦一区二区|