编者注:2022 年 10 月,MeterSphere 开源社区在成都访谈了致远互联测试经理张之栋。作为 MeterSphere 开源持续测试平台的资深用户,张之栋先生分享了致远互联测试平台选型的过程,以及敏捷测试平台与 DevOps 体系的建设过程。以下内容根据本次访谈整理而成。
北京致远互联软件股份有限公司(以下简称为 “致远互联”)成立于 2002 年,总部设立在北京,是一家集产品的设计、研发、销售及服务为一体的高新技术企业,为客户提供专业的协同管理软件产品、平台、解决方案及云服务,是中国协同管理软件领域的开创者和持续引领者。
致远互联主要为政企客户提供产品及解决方案,并不断向大协同市场领域拓展。公司坚持平台化产品的发展路线,基于自主研发的 V5 协同管理平台,开发了面向中小企业组织的 A6 产品,面向中大型企业和集团型企业组织的 A8 产品,以及面向政府组织及事业单位的 G6 产品。
一、致远互联的业务背景
致远互联旗下的软件产品采用微服务架构设计,产品业务复杂度较高,整体由 20 个微服务构成。主打产品协同运营平台(即 Collaborative Operation Platform,简称为 COP)是面向数字化组织的企业级服务新品类,能够覆盖企业办公常见业务终端,统一接入企业业务流程建设体系。
由于业务复杂度高,且产品的业务生态体系庞大,致远互联的测试团队不断探索,希望能够搭建具有控制产品质量、测试流程、考核指标、持续集成等能力的一体化测试平台。
二、使用 MeterSphere 平台契机
致远互联的测试团队规模为 50 人,分不同测试小组进行业务、接口、性能、UI、安全等测试工作。出于大规模团队测试协作的要求,且从自身产品理念——“协同办公” 出发,在搭建测试平台过程中,测试团队经理找到了 MeterSphere 一站式开源持续测试平台。希望能够基于 MeterSphere 构建起协同研发体系工作的测试平台,并且打通产研 DevOps 流程,满足团队管理与降本增效的需求。
选择 MeterSphere 开源持续测试平台的理由如下:
■ 具备团队协作能力:MeterSphere 与致远互联自身的协同办公、数字化组织建设产品理念不谋而合;测试过程的数据、测试脚本、测试报告可按照业务组整合,方便对团队考核做数据支撑;
■ 使用体验佳:MeterSphere 的界面简洁易用,具备接口管理、接口用例管理、自动化测试的编排能力,支持自动输出测试报告的能力;测试同学上手度高,大幅缩短了自动化测试时长;
■ DevOps 集成能力:团队对代码质量要求高,代码构建需要提前做 P0 场景冒烟测试及自动构建日常自动化测试任务。MeterSphere 平台具有构建完整的流水线任务的能力。
通过对 MeterSphere 的调研、落地使用,并且对 DevOps 流水线集成系统做了适当改动之后,致远互联构建了自己的 “敏捷测试平台与 DevOps 建设系统”。
三、敏捷测试平台与 DevOps 体系的建设方法
基于致远互联自研的 DevOps 平台与 MeterSphere 集成的设计思路如下:
基于 MeterSphere 的 OpenAPI 接口,通过测试平台微服务统一触发冒烟测试和接口功能测试自动化任务。通过流水线构建 Dev 环境,触发对应微服务接口场景执行,异步返回执行结果到流水线服务。如果通过,则控制推送镜像至 Test 环境,并且通过配置文件控制执行并发数、执行环境,最终将集成执行过程数据收集,并生成测试报告和触发消息;
测试平台端创建初始化、冒烟、功能测试、还原等目录,分别在对应目录下实现对应接口场景:流水线构建 Dev 环境,触发对应微服务接口场景执行(可配置执行目录),异步返回执行结果到流水线服务。如果通过则控制推送镜像至 Test 环境;CI 构建时,测试同学只需在对应目录下新增或移出场景,即可同步 CI 构建时的执行场景。
统一调度 CI/CD 流水线集成过程如下:
① 开发代码提交到阿里云上做代码集成编译并生成对应的镜像后,通过 MeterSphere 平台拉起接口测试环境,触发任务调用 MeterSphere 冒烟接口自动化任务搭建,快速完成 P0 场景冒烟测试。
■ 若 P0 冒烟测试通过,则标记镜像成功并构建提测到测试环境,通知测试人员进行最新的功能测试;
■ 若 P0 冒烟测试未通过,则构建任务回滚,由开发人员重新修改自测再提测。保证测试环境功能稳定及代码提测质量。
② 在测试团队端划分多个测试小组,当产品给出需求文档后,测试人员将统一完成基于具体功能的接口测试场景。在 MeterSphere 平台按测试目录实现脚本编写,再由测试平台自动配置每晚跑相关功能的自动化测试任务。最后,测试报告会通过内部聊天工具 “致信” 机器人生成对应消息通知到指定人。
③ 所有执行过程数据由测试平台统计生成测试报告。每个微服务工程下自动化用例执行数量、通过率由统一收口展示,这样可以直观看到每个测试小组所负责模块的自动化覆盖情况,为后续产品发布及项目总结做数据支撑。同时,测试报告可以穿透到 MeterSphere 平台检查未通过的接口用例,进而再对测试脚本做进一步的调试修改。
④ 利用平台优势,通过对研发代码构建回滚次数、测试脚本数量、测试执行过程通过率、接口覆盖率的统计,项目管理团队可以对研发质量和测试质量进行整体评估。对团队产出效能、投入产出的评比及后续岗位晋升都可以提供更有说服力和支撑力的数据支撑。
四、总结
致远互联基于 MeterSphere 构建的敏捷测试平台实现了以下成果:
■ 测试平台通过调度 OpenAPI 接口将场景执行方式由目录控制,使业务组使用更加灵活;
■ 过程数据收集的颗粒度更高,能够收集到更多关于测试管理过程的数据;
■ 任务调度更灵活。测试平台可以配置 Java 线程,通过调整接口自动化的执行线程,满足统一场景对于不同并发线程的需求,同时也便于集成多种流水线环境;
■ 由测试平台统一调度自动化任务,减少了人为干预造成的资源撞车,降低沟通成本,较以往的自动化构建效率明显提升;
■ 目前,致远互联已经在 MeterSphere 平台完成项目管理数 17 个。接口场景数量超过 2600 个,接入用户数量 50 人。
五、后续测试平台完善计划
■ 测试平台与精准测试的集成
目前,致远互联的测试团队正在初步推动并搭建精准测试平台相关建设内容,后续和测试平台做数据打通与集成,实现测试构建后精准推送受影响的功能测试用例到相关测试人员处,并自动拉起构建接口自动化任务,快速完成测试任务;
■ 契约测试探索
致远互联产品微服务架构体系庞大,为了确保微服务之间足够兼容及通信协议调度正常,后续将引入契约测试,实现问题的快速定位和测试前移。