MeterSphere 社区分享|云智天下的自动化测试落地与演进

MeterSphere · November 14, 2022 · 4184 hits

编者注:在2022年10月22日举办的 “2022 MeterSphere 开源持续测试平台城市遇见· 成都站” 活动中,云智天下研发经理江泽东分享了题为《云智天下自动化测试落地与演进》的主题演讲。以下内容根据本次演讲整理而成。

成都云智天下科技股份有限公司(以下简称为云智天下)成立于 2014 年, 是一家基于云网融合技术提供智慧场景运营整体解决方案的互联网高新技术企业。公司主要在智慧城镇运营服务、智慧宽带服务及数据中心增值服务三大领域为政府、基础电信运营商、商业机构、个人用户提供前期咨询、方案设计、核心软件开发、系统集成及后期运营维护等综合解决方案。其平台化产品包括智慧文旅、数字乡村、智慧社区、智慧公交等,并且提供智慧工地、智慧跑道等行业解决方案。


云智天下研发经理 江泽东

一、业务背景

云智天下从 2016 年启动智慧社区平台建设。团队没有沿用传统的大单体架构,而是逐步将其转变为以数据中台和业务中台为核心的服务架构,以缓解运营管理与技术平台之间的压力,为产品赋能。

云智天下智慧社区的基础架构如下:

随着智慧社区业务架构的演变,架构中具体的业务模块数量出现了呈现几何倍数的增长;它们之间的数据调用、接口调用数量同样呈几何倍数的增长。这为云智天下的测试团队带来了很大的挑战,具体如下:

  1. 对测试质量的要求高

■ 数据中台中的数据是互通的,意味着业务稳定性、边界业务场景测试质量均需要得到保证;

■ 测试任务繁重,导致测试逃逸的频率变高;

■ 对测试管理能力、测试效率、测试质量的提升势在必行。

  1. 自动化测试建设的必要性高

■ 业务应用中 API 接口数量增多,且变更频繁;

■ 包括生产环境、测试环境等在内的测试环境多样化,导致业务应用面临大量的回归测试;

■ 手工测试的投入占比过大,但所获得的收益不高。

  1. 测试工具与测试团队的契合度要求高

■ 需要考虑到与团队技术栈的契合度,来判定测试工作是需要团队自己编写测试代码,还是直接使用测试工具;

■ 已知目前团队主要的测试需求为接口自动化测试和性能自动化测试;

■ 需要分别考虑选择自研测试代码、开源测试平台、收费测试平台的建设资金投入;

■ 团队有较为紧迫的项目化管理解决方案需求。

二、测试产品选型

云智天下目前使用的是微服务架构,对全面建设自动化测试的需求较高;且因为采用敏捷开发模式,需求变更相对来说会更加为频繁,所以需要进行较多 API 接口测试。

以前团队主要使用 Python 自行编写自动化测试脚本。但是代码编写的方法在测试工作中有很多不便之处:

■ 代码要求过高:脚本编写需要测试人员有一定代码素养,这也导致了招聘难度大,人工费用过高;

■ 学习成本过高:自动化测试代码的学习难度大,学习花费时间长;

■ 不便于集成:需要集成 Allure 等测试报告工具后,才能完成测试报告图表的配置;

■ DevOps 建设不足:自动化构建消息的机制不够简便。

后来,云智天下的测试团队经过多方考察,选用了 MeterSphere 一站式开源持续测试平台。相比于自研测试代码,MeterSphere 平台的优势包括:

■ 简单易操作:MeterSphere 平台操作简单、易上手,可通过拖拉拽轻松实现界面化的场景编排,平台自带的脚本可读性高;

■ 开源可控:MeterSphere 的开源社区生态建设完整,其中有许多社区工作人员和同行业人员可以进行深入交流。且目前 “开源” 是国家正在提倡的创新概念,为了积极响应国家号召,许多客户都会更加看重开源平台的使用情况;

■ 自动化运维:MeterSphere 平台自带定时任务功能,并能自动生成优美的测试报告,简化运维步骤,降低运维难度;

■ DevOps 建设:MeterSphere 平台可以和云智天下使用的办公软件钉钉直接打通。在自动化测试结束之后,MeterSphere 可以将生成的测试报告通过钉钉自动推送给测试人员,提高日常测试效率。

云智天下以前使用 JMeter 进行接口测试和性能测试。但是测试工作中仅使用 JMeter 会有以下的不足之处:

