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