时间就是金钱,效率就是生命,在当下的社会里不仅我们的生活节奏变得越来越快,软件研发上线的节奏也是如此。在如此快节奏的软件开发环境中,高质量的软件测试变得尤为重要。
为了提高测试的效率和质量,建设一个强大的自动化测试体系势在必行。企业引入自动化测试的过程主要有两种方式:基于测试框架编写自动化测试脚本,或者建设自己的测试平台。
基于测试框架编写自动化测试脚本的方式,可以实现灵活的测试定制和精细化控制。这种方式适用于对测试框架和编程语言较为熟悉的团队,能够根据实际需求进行自由扩展和定制。
然而,编写和维护大量的测试脚本需要投入大量的时间和人力资源。此外,测试脚本的开发对开发人员的技术要求较高,对团队的技术依赖性较大。对测试结果的分析和报告生成也需要额外的工作。
相比之下,建设测试平台可以带来一系列优势。测试平台提供了集中管理测试用例、执行测试任务、跟踪测试进度和分析测试结果的能力。
测试平台还可以提供丰富的报告和分析功能,方便团队查看测试结果和评估测试覆盖率。但建设一个完整的测试平台需要投入大量的人力和资源,对于一些团队来说是一项不小的挑战。
今天给大家推荐一个 GitHub 开源项目:MeterSphere 一站式开源持续测试平台。
这是粉丝群中一个负责公司内部测试平台建设工作的小伙伴推荐的,他跟我讲述了他们团队原本打算自研测试平台,了解到这个开源项目之后果断放弃自研,直接采用这个开源测试平台开展测试工作的经过。
经过一番了解之后,我发现在众多的测试平台中,MeterSphere 确实有他的独到之处,怪不得能够成为越来越多测试人员的选择。
MeterSphere 项目创立于 2020 年 2 月,目前总共有 9000 多个 Star,2000 多次 Fork,累计的 issues 更是有 8000 多个。这应该是迄今为止我见到过数据最牛的测试相关开源项目了。
此外,在由中国开源推进联盟(COPU)牵头,联合众多知名社区、高校、专家共同发布的《2023 中国开源发展蓝皮书》中,MeterSphere 项目的影响力更是排在第 6 位,是排名前二十的项目中唯一的测试相关项目。
接下来就带大家进一步了解下 MeterSphere,为什么它能受到众多测试人员的喜爱,能让粉丝群中的小伙伴放弃自研测试平台。
开箱即用
MeterSphere 提供了十分完善且简单的安装脚本,对于像我这样不需要修改安装参数只是想体验一下平台功能的用户,可以通过一键安装脚本实现快速安装(需要联网)。
安装不仅包含 MeterSphere 的应用,需要用到的数据库、还有 Redis 这些中间件,不需要自己额外部署,这一点先给个好评。
对于纯内网环境,服务器不能连外网的小伙伴,MeterSphere 项目组也提供了完整的离线安装包,下载以后传到服务器上解压执行安装脚本,也可以很快速地完成安装环节。
MeterSphere 还支持通过 Helm Chart 在 Kubernetes 环境中部署以及分布式的部署方案,从部署这个方面就可以看出 MeterSphere 项目组考虑得十分周到细致,基本上各式各样的部署场景都考虑到了。
界面美观
MeterSphere 的主题色使用了比较少见的紫色,整体给人一种耳目一新的感觉。产品的菜单设计也比较清晰,左侧设计了可以展开 / 收起的功能模块菜单,顶部是功能模块下的子模块菜单和消息通知、任务中心以及个人设置这些通用功能的入口。
功能强大
定位为 “一站式持续测试平台”,MeterSphere 的功能确实既全面又强大。
MeterSphere 主要包含了测试管理、接口测试、UI 测试和性能测试四个核心功能模块,以及项目设置、系统设置这样的管理模块。
接下来简单给大家介绍下每个模块的主要功能,以及我的使用感受。
测试管理
测试管理模块围绕测试用例及测试计划提供以下主要功能:
- 首页信息展示:首页集中展示了当前项目的用例数量统计、关联用例数量统计、用例维护人分布、遗留缺陷统计、过去 7 天测试计划失败用例 TOP10、测试用例评审、定时任务等信息。
- 功能用例:支持在线表单、脑图方式创建测试用例,创建用例时关联其他类型测试用例(比如接口用例、场景用例、性能用例),支持测试用例导入 / 导出,导入 / 导出格式支持 Excel、XMind 等多种文件格式。
- 用例评审:支持创建评审,关联及取消关联测试用例,在线评审并反馈评审是否通过及评审具体意见建议。
- 测试计划:支持列表显示、创建、编辑、删除测试计划,关联测试用例,在线更新反馈测试用例的测试结果,包括 “通过”、“失败”、“阻塞”、“跳过”,以及在线自动实时统计显示测试计划对应的测试报告,导出 HTML 格式的测试报告和分享报告链接。
- 缺陷管理:管理该项目下所有的缺陷信息,如果项目设置关联了其他 Bug 平台(比如 Jira、TAPD、禅道等),则此 Bug 会自动同步到相应的平台。
- 报告:提供直观、美观的页面对测试计划结果进行可视化展示,同时提供导出报告等功能方便对测试结果进行归档及分享,同时可以自定义配置报告模版。
MeterSphere 测试管理模块中比较吸引我的有两个点,一是脑图模式下的用例编辑和管理,二是测试计划的概念以及测试计划里功能用例与其他自动化用例之间的关联关系。
接口测试
接口测试模块由首页、接口定义、接口自动化、测试报告四部分组成。
- 首页:展示当前项目的接口数量、接口用例数量、自动化场景数量、场景定时任务数量、接口覆盖度、用例覆盖度等信息,以及过去 7 天有更新的接口、运行中的定时任务等,帮助用户快速了解当前项目接口测试情况。
- 接口定义:可用于管理接口、接口用例,并执行调试等测试工作。其中接口定义支持 HTTP、TCP、SQL、Dubbo 协议,导入支持手动录入,也支持导入企业现有的接口测试工具中的接口,例如 MeterSphere 格式、Postman 格式、Swagger 格式、HAR 格式、JMeter 格式等。
- 接口自动化:用于场景级自动化测试工作,能够编排组合多个接口实现一个场景的测试;在场景中支持自由添加接口请求,提供变量提取、响应断言、前后置脚本、逻辑控制器等功能。
- 测试报告:对接口测试结果进行可视化的美观页面报告展示,支持报告分享和导出,方便对测试结果进行归档留存。
根据 MeterSphere 官方文档介绍,其接口测试使用了 JMeter 作为执行引擎,体验了一下后主要感觉的是,MeterSphere 在功能和体验上结合了 Postman 和 JMeter 两者的优点。
在单接口管理和调试上,MeterSphere 跟 Postman 比较接近,相信用过 Postman 的用户都很容易上手。在多接口场景化编排上,MeterSphere 完全保留了 JMeter 强大的能力与灵活性,同时又把很多功能进行了进一步包装,让用户更容易理解和上手。比如,接口测试中经常用到的参数提取和断言功能,MeterSphere 针对 JSON 格式的响应体提供了推荐功能,点点鼠标就可以添加想要的断言,不需要自己写 JSONPath 表达式了。
UI 测试
MeterSphere UI 测试模块围绕应用系统的用户界面提供以下主要功能:
- 元素库:平台提供元素库的功能,通过创建元素库,可以把 UI 自动化场景中的单个步骤,进行统一管理,达到页面元素在不同 UI 场景中复用的效果。
- UI 自动化:支持手动创建 UI 自动化场景和导入 SeleniumIDE 工具录制好的 side 脚本文件,支持添加浏览器操作、 弹窗操作、元素操作、鼠标操作、输入操作、流程控制等步骤,并提供查看元素库、前置操作、后置操作、错误处理等高级功能。
- 测试报告:提供直观、美观的页面对 UI 测试的结果进行可视化展示,可查看场景全部步骤和失败步骤,以及控制台详情,并且支持对步骤执行时的 UI 截图预览。
整体上 MeterSphere UI 测试功能也是比较容易上手的,我在之前没怎么接触过 Selenium 以及浏览器自动化测试的情况下,通过查看 MeterSphere 的文档和视频教程也可以很快速地完成一个页面的自动化测试场景。
性能测试
MeterSphere 性能测试模块可以认为是一个在线的、Web 版的 JMeter。相比于直接使用 JMeter 进行性能测试,MeterSphere 在这四个方面进行了相应的增强:
测试脚本录制和管理增强:提供脚本录制 Chrome 插件,并统一存储在一个平台上。
压测规模扩展性增强:压测执行节点按需创建和安装,轻松支持大规模性能测试。
测试报告分析增强:实时的性能测试报告展示,多次测试结果可以快速比较。
团队协作增强:B/S 架构,测试用例、脚本和报告可以有效隔离和分享协作。
虽然我没怎么用过 JMeter 进行性能测试,但还是很快就能上手 MeterSphere 提供的相关功能,之前在接口测试模块中调试的场景一下子就能转换成一个性能测试。相信之前有在使用 JMeter 的用户,肯定更能体会到 MeterSphere 性能测试模块的特点和优势。
写在最后
综合体验了 MeterSphere 平台之后,我十分理解前文提到的小伙伴为什么会放弃自研测试平台,选择直接使用 MeterSphere。
一方面 MeterSphere 作为一个开箱即用的测试平台,本身的功能就已经足够丰富、足够强大了,相信大部分测试团队直接部署使用就可以满足自己的需求。
另一方面,MeterSphere 作为一个明星开源项目,有着广泛的用户群体、活跃的交流社区以及持续不断投入的项目组成员,与其自己闭门造车不如共同参与到开源项目当中,既能满足自己又能帮助他人。
对于没有 IT、人力资源来私有化部署、维护一套 MeterSphere 环境的用户,官方还提供了在线的 SaaS 版本(https://metersphere.com),注册账号之后就有 7 天的免费体验时间,后续正式订阅的价格也比较公道。
如果你所在的团队也在自研自动化测试平台,或者有自动化测试的相关需求,MeterSphere 是一个我认为值得去体验尝试的开源项目。
最后再放上该项目的开源地址,大家可以参考学习。