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 之后的业务进行自动化测试场景的编排。

  1. 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” 选项,并进行相应配置设置:

  1. 腾讯云 CODING 配置

3.1 持续集成

在腾讯云 CODING 平台进行流程配置,设置触发条件为推送代码至主分支,即从代码仓库中拉取,制作 Docker 镜像至 CODING 制品库:

3.2 持续部署

CODING 支持 Kubernetes、腾讯云弹性伸缩和主机部署,主机部署支持连接堡垒机至其所纳管内网虚拟机中进行部署。这里选择连接 JumpServer 开源堡垒机进行主机部署,通过代理的方式选择相应的主机并添加相应的主机组:

在 CODING 功能模块的 “应用中心” 中创建 “部署流程”,添加 “Webhook” 类型阶段,填写相应信息。后续执行该部署任务顺序执行到此流程处,会通过 Webhook 触发相应的 Jenkins Job 来执行 MeterSphere 平台上的自动化测试场景。

  1. 集成效果

4.1 推送代码到 CODING 仓库

4.2 触发自动持续集成

4.3 触发自动持续部署及 MeterSphere 自动化测试场景

触发完成后可以看到,CODING 持续部署成功:

触发 Jenkins Job 执行成功:

MeterSphere 平台自动化测试场景执行成功:

Docker 镜像部署成功 Web 访问验证:


↙↙↙阅读原文可查看相关链接,并与作者交流