Metersphere是一站式的开源企业级持续测试平台,涵盖测试跟踪、接口测试、性能测试、团队协作等功能,兼容JMeter 等开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量软件的交付。
主要功能
- 测试跟踪: 远超 TestLink 的使用体验
- 接口测试: 类似 Postman 的体验, 天然支持团队协作
- 性能测试: 兼容 JMeter,支持 Kubernetes 和云环境, 轻松支持高并发、分布式的性能测试
- 系统管理: 用户管理、租户管理、权限管理、团队协作
技术栈
- 后端: Spring Boot
- 前端: Vue.js、
- 中间件: MySQL, Kafka
- 基础设施: Docker, Kubernetes
- 测试引擎: JMeter
组件说明
- Frontend: MeterSphere 的前端工程, 基于 vue.js 进行开发
- Backend: MeterSphere 的后端工程, 基于 Sprint boot 进行开发, 为 MeterSphere 的功能主体
- Chrome plugin: 浏览器插件, 录制 web 访问请求生成 JMeter 脚本并导入到 MeterSphere 中用于接口测试及性能测试
- Node controller: 为性能测试提供独立节点类型的测试资源池, 接收来自系统的性能测试任务, 动态的启动 JMeter 容器完成性能测试
- MySQL: MeterSphere 项目的主要数据均存储在 MySQL
- Kafka: 接收 JMeter 产生的性能测试结果数据
- Data streaming: 从 Kafka 中获取性能测试结果数据进行处理后存入 MySQL 数据库
- Docker engine: 为 Node Controller 提供 JMeter 容器运行环境
各个组件间的关系可参考下图
部署服务器要求
- 操作系统: CentOS 7.x
- CPU/内存: 4核8G
- 磁盘空间: 50G
- 可访问互联网
在线安装
以 root 用户执行如下命令一键安装 MeterSphere:
curl -sSL https://github.com/metersphere/metersphere/releases/latest/download/quick_start.sh | sh
在线升级
# 升级至最新版本(v1.3.0+版本)
msctl upgrade
# 查看 MeterSphere 状态
msctl status
常见问题
Q:是否支持/如何支持分布式的性能测试?
MeterSphere 通过在测试资源池中添加多个测试执行节点的方式来支持分布式的性能测试。在我们向一个测试资源池中添加节点时,除了节点的 IP、端口信息外,还需要根据该节点的机器规格,配置该节点可以支持的最大并发数。当我们在执行性能测试的过程中选择了某个测试资源池时,MeterSphere 会将本次性能测试定义的并发用户数,按照所选测试资源池的节点支持的最大并发数进行按比例拆分,在测试开始执行后,每个测试执行节点会将测试结果、测试日志等信息输送到执行的 Kafka 队列中,MeterSphere 中的 data-streaming 组件会从 Kafka 中收集这些信息并进行汇总处理。
例如当我们在系统中存在一个如下配置的测试资源池,并选择该测试资源池执行一个 10000 并发用户的性能测试时,node1 及 node2 将各分配 4000 个并发用户,node3 将分配 2000 个并发用户。
Q:重启安装服务器后,如何启动 MeterSphere 相关组件?
MeterSphere 在安装过程中没有配置 docker 及其相关容器的自启动。当用户重新启动部署服务器之后,需要手动启动 docker 服务及 MeterSphere 相关容器。
service docker start
msctl start
msctl status
Q:如何向测试资源池中添加节点?
首先需要在要添加的节点上部署 MeterSphere 的 node-controller 组件,安装方式参考本文档「在线安装」或「离线安装」章节内容,在执行安装脚本前,修改 install.conf 文件中的 MS_MODE 字段的值为 node-controller 后执行安装脚本。
安装完成通过查看组件状态是否正常
msctl status
当组件状态正常后,使用管理员账号登录 MeterSphere,在「系统设置」-「系统」-「测试资源池」页面添加或编辑已有测试资源池,在弹出的页面中增加一个节点,IP 地址为要添加的测试执行节点的 IP,端口默认为 8082,最大并发数根据测试执行节点的机器规格进行配置。
节点添加完成点击确定后系统将对节点状态进行检查,若测试资源池为可用状态则说明该测试资源池及其中的节点可以正常使用。若提示校验不通过,请登录测试执行节点通过如下命令查看组件日志。
docker logs ms-node-controller
其他,详见MeterSphere 文档。