DevOps是Development和Operations的组合词,代表着重视“软件开发人员”(Dev)和“IT运维技术人员”(Ops)之间沟通合作的文化。DevOps旨在通过自动化“软件交付”和“架构变更”的流程,使得软件的构建、测试、发布过程更加快捷、频繁和可靠。
在此前发布的《MeterSphere开源持续测试平台与阿里云云效DevOps的集成》(https://blog.fit2cloud.com/?p=3614)一文中,我们详细描述了MeterSphere和云效的集成方案与具体操作。MeterSphere开源社区也陆续收到过用户对MeterSphere平台和腾讯云CODING平台的集成方案咨询。本文就来详细介绍一下两者的集成方法与过程。
一、CODING研发协作管理平台
CODING是腾讯云旗下的一站式DevOps研发管理平台,围绕DevOps理念向广大开发者及企业研发团队提供代码托管、项目协同、测试管理、持续集成、制品库、持续部署、云原生应用管理Orbit、团队知识库等系列工具产品。CODING解决方案可以帮助企业降低研发工具建设成本,提高产品交付效率,实现研发效能升级。
二、MeterSphere开源持续测试平台
MeterSphere是一站式的开源持续测试平台,涵盖测试跟踪、接口测试、UI测试、性能测试、团队协作及融入DevOps等功能,全面兼容JMeter、Postman、Swagger、Selenium等主流开源标准。
MeterSphere的五大功能模块如下图所示:
三、CODING为什么需要集成MeterSphere?
作为一款面向软件研发团队的研发协作管理平台,CODING可以提供一站式协作平台及研发工具链,支持双态研发体系建设,使项目工作流和度量数据可视化,项目管理更加轻松。但是在测试部分,CODING主要提供的是单元测试,且缺乏完备的自动化测试流程,不利于测试应用场景化。
另外,CODING的单元测试仅支持以纯代码方式进行测试准备,依赖开发或测试人员编写测试代码并放入项目中,针对不同的代码框架需要安装不同的单元测试组件,应用繁琐、测试能力要求及维护成本高。
而MeterSphere则定位于一站式持续测试平台,可以提升CODING的自动化测试能力,简化测试准备工作,降低自动化测试的准入门槛。用户只需要获取相应API,即可在MeterSphere平台通过“拖拉拽”的方式快速编排测试场景,CODING在DevOps持续部署阶段的流程中便能自由引用接口测试、自动化测试、性能测试或UI测试。
四、MeterSphere与CODING集成的具体操作流程
本次实践演示使用了CODING代码库、CODING持续集成、CODING持续部署、CODING制品仓库、堡垒机(指持续部署与主机之间的代理)及内网部署机、MeterSphere持续测试平台、本地Jenkins环境,以及MeterSphere Jenkins插件。
具体流程如下图所示:
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之后的业务进行自动化测试场景的编排。
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 API Endpoint、AccessKey、SecretKey配置:
2.2 安装Generic Webhook Trigger插件及配置
① 在Jenkins的“插件管理”选项卡中搜索名为“Generic Webhook Trigger Plugin”的插件,下载安装并重启Jenkins:
② 创建自由风格任务,构建触发器处选择“Generic Webhook Trigger”选项,并进行相应配置设置:
3. 腾讯云CODING配置
3.1 持续集成
在腾讯云CODING平台进行流程配置,设置触发条件为推送代码至主分支,即从代码仓库中拉取,制作Docker镜像至CODING制品库:
3.2 持续部署
CODING支持Kubernetes、腾讯云弹性伸缩和主机部署,主机部署支持连接堡垒机至其所纳管内网虚拟机中进行部署。这里选择连接JumpServer开源堡垒机进行主机部署,通过代理的方式选择相应的主机并添加相应的主机组:
在CODING功能模块的“应用中心”中创建“部署流程”,添加“Webhook”类型阶段,填写相应信息。后续执行该部署任务顺序执行到此流程处,会通过Webhook触发相应的Jenkins Job来执行MeterSphere平台上的自动化测试场景。
4. 集成效果
4.1 推送代码到CODING仓库
4.2 触发自动持续集成
4.3 触发自动持续部署及MeterSphere自动化测试场景
触发完成后可以看到,CODING持续部署成功:
触发Jenkins Job执行成功:
MeterSphere平台自动化测试场景执行成功:
Docker镜像部署成功Web访问验证: