天天看點

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

作者:FIT2CLOUD飛緻雲

DevOps是Development和Operations的組合詞,代表着重視“軟體開發人員”(Dev)和“IT運維技術人員”(Ops)之間溝通合作的文化。DevOps旨在通過自動化“軟體傳遞”和“架構變更”的流程,使得軟體的建構、測試、釋出過程更加快捷、頻繁和可靠。

在此前釋出的MeterSphere開源持續測試平台與阿裡雲雲效DevOps的內建 技術部落格 FIT2CLOUD 飛緻雲(https://blog.fit2cloud.com/?p=3614)一文中,我們較長的描述了MeterSphere和雲效的內建方案與具體操作。MeterSphere開源社群也陸續收到過使用者對MeterSphere平台和騰訊雲CODING平台的內建方案咨詢。本文就來詳細介紹一下兩者的內建方法與過程。

一、CODING研發協作管理平台

CODING是騰訊雲旗下的一站式DevOps研發管理平台,圍繞DevOps理念向廣大開發者及企業研發團隊提供代碼托管、項目協同、測試管理、持續內建、制品庫、持續部署、雲原生應用管理Orbit、團隊知識庫等系列工具産品。CODING解決方案可以幫助企業降低研發工具建設成本,提高産品傳遞效率,實作研發效能更新。

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

二、MeterSphere開源持續測試平台

MeterSphere是一站式的開源持續測試平台,涵蓋測試跟蹤、接口測試、UI測試、性能測試、團隊協作及融入DevOps等功能,全面相容JMeter、Postman、Swagger、Selenium等主流開源标準。

MeterSphere的五大功能子產品如下圖所示:

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

三、CODING為什麼需要內建MeterSphere?

作為一款面向軟體研發團隊的研發協作管理平台,CODING可以提供一站式協作平台及研發工具鍊,支援雙态研發體系建設,使項目工作流和度量資料可視化,項目管理更加輕松。但是在測試部分,CODING主要提供的是單元測試,且缺乏完備的自動化測試流程,不利于測試應用場景化。

另外,CODING的單元測試僅支援以純代碼方式進行測試準備,依賴開發或測試人員編寫測試代碼并放入項目中,針對不同的代碼架構需要安裝不同的單元測試元件,應用繁瑣、測試能力要求及維護成本高。

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

而MeterSphere則定位于一站式持續測試平台,可以提升CODING的自動化測試能力,簡化測試準備工作,降低自動化測試的準入門檻。使用者隻需要擷取相應API,即可在MeterSphere平台通過“拖拉拽”的方式快速編排測試場景,CODING在DevOps持續部署階段的流程中便能自由引用接口測試、自動化測試、性能測試或UI測試。

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

四、MeterSphere與CODING內建的具體操作流程

本次實踐示範使用了CODING代碼庫、CODING持續內建、CODING持續部署、CODING制品倉庫、堡壘機(指持續部署與主機之間的代理)及内網部署機、MeterSphere持續測試平台、本地Jenkins環境,以及MeterSphere Jenkins插件。

具體流程如下圖所示:

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

1. MeterSphere配置

我們選擇了本地部署的MeterSphere平台,也可以采用MeterSphere專業測試雲線上平台(www.metersphere.com)。MeterSphere開源持續測試平台官網提供了本地部署的一鍵部署腳本:

curl -sSL https://github.com/metersphere/metersphere/releases/latest/download/quick_start.sh | bash。

其他部署方法詳見MeterSphere官方文檔(https://metersphere.io/docs/v2.x/quick_start/quick_start/)。

接下來,在MeterSphere中編寫自動化腳本。由于是示例,是以僅以通路通過Nginx釋出的HTML頁面作為示範。實際生産中則是對後續CODING平台中CI/CD之後的業務進行自動化測試場景的編排。

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

2. Jenkins配置

在MeterSphere平台完成場景編排後,需要在Jenkins上安裝MeterSphere、Generic Webhook Trigger插件及進行相關配置。

2.1 安裝MeterSphere插件及配置

① 在GitHub上根據MeterSphere的版本下載下傳對應的MeterSphere Jenkins插件:https://GitHub.com/metersphere/jenkins-plugin;

② 在Jenkins的插件管理頁面,上傳并安裝下載下傳好的HPI插件包;

③ 建立自由風格任務,添加“MeterSphere”類型的建構步驟:

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

然後填寫相應的MeterSphere API Endpoint、AccessKey、SecretKey配置:

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

2.2 安裝Generic Webhook Trigger插件及配置

① 在Jenkins的“插件管理”頁籤中搜尋名為“Generic Webhook Trigger Plugin”的插件,下載下傳安裝并重新開機Jenkins:

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

② 建立自由風格任務,建構觸發器處選擇“Generic Webhook Trigger”選項,并進行相應配置設定:

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

3. 騰訊雲CODING配置

3.1 持續內建

在騰訊雲CODING平台進行流程配置,設定觸發條件為推送代碼至主分支,即從代碼倉庫中拉取,制作Docker鏡像至CODING制品庫:

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

3.2 持續部署

CODING支援Kubernetes、騰訊雲彈性伸縮和主機部署,主機部署支援連接配接堡壘機至其所納管内網虛拟機中進行部署。這裡選擇連接配接JumpServer開源堡壘機進行主機部署,通過代理的方式選擇相應的主機并添加相應的主機組:

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建
MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

在CODING功能子產品的“應用中心”中建立“部署流程”,添加“Webhook”類型階段,填寫相應資訊。後續執行該部署任務順序執行到此流程處,會通過Webhook觸發相應的Jenkins Job來執行MeterSphere平台上的自動化測試場景。

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

4. 內建效果

4.1 推送代碼到CODING倉庫

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

4.2 觸發自動持續內建

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

4.3 觸發自動持續部署及MeterSphere自動化測試場景

觸發完成後可以看到,CODING持續部署成功:

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

觸發Jenkins Job執行成功:

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

MeterSphere平台自動化測試場景執行成功:

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

Docker鏡像部署成功Web通路驗證:

MeterSphere開源持續測試平台與騰訊雲CODING DevOps的內建

繼續閱讀