社区分享丨万帮能源基于MeterSphere展开微服务接口自动化测试

发布于 2023年06月07日

编者注:本文作者为万帮能源高级测试工程师钱常宇。

万帮数字能源股份有限公司(以下简称为“万帮能源”),位于江苏省常州市,专注于新能源汽车充电设备的研发制造与运营。万帮能源的核心品牌为星星充电,为全球客户提供设备、智能云平台、用户和数据运营等服务,借助车辆销售、私人充电、公共充电、金融保险等业务打造用户充电全生命周期平台,现已发展为我国三大电动汽车充电设备运营商之一。

一、背景介绍

星星充电通过“云-管-端”的产品组合为用户提供高效率的整体解决方案。所谓 “云-管-端”的协同,即“软件+服务+硬件”的铁人三项模式。在“云”产品上,星星充电云平台开放、共享,连接一切场景,赋能各类用户;在“管”产品上,美丽充作为自营场站是国家新基建的典型代表;在“端”产品上,公司旗下硬件覆盖了光伏、储能、交直流充电、能源路由器、直流微网等系列领域。

星星充电云平台,可以提供覆盖能源生产、能源传输、能源管理、能源交易、能源消费的全场景综合性能源解决方案。三大产品线共生共融,高效支撑能源设备从生产到运营的完整生命周期。

以下是星星充电云平台三大产品线所涵盖的产品类型:

能源设备服务产品:工程安装、智能运维、工程师专用App;

能源管理和交易产品:智慧能源、电力交易、虚拟电厂、能源管理App;

能源消费产品:多版本运营管理SaaS、运营管理App、星星充电App/小程序、互联互通服务、私有云运营平台。

二、为什么选择MeterSphere开源持续测试平台?

1.  技术难点

星星充电云平台BD测试团队(以下简称为“星充云BD测试团队”)在以往测试工作中,长期面临着一些技术难点,具体如下:

测试层次多,对环境搭建要求高;

服务数量多,链路长依赖多;

服务交付周期短,自动化测试开发速度跟不上交付的速度;

团队框架使用不规范,多种方式并存;

自动化测试代码的扩展性和可维护性不够。

2.  技术选型

目前,星星充电云平台的测试类型主要包括功能测试、接口测试、性能测试和UI测试。

图1-zjmz.png

3. 工具调研

基于以上技术难点,星充云BD测试团队对市面上的测试工具、平台进行了调研对比:

■ 一站式的测试平台

自动化工具

优点

缺点

sosotest

功能强大,可以实现操作数据库,获取数据进行对比。

相关文档太少,需要一定的Python基础,测试人员难上手。

YApi

界面简洁,操作流程清楚,用户数量多所以参考资料丰富。

不支持配置SQL直接操作数据库。

itest.work

界面友好,可实现一站式的测试管理。

接口测试中不支持操作数据库。

MeterSphere

基于Docker技术,工具部署维护便捷。界面友好,功能丰富。性能测试配置的界面化操作设计,操作更简单。开源社区活跃。

_

通过对比以上测试平台的优缺点,我们发现这些自动化测试平台都存在一定的局限性。对比之下,星充云BD测试团队还是觉得MeterSphere一站式开源持续平台比较适合团队当前的测试工作需要。

■ MeterSphere开源版和企业版试用对比

版本

对比结果

对比结论

企业版

除了场景测试报表外,还支持报表统计功能(包含图表显示,例如曲线图等);

具有Node、Kubernetes两种资源池; 

原厂企业级技术支持服务。

结合万帮能源团队现在的使用场景,开源版功能能够支持业务使用。

开源版

不支持报表统计功能,只有场景测试报表;

只有Node一种资源池; 

没有企业级技术支持服务,开源社区群支持简单问询服务,总体上需要自己维护。

结合了内部业务使用场景,调研分析了许多测试平台,星充云BD测试团队最终选择了MeterSphere开源版,主要原因如下:

① 学习成本低

MeterSphere平台的可视化界面操作简单,开源社区活跃,文档丰富;

低代码化,降低了测试人员进行自动化测试的技术门槛。

② 功能齐全

MeterSphere支持测试团队方便地进行多人协作;

MeterSphere支持多种数据格式(Swagger)接口导入;

MeterSphere平台可以通过一对多的方式同时控制多个节点,能够为测试团队提供接口测试与压力测试方案;

MeterSphere支持输出详细的测试报告,测试任务追踪;

MeterSphere完美兼容JMeter,支持JMX脚本,以及Jar包的导入。

③ 运维成本低

MeterSphere平台支持云化部署;

MeterSphere支持Kubernetes集群的动态调度;

MeterSphere提供长期维护的稳定版本,版本管控、数据备份便捷。

三、MeterSphere助力万帮能源接口自动化落地

星星充电的研发流程规范包括需求管理、研发评审、交付评审、研发自测(单测+冒烟)、代码审查、提测、系统测试、集成测试、测试验收、预发验证、预发安全验证、预发验收、上线审核、生产发布、生产验证等多个环节。

MeterSphere开源持续测试平台主要应用于研发自测和系统测试、集成测试环节。

首先,测试团队通过Docker方式本地化部署了MeterSphere平台(单节点)。将微服务接口以Swagger数据格式导入,通过MeterSphere平台的接口定义功能进行接口管理。

然后,基于接口测试中接口自动化功能分别设计接口自动化测试用例、业务场景自动化测试用例。接入MeterSphere平台之后,我们实现了自动化测试的良好运行,并得到了及时的结果反馈。通过自定义标签,我们还实现了接口测试覆盖率的统计。

以下是星充云BD测试团队在MeterSphere开源持续平台的一些实际应用场景:

1. 接口自动化

结合自定义标签功能,覆盖接口测试场景。

图2-cqxx.png

2. 业务场景自动化

在接口自动化模块中编排测试步骤,通过这些步骤将流程链路串连起来。

图3-frpd.png

3. 测试计划定期执行

图4-mdii.png

四、未来规划与对MeterSphere平台的期待

自2022年6月引入MeterSphere开源持续测试平台以来,星充云BD测试团队获得了良好的使用体验,工作效率得到提升,并通过MeterSphere平台解决了一系列测试工作中遇到的问题。在未来的工作中,团队希望能够继续发掘MeterSphere平台的各种功能,并将其应用在更多的测试场景中。

1. 统一用例管理

目前MeterSphere平台仅仅被应用于接口测试及接口自动化测试,日常功能测试的用例还维护在其他工具平台。希望未来MeterSphere平台可以支持测试用例多种数据格式(CSV、脑图等)的全量或增量导入、导出功能;

2. 接入现有的CI/CD平台

星星充电自研了一套CI/CD平台,希望未来能将其与MeterSphere平台的接口测试打通,加入测试通过率等质量卡点;

3. 代码覆盖率检测

目前MeterSphere平台还无法进行代码覆盖率的检测。希望未来MeterSphere平台可以并入全量或增量的代码覆盖率检测功能。或者可以自建覆盖率平台,将其与MeterSphere平台的接口测试打通;

4. 全链路压测

希望未来MeterSphere平台可以提供接口链路压测、监控等功能。