MeterSphere 一站式的开源企业级持续测试平台
在Jumpserver群中,飞致云旗下的产品,正好安装试一下,后面可以用来压测谷粒商城,先简单的安装了一下,下面都来自于官网。
[root@iZjd8471u20gpaZ bin]# chmod u+x docker-compose [root@iZjd8471u20gpaZ bin]# cd /tmp/metersphere-release-v1.0.0 [root@iZjd8471u20gpaZ metersphere-release-v1.0.0]# ll total 24 -rw-r--r-- 1 root root 811 Jun 15 12:44 install.conf -rwxr-xr-x 1 root root 3554 Jun 15 12:43 install.sh drwxr-xr-x 5 root root 4096 Jun 15 12:43 metersphere -rwxr-xr-x 1 root root 1880 Jun 16 11:43 msctl -rw-r--r-- 1 root root 954 Jun 15 12:43 quick_start.sh -rw-r--r-- 1 root root 24 Jun 15 12:43 README.md [root@iZjd8471u20gpaZ metersphere-release-v1.0.0]# /bin/bas base64 basename bash bashbug bashbug-64 [root@iZjd8471u20gpaZ metersphere-release-v1.0.0]# /bin/bas base64 basename bash bashbug bashbug-64 [root@iZjd8471u20gpaZ metersphere-release-v1.0.0]# /bin/bash install.sh ln: failed to create symbolic link ‘/usr/bin/msctl’: File exists /usr/bin/docker Docker already installed, skip installation Redirecting to /bin/systemctl start docker.service /usr/local/bin/docker-compose Docker Compose already installed, skip installation Pulling zookeeper ... done Pulling ms-node-controller ... done Pulling kafka ... done Pulling mysql ... done Pulling ms-server ... done Pulling ms-data-streaming ... done /tmp/metersphere-release-v1.0.0 Creating network "metersphere_ms-network" with the default driver Creating volume "metersphere_ms-conf" with default driver Creating volume "metersphere_ms-logs" with default driver Creating volume "metersphere_ms-jmeter-data" with default driver Creating volume "metersphere_ms-mysql-data" with default driver Creating volume "metersphere_ms-zookeeper-data" with default driver Creating volume "metersphere_ms-kafka-data" with default driver Creating ms-node-controller ... done Creating mysql ... done Creating zookeeper ... done Creating kafka ... done Creating ms-data-streaming ... done Creating ms-server ... done [root@iZjd8471u20gpaZ metersphere-release-v1.0.0]# msctl status Name Command State Ports ------------------------------------------------------------------------------------------------------------------------- kafka /opt/bitnami/scripts/kafka ... Up (healthy) 0.0.0.0:19092->19092/tcp, 9092/tcp ms-data-streaming /deployments/run-java.sh Up (healthy) 0.0.0.0:7777->7777/tcp ms-node-controller /deployments/run-java.sh Up (healthy) 0.0.0.0:8082->8082/tcp ms-server /deployments/run-java.sh Up (healthy) 0.0.0.0:8081->8081/tcp mysql docker-entrypoint.sh mysqld Up (healthy) 0.0.0.0:3306->3306/tcp, 33060/tcp zookeeper /opt/bitnami/scripts/zooke ... Up (healthy) 0.0.0.0:2181->2181/tcp, 2888/tcp, 3888/tcp, 8080/tcp [root@iZjd8471u20gpaZ metersphere-release-v1.0.0]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 155c637498e5 registry.cn-qingdao.aliyuncs.com/metersphere/metersphere:v1.0.0 "/deployments/run-ja…" 22 minutes ago Up 22 minutes (healthy) 0.0.0.0:8081->8081/tcp ms-server b73e7d08ae50 registry.cn-qingdao.aliyuncs.com/metersphere/ms-data-streaming:v1.0.0 "/deployments/run-ja…" 22 minutes ago Up 22 minutes (healthy) 0.0.0.0:7777->7777/tcp ms-data-streaming b12bcd4aeda0 registry.cn-qingdao.aliyuncs.com/metersphere/kafka:2 "/opt/bitnami/script…" 23 minutes ago Up 23 minutes (healthy) 9092/tcp, 0.0.0.0:19092->19092/tcp kafka dfd6f3b4846b registry.cn-qingdao.aliyuncs.com/metersphere/zookeeper:3 "/opt/bitnami/script…" 23 minutes ago Up 23 minutes (healthy) 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, 8080/tcp zookeeper cebff993895d registry.cn-qingdao.aliyuncs.com/metersphere/ms-node-controller:v1.0.0 "/deployments/run-ja…" 23 minutes ago Up 23 minutes (healthy) 0.0.0.0:8082->8082/tcp ms-node-controller 1db0f7fad32e registry.cn-qingdao.aliyuncs.com/metersphere/mysql:5.7.25 "docker-entrypoint.s…" 23 minutes ago Up 23 minutes (healthy) 0.0.0.0:3306->3306/tcp, 33060/tcp mysql [root@iZjd8471u20gpaZ metersphere-release-v1.0.0]#
MeterSphere 是一站式的开源企业级持续测试平台,涵盖测试跟踪、接口测试、性能测试、团队协作等功能,兼容JMeter 等开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量软件的交付。
界面展示
更多截图
点击这里查看更多功能截屏及演示视频
技术优势
- Full-Cycle 全生命周期: 能够覆盖从测试计划到测试执行、测试报告分析的不同阶段
- Automation & Scalability 自动化 & 扩展性: 支持接口和性能的自动化测试,可以充分利用云弹性实现超大规模的性能测试
- Continuous Test 持续测试: 能够与持续集成工具无缝集成,支撑企业实现测试左移
- Collaboration 团队协作: 支持不同规模的测试团队,小到几个人的测试团队、大到数百人的测试中心
主要功能
- 测试跟踪: 远超 TestLink 的使用体验
- 接口测试: 类似 Postman 的体验, 天然支持团队协作
- 性能测试: 兼容 JMeter,支持 Kubernetes 和云环境, 轻松支持高并发、分布式的性能测试
- 系统管理: 用户管理、租户管理、权限管理、团队协作
功能列表
测试跟踪 | 项目管理 | 多项目支持,测试用例、测试计划与项目关联 |
测试用例管理 | 在线编辑用例 | |
以树状形式展示项目的模块及其用例 | ||
自定义用例属性 | ||
快速导入用例到系统 | ||
测试计划跟踪 | 基于已有用例发起测试计划 | |
在线更新用例执行结果 | ||
灵活的用例分配方式 | ||
在线生成测试报告,支持自定义测试报告模板 | ||
与平台中的接口测试、性能测试功能结合,自动更新关联用例的结果 | ||
接口测试 | 测试脚本 | 在线编辑接口测试内容 |
支持参数化测试 | ||
灵活多样的断言支持 | ||
支持多接口的场景化测试 | ||
通过浏览器插件快速录制测试脚本 | ||
测试报告 | 测试执行后自动生成测试报告 | |
测试报告导出 | ||
性能测试 | 测试脚本 | 完全兼容 JMeter 脚本 |
在线调整压力参数 | ||
分布式压力测试 | ||
支持参数化测试 | ||
通过浏览器插件快速录制测试脚本 | ||
测试报告 | 测试执行后自动生成测试报告 | |
丰富的测试报告展现形式 | ||
测试报告导出 | ||
查看测试日志详情 | ||
系统管理 | 租户管理 | 支持多级租户体系 |
支持多种租户角色 | ||
测试资源管理 | 性能测试资源池管理 | |
邮件通知配置 | ||
集成与扩展 | 完善的 API 列表 | |
支持对接 Jenkins 等持续集成工具 |
快速开始
我们为用户准备了可以快速部署 MeterSphere 所有组件及所需的中间件的在线安装脚本, 你可以通过该脚本部署并体验 MeterSphere 所提供的功能
注意
快速安装脚本所部署的环境仅适用于测试体验目的, 生产环境请参考本文档「在线安装」章节内容进行部署
部署服务器要求
部署服务器要求
- 操作系统: 任何支持 Docker 的 Linux x64
- CPU/内存: 2核4G(最小)
- 磁盘空间: 20G
- 可访问互联网
安装步骤
执行安装脚本
以 root 用户 ssh 登录目标服务器, 执行如下命令
curl -sSL https://github.com/metersphere/metersphere/releases/latest/download/quick_start.sh | sh
安装脚本默认使用 /opt/metersphere 目录作为安装目录,MeterSphere 的配置文件、数据及日志等均存放在该安装目录
登录并使用
登录
安装成功后,通过浏览器访问如下页面登录 MeterSphere
地址: http://目标服务器IP地址:8081
用户名: admin
密码: metersphere
界面说明
维护项目信息
- 点击页面最上方的「测试跟踪」菜单,在下方的项目下拉列表中选择「创建」项目
- 输入项目基本信息,点击「确定」按钮,完成项目创建
跟踪测试计划
测试用例管理
- 在「测试跟踪」功能下的「测试用例」下拉列表中,选择「显示全部」,弹出项目中的所有测试用例
- 点击左侧用例模块树的「新建模块」按钮,创建一个新的用例模块
- 点击右侧列表中的「新建用例」按钮,在弹出的用例信息编辑页面中填写用例基本信息,点击「确定」完成用例创建
测试计划管理
- 在「测试跟踪」功能下的「测试计划」下拉列表中,选择「创建测试计划」,弹出测试计划编辑页面
- 填写测试计划的基本信息,并选择测试计划的所属项目及测试阶段,点击「确定」按钮完成测试计划创建
- 在测试计划列表中点击某一测试计划,进入测试计划详情页面
- 点击右侧测试用例列表中的关联测试用例按钮,在弹出的测试用例列表中,选择项目中的测试用例添加至该测试计划
- 添加成功后即可在测试用例列表查看到已添加的测试用例
- 点击某个测试用例所在行的编辑按钮,进行测试用例结果更新
- 当所有测试用例结果均更新后,即可点击用例列表中的查看测试报告按钮,查看此次测试计划的测试报告
执行接口测试¶
- 在「接口测试」功能下的「测试」下拉列表中,选择「创建测试」,弹出接口测试编辑页面
- 在接口测试编辑页面左上方下拉选择该测试所属的项目, 并填写该接口测试名称
- 按照测试需求, 编辑测试场景及测试场景中的接口请求详情
- 信息确认无误后, 点击「保存并执行按钮」
- 系统开始执行该接口测试, 并自动跳转到本次测试执行对应的测试报告, 在测试报告页面可查看本次测试的执行结果及每个接口的请求、响应内容
执行性能测试
- 在「性能测试」功能下的「测试」下拉列表中,选择「创建测试」,弹出性能测试编辑页面
- 在性能测试编辑页面左上方下拉选择该测试所属的项目, 并填写该性能测试名称
- 在「场景配置」页面上传已有的 JMeter 测试脚本
- 在「压力配置」配置本次性能测试的压力参数, 选择 「local」资源池进行本次测试
- 信息确认无误后, 点击「保存并执行按钮」
- 系统开始执行该性能测试, 在「报告」下拉列表中选择「显示全部」可查看到本次性能测试的执行状态, 当报告状态显示为「已完成」时, 可点击「查看报告」按钮查看此次性能测试的报告详情
整体架构
组件说明
- 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 容器运行环境
各个组件间的关系可参考下图
管理模型
概念说明
MeterSphere 提供了多租户、多角色的管理模型, 用户可根据所在团队的实际情况进行灵活的租户体系映射
- 系统: 每个独立部署的 MeterSphere 即称为一套系统
- 系统级角色: 角色的权限范围为整个体统, 常见的角色如系统管理员, 可管理整个系统内的租户、用户即测试资源, 同时可变更修改系统级配置参数
- 组织: MeterSphere 中的一级租户, 可映射为一个公司下的不同部门
- 组织级角色: 角色的权限范围限定在某个组织当中, 常见的角色如组织管理员, 可管理整个组织内的成员、工作空间及成员等
- 工作空间: MeterSphere 中的二级租户, 可映射为一个部门下的不同团队、项目组
- 工作空间级角色: 角色的权限范围现在在某个工作空间当中, 常见的角色如工作空间管理员及普通用户, 可在工作空间中创建项目、发起测试、查看测试报告等
安装参考:https://metersphere.io/docs/installation/online_installation/