说起 DevOps,大部分人的第一反应或者说闯入脑海的就是CI/CD(Continuous Integration/Continuous Delivery,即持续集成和持续交付)。但是,要想构建能够支撑起数字化转型要求的软件研发能力,与之适配的软件测试能力必不可少。正如由“软件质量报道”公众号和MeterSphere项目组共同撰写的《持续测试白皮书》第一章中所说,“持续交付了催生持续测试,持续测试应该嵌入到持续交付中,作为流水线中的一环,让开发过程可随时且具有连续性的自动化测试流程”。从经典的持续交付莫比乌斯环中也可以理解出“持续测试应该作为一项测基础和持续的测试活动、贯穿于整个软件交付周期之中。”企业开展持续测试能够帮助企业尽快获得软件发布后业务风险的反馈。
由中国信息通信研究院牵头撰写的全球首个 DevOps 标准,即《研发运营一体化(DevOps)能力成熟度模型》中第3部分--持续交付章节中也阐明了,测试管理作为持续交付7大能力域之一。
参照《研发运营一体化(DevOps)能力成熟度模型》要求,软件行业先后引入了SCRUM敏捷研发模型、持续构建、持续部署、持续监控等一系列最佳实践。而不同于CI/CD工具集,比如GitLab或者GitHub成为代码库标准,Jenkins成为持续集成工具主流,而测试本身,在DevOps流程体系中并没有一个平台或者工具完成所有的测试类型,用户会采用不同的工具完成不同的测试类型。乃至同一种测试都采用了不同的工具,比如接口测试有采用PostMan、Jmeter、Pytest等。而不同的测试工具无法都很的嵌入到DevOps流程体系中,从而导致了测试速度,测试反馈等滞后问题。从而导致当下,相比于其他环节,测试领域无论从工具的集成、最佳实践等都已经成为企业落地敏捷及DevOps实施的最大瓶颈。
阿里云效是云原生时代一站式BizDevOps平台。支持公共云、专有云和混合云多种部署形态。云效 DevOps 的 6 大优势:
云效 DevOps 提供项目协作、代码管理、持续交付流水线、云原生应用交付、在线IDE、制品仓库、测试管理、知识库 、效能洞察9大产品。
详情连接见:阿里云云效_云效_云原生时代新DevOps平台-阿里云
MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、性能测试、 团队协作等功能,全面兼容 JMeter、Postman、Swagger 等开源、主流标准。具有四大功能模块:
基于云效DevOps平台介绍,云效DevOps平台集成需求管理、代码管理、流水线、制品仓库、应用交付管理、测试管理等。但是在实际的使用中,在测试功能域中云效只包含了面向开发人员的单元测试和测试用例管理(可以给用例标记不同的测试类型,比如接口自动化,但是无实际作用),如下图所示,这点对应一些应用交付测试是远远不够的。
(流水线中的单元测试)
(测试计划中的测试用例)
所以为了更好的在DevOps环节中引入自动化测试,需要引入测试平台,能够将测试作为一项服务提供,而不仅仅是测试工具的使用。对企业而言无论产出比和对整体测试人员使用的友好度(并不是所有测试人员都可以基于python写接口自动化)上,MeterSphere在业内有着不错的口碑。所以MeterSphere和云效进行有效的集成,可以打通云效DevOps中测试最后的一个环节,实现1+1>2的效果。
本次实操Demo重点依赖云效的流水线,实操环境采用了GitHub代码库,阿里云云效流水线,阿里云个人镜像仓库,本地Jenkins环境,一台本地虚拟机(用于自动化部署),MeterSphere平台,MeterSphere平台的Jenkins插件。本次模拟场景如下:
MeterSphere官网提供了一键部署脚本:curl -sSL https://GitHub.com/metersphere/metersphere/releases/latest/download/quick_start.sh | sh
具体其他部署详见MeterSphere官网:一键部署 - MeterSphere 文档
1. GitHub上下载MeterSphere Jenkins插件 https://GitHub.com/metersphere/jenkins-plugin
2. 在 Jenkins 的插件管理页面,上传并安装下载好的 hpi 插件包
3. 插件安装后,在指定的 Jenkins 构建任务中,添加「MeterSphere」类型的构建步骤
4. 根据图示配置,填写认证信息并选择需要触发执行的测试计划(本文测试计划名称为MeterSphere-demo-testplan)
1. 开通阿里云云效产品使用
2. 新建与配置流水
备注:Jenkins实例全局安全设置中需关闭'防止跨站点请求伪造'选项,不然此部署会失败。 高版本 jenkins 关闭跨站请求伪造保护(CSRF) - 云+社区 - 腾讯云 (哈哈,腾讯云的社区贴)
编辑GitHub中index.heml中文件信息,然后commit changes提交。
自动触发云效流水线,云效流水线中已经显示正在运行。
点击流水线名称可以查看详细运行信息。
可以查看每个步骤执行情况。
同时企业微信已经收到相应的通知。
打开自动化部署系统页面,信息已经更新为代码修改的内容。
可以在MeterSphere平台中配置详细的测试结果企业微信通知。
点击企业微信的MeterSphere报告详情连接或者登陆MeterSphere平台,可以查看具体的报告内容。
结合云效和MeterSphere,企业可以快速补充 DevOps 流水线的最后一公里。当然此文章只是一个demo环境操作演示,并非正式的生产环境,供大家参考与思路参照。不同的企业可以结合自己的交付要求,将MeterSphere串入到交付流水线中。