■ 依照 Master-Salve 模式(主从设备模式)配置时,会存在一定的交互压力;

■ 主从部署方案的配置过于繁琐;

■ 大并发性能压测的扩展性差;

■ 生成的压测报告不够全面,需要额外配置 Allure 自动化测试报告工具,以补充生成报告内容。

通过引入 MeterSphere 平台,云智天下弥补了以上测试工作中的不足之处:

■ 由 Node-Controller(节点控制器)配置资源池,弹性部署;

■ MeterSphere 的容器化部署配置更为轻简;

■ MeterSphere 性能测试的性能并发扩展性强,可以满足日常测试工作中的性能发压需求;

■ MeterSphere 一键生成的压测报告信息更加丰富美观,便于测试人员分析性能瓶颈。

整体而言,MeterSphere 开源持续测试平台将接口测试、性能测试进行了统一的集成,更加方便进行团队管理和项目管理。

在 MeterSphere 平台上所进行的完整测试流程如下:

① 场景编排:通过 MeterSphere 平台可以统一进行测试的场景管理与环境配置,通过拖拉拽的方式轻松地进行测试步骤的编排。MeterSphere 提供了丰富的测试组件,可以方便地进行场景嵌套与拼接,也可通过平台内自带的 Mock 功能及 JMeter 函数进行场景的调试;

② 场景自动化:在 MeterSphere 平台可以实现场景的自动化,手动或定时执行包括 API 调用、钉钉办公软件集成等在内的自动化测试,并将之转化为对应的性能测试;

③ 性能测试脚本:MeterSphere 平台有良好的性能测试脚本管理能力及定时任务调度能力,可以将测试场景打包为系统测试脚本,对一些关键业务接口进行性能测试。MeterSphere 有条件实现扩展性发压策略配置,并能通过优美的压测图表直接展示压测结果;

④ 报告发送:MeterSphere 可以通过钉钉办公软件将测试结果报告发送给对应的工作人员。

三、基于 MeterSphere 的测试实践

云智天下基于 MeterSphere 平台的测试工作覆盖了包括智慧小镇、社区产品、智慧公交、智慧巡检等在内的公司大多数业务版块。借助 MeterSphere 开源持续测试平台,测试团队展开接口测试与性能测试,大幅提升了测试效率。

目前云智天下主要有 5 个测试项目,接口在 1800 个以上,接口自动化场景 220 个,达成了自动化场景的 100% 全覆盖。团队测试人员共 3 人,均正在学习 MeterSphere 的使用,并通过 MeterSphere 进行相应的测试工作。

MeterSphere 开源持续测试平台为云智天下的测试工作带来的正面影响主要有以下几方面:

  1. 实现测试项目在平台的统一管理

■ 测试团队通过 MeterSphere 实现了测试项目和团队人员的统一协作;

■ 将 MeterSphere 接入企业 DevOps 流水线后,可以实现测试定时任务自动触发,帮助团队实现测试左移。同时,MeterSphere 作为 DevOps 流水线中的关键环节,也可以将自动化测试的结果与钉钉对接,形成数据联动。

  1. 实现主业务的接口测试、性能测试全覆盖

■ MeterSphere 满足了公司业务的接口测试需求,使得接口覆盖率有所提升;

■ MeterSphere 可以满足项目对于性能测试的需求,测试所需的配置简单,且能生成优美的结果报告图表,帮助团队掌握业务关键性能指标。

  1. 优化工作方式,提升测试效率

■ 团队测试工作全面迁移到具有易编排、高效执行等特点的 MeterSphere 平台后,相较于代码编写的测试方式,自动化测试的整体周期大幅缩短,人效提升高达 30%;

■ MeterSphere 的系统管理能力可以协助项目负责人进行测试人员的个人效能统计;

■ MeterSphere 可以支持团队测试报告的统一管理;

■ 在 MeterSphere 平台,团队测试工作的内容与进度更加透明、系统,方便管理者把控测试项目质量情况。

四、未来规划与期望

云智天下的测试团队正在计划,在一些长期稳定维护的项目中尝试使用 MeterSphere 平台的 UI 测试模块进行日常的冒烟测试、回归主场景。

在继续深度使用 MeterSphere 平台的同时,云智天下也希望 MeterSphere 平台能够不断进步,提供更加丰富的功能和组件。比如,在性能测试方面,希望 MeterSphere 能够提供更加细化的性能测试展示结果,引入更丰富的组件及图表,来帮助测试团队更好地展开测试结果分析。

No Reply at the moment.
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up