万物云空间科技服务股份有限公司(以下简称为“万物云”),前身为万科物业发展股份有限公司,是国内领先的物管龙头上市公司。作为一家科技引领的全域空间服务商,万物云致力于打造产业级共享服务平台,基于空间物联技术及应用,构建产业互联生态。截至2023年12月31日,万物云在全国范围内的在管住宅物业服务项目达到3810个,商企物业服务项目2241个,智慧城市服务项目98个。
一、万物云的测试业务现状及自动化建设目标
万物云的测试范围包含软件和硬件两个层面。软件层面,万物云统一管理着旗下万科物业、万科云城等七家公司的研发团队,这些公司的业务领域包括居住消费、住宅物业、二手房租售、新房置业、房屋装修、商企物业、安防机电、智慧城市、智慧社区等,业务系统众多,使用的IT信息系统超过60个,每个系统在更新后都需要进行测试;
硬件层面,由于万物云的业务包括提供IoT(Internet of Things,物联网)解决方案,其中涉及到许多硬件,这些硬件也需要进行测试。因此,对于万物云的测试团队来说,面向繁杂应用场景和维度的测试无疑是一个巨大的挑战。
除了广泛的测试范围以外,测试管理的不便和测试效率低下也是困扰万物云测试团队的两个难题。一方面,万物云信息系统的测试工作由许多测试小组独立负责,这些小组一般由3到5人组成。各小组的测试工具和测试资产比较零散,管理人员难以实时统计和管理测试数据、测试进度及测试成果;
另一方面,随着业务的快速增长,万物云各个项目的迭代周期从以往的2到3个月缩短为1个月甚至更短,迭代周期的缩短,对测试团队的测试效率提出了更高的要求。
万物云的测试团队希望从建设自动化测试平台入手,进一步优化测试流程,提高测试效率,解决测试范围广、测试管理难、测试效率低三个关键问题,并实现以下三个目标:
■ 全生命周期的测试管理
万物云的测试团队希望新构建的自动化测试平台可以覆盖测试活动的完整生命周期,涉及测试计划的制定、用例设计、自动化脚本编写、测试执行、结果分析和报告整理等环节。
在测试计划阶段,测试团队的管理人员可以通过测试平台确定测试目标、测试范围、测试资源、测试进度等,确保测试活动能够有序进行;
在测试设计阶段,测试平台需要提供设计测试用例的工具和方法,帮助测试人员设计测试用例和测试场景,从而确保测试的全面性和有效性;
在测试执行阶段,测试平台要具备可以自动化执行测试用例的能力,减少人工测试量,提高测试效率,同时也要能够实时同步测试进度和测试结果,保证测试人员可以及时发现和处理测试中遇到的问题;
在结果分析和报告整理阶段,测试平台需要能够对测试结果进行统计和分析,生成详细的测试报告,帮助测试团队了解测试的质量和效果,同时为未来改进测试工作提供参考。
■ 提升持续测试能力
项目迭代周期的缩短,意味着测试团队需要快速高效地完成冒烟测试和回归测试。这就要求在应用发布时,测试平台要能够自动运行冒烟测试和回归测试用例,并将测试结果及时反馈给开发团队,保障核心业务场景的稳定性。
要实现这个目标,最直接的手段是将测试平台与DevOps平台进行对接,保证测试平台能够自动触发测试操作。然而,万物云使用的各类测试工具无法与开发团队所使用的TFS(Team Foundation Server ,微软开发的团队代码管理服务平台)平台进行集成,导致万物云DevOps流程中持续测试的短板无法被补齐。
为了让万物云的测试活动更加紧密地融入敏捷开发的流程中,万物云迫切需要一个能够与DevOps工具链集成的测试平台。
■ 建立质量度量体系
万物云的测试数据资产大部分由各个测试人员独立维护和管理,这导致了测试管理人员难以实时统计测试进度,不利于迭代计划的调整和优化。
所以,新构建的测试平台要具备展示实时数据的能力,从而为测试团队的管理人员分析测试进度提供参考,并且对测试活动的绩效作出评估。除此以外,测试平台还需要能够生成可视化报告,从而帮助团队识别日常工作中存在问题,并且及时制定优化策略。
二、为什么选择MeterSphere?
万物云的测试团队经过详细的调研和对比,最终选择了基于MeterSphere开源持续测试平台建设自动化测试平台。测试团队经过对比选型后选择MeterSphere的四个理由如下:
1.一站式的测试和管理
测试方面,MeterSphere集成了团队协作、用例管理、接口自动化、UI测试、性能测试和消息通知等功能,让测试团队可以一站式地完成测试任务,无需频繁切换各种测试工具。在设计不同业务类型的测试用例时,MeterSphere提供的自定义用例模板、自定义版本、自定义模块等功能,为构建用例的规范和标准提供了基础支撑;
管理方面,MeterSphere所使用的“工作空间+项目”管理维度,正好与万物云“测试小组+项目”的团队管理模式相适配。除此以外,MeterSphere还支持对测试数据资产进行集中的持久化存储,极大地方便了测试团队统一管理和继承测试数据。
2.灵活的插件机制和高可扩展性
万物云对测试平台的重要需求之一,就是测试平台要能够支持包括MQTT协议在内的软件和硬件的自有协议。
MeterSphere的自定义插件机制满足了这一需求。通过MeterSphere完全开放的API,测试团队可以灵活地根据业务需求完成与微软TFS的对接,将测试业务与CI/CD流程打通,让自动化测试融入敏捷开发的流程,最终形成闭环。
3.数据分离和高度可复用
MeterSphere支持独立维护并使用包括用例、脚本、数据在内的公共测试资产。因此,在底层系统相同的情况下,测试人员可以提炼出业务的重叠部分,将这些测试资产转化为公共测试资产,与其他测试人员共享。这样一来,每位测试人员只需要关注各自独有的测试参数,就可以快速开展测试任务了。
除此以外,MeterSphere还拥有灵活的用例引用和复制机制,测试人员可以轻松地拆分和组装公共测试资产,最大程度地化解了测试人员每次测试都需要重新编写测试用例的痛点。使用MeterSphere后,万物云的测试人员只需要根据业务流程选择用例进行组装,就可以完成整个业务流程的拼接。
4.可视化的测试度量
DataEase是一款开源的数据可视化分析工具,具备丰富的图表类型和样式配置,以及灵活的指标计算、下钻、联动等功能。
MeterSphere支持与DataEase无缝对接。以MeterSphere集中管理的测试数据为基础,借助DataEase的数据展示能力,能够多维度地实时展示测试进度和测试成果,将万物云的测试度量体系可视化,极大提升了万物云测试团队对应用的质量保障水平。
三、万物云自动化测试平台的建设过程
万物云自动化测试平台的建设过程共分为四个阶段:即存量测试数据整理和迁移阶段、集成TFS阶段、测试质量大屏建设阶段,以及持续测试阶段。
■ 第一阶段:存量测试数据整理和迁移阶段
万物云的存量测试数据资产由各个测试小组的成员保存,具有数据类型多样化的特点。纷繁复杂的数据类型,让测试团队的存量数据迁移变成了一项艰巨的工作。
由于MeterSphere支持直接导入常见的Postman、JMeter、Swagger等类型的测试数据,因此测试团队平滑地完成了存量数据的迁移工作。除了存量数据易于迁移以外,MeterSphere平台还支持定时同步Swagger文档,从而实现了接口定义数据的定时自动更新,降低了测试团队的沟通成本,有效提升测试效率。
■ 第二阶段:集成TFS阶段
万物云的开发团队使用微软TFS进行流水线作业。然而,TFS无法直接与MeterSphere进行对接。为了解决这一难题,万物云测试团队和MeterSphere团队进行了调研和多种方案对比。最后,双方决定基于解耦的原则,采用“TFS插件+网关”的方案进行对接。具体对接架构如图1所示。
▲ 图1 微软TFS与MeterSphere平台的对接架构
万物云TFS插件的具体执行过程如下:
① 在TFS中选择需要执行的测试任务所在的工作空间、项目和测试用例;
▲ 图2 在TFS中选择工作空间、项目和测试用例
② 保存相关配置后,开发人员提交代码完成构建,触发MeterSphere平台自动执行测试用例,如图3所示;
▲ 图3 触发MeterSphere平台自动执行测试用例
③ 测试人员查看MeterSphere执行步骤中具体的执行情况和报告,并点击图4中红框位置的链接;
▲ 图4 查看测试用例的自动执行情况
④ 点击图4的链接后,跳转进入MeterSphere测试报告页面,如图5所示。
▲ 图5 MeterSphere平台自动生成的测试报告
■ 第三阶段:测试质量大屏建设阶段
为了优化万物云的测试度量体系,万物云将MeterSphere平台与DataEase数据可视化分析工具进行了无缝对接,构建了测试质量数据大屏。
在万物云的测试质量可视化数据大屏上,不同项目的接口用例数量、执行次数、接口自动化用例数量等多个维度的数据都得到了直观生动的展现,为测试管理人员做出科学决策提供了有力的数据支持。
▲ 图6 万物云的测试质量大屏
■ 第四阶段:持续测试阶段
在MeterSphere开源持续测试平台与微软TFS完成集成,并且构建了测试质量大屏后,万物云的测试团队不断完善和优化测试流程,最终形成了“接口定义设计→自动同步接口定义→用例设计→自动化测试→自动化推送测试结果→测试进度和测试成果展示”的完整测试流程闭环,成功实现了“持续测试”的目标。
▲ 图7 万物云的持续测试流程
四、万物云自动化测试平台的建设成果
万物云基于MeterSphere开源持续测试平台搭建的自动化测试体系,对其核心业务的接口和自动化测试场景的覆盖率达到了100%。
目前,万物云已经使用MeterSphere开源持续测试平台管理了120多个项目,25000多个测试用例,以及240多个测试计划。TFS平均每天触发执行测试计划任务超过150次。自动化测试平台体系给万物云的测试团队带来的价值,主要体现在以下三个方面:
1.响应快:应用在生产环境发版后,会自动触发MeterSphere执行测试任务,节省了发版后测试团队和开发团队的沟通成本和协调时间,沟通效率提升了10%;
2.效率高:由于MeterSphere和TFS进行了对接,TFS能够主动触发测试人员在MeterSphere中设置好的自动化接口场景,MeterSphere会自动执行接口用例。执行完成后,MeterSpere还会自动生成测试报告,并且自动将测试结果推送至相应的责任人。
与之前单纯依靠测试人员手工操作相比,使用MeterSphere后,从接口测试到产出测试报告和测试结果,测试人员完成这一套工作流程的平均花费时间,从以前的15分钟缩短至如今的6分钟,有效提高了测试团队的工作效率;
3.有效性高:MeterSphere的自动化脚本使用响应断言与Elasticsearch数据库和MySQL数据库中的数据进行对比,实现了多重校验,提升了代码验证的准确性和全面性,从而有效保证了产品交付质量。