一站式的开源持续测试平台---MeterSphere

一站式的开源持续测试平台---MeterSphere

在我们实际的项目迭代过程中,基本上会经历过的几个问题:

测试用例不规范,有些甚至没有测试用例文档 文档随个人喜好随便使用,word、excel、xmind... 没有专门的人去管理这些文档,时间长了就丢失了 测试用例和测试脚本很凌乱,基本都是测试个人保管

以前的公司,包括现在的公司都自研过自己的测试平台,但是都不尽人意,直到看到MeterSphere让人眼前一亮,产品的厂家和JumpServer的厂家是同一个,比较靠谱,从发布到现在差不多7个月的时间,star已经超过了1.4k,非常活跃。

...

为什么要持续测试?

传统 QA 团队和实践难以满足数字业务的需求

...

数字业务的要求

缩短交付时间 快节奏交付 从质量保障到质量协助

传统 QA 的不足之处

人工测试耗时长 “部门墙”和“交接”仍然存在 Bug 发现和解决成本高

什么是 MeterSphere ?

MeterSphere 是一站式的开源企业级持续测试平台,涵盖测试跟踪、接口测试、性能测试、团队协作等功能,兼容JMeter 等开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量软件的交付。

整体定位

持续测试是企业 DevOps 实践中的关键环节

...

测试跟踪

...

测试用例管理

树状用例管理结构 在线编辑用例 快速导入用例

测试计划跟踪

基于已有用例发起测试 在线更新用例执行结果 自定义测试报告模板

接口测试

...

测试脚本

在线编辑测试内容 支持参数化测试 支持断言、变量提取 通过浏览器插件快速录制

测试报告

自动生成测试报告 多次测试结果对比 查看请求及响应详情 测试报告内容导出

性能测试

...

测试脚本

完全兼容 JMeter 脚本 在线调整压力参数 分布式、多平台测试资源池 通过浏览器插件快速录制

测试报告

自动生成测试报告 多次测试结果对比 丰富的报告展示详情 测试报告内容导出

团队协作

...

多租户支持

多级租户体系 支持多种租户角色 租户资源隔离

测试资源管理

性能测试资源池 测试报告模板 第三方系统对接

MeterSphere 的优势

全生命周期 能够覆盖从测试计划到测试执行、测试报告分析的不同阶段 自动化 & 扩展性 支持接口和性能的自动化测试,可充分利用云弹性实现超大规模的性能测试 持续测试 能够与持续集成工具无缝集成,支撑企业实现测试左移 团队协作 支持不同规模的测试团队,小到几个人的测试团队,大到数百人的测试中心

技术栈

后端: 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 容器运行环境

各个组件间的关系可参考下图

...

管理模型

...

MeterSphere 提供了多租户、多角色的管理模型, 用户可根据所在团队的实际情况进行灵活的租户体系映射

系统: 每个独立部署的 MeterSphere 即称为一套系统 系统级角色: 角色的权限范围为整个体统, 常见的角色如系统管理员, 可管理整个系统内的租户、用户即测试资源, 同时可变更修改系统级配置参数 组织: MeterSphere 中的一级租户, 可映射为一个公司下的不同部门 组织级角色: 角色的权限范围限定在某个组织当中, 常见的角色如组织管理员, 可管理整个组织内的成员、工作空间及成员等 工作空间: MeterSphere 中的二级租户, 可映射为一个部门下的不同团队、项目组 工作空间 角色: 角色的权限范围现在在某个工作空间当中, 常见的角色如工作空间管理员及普通用户, 可在工作空间中创建项目、发起测试、查看测试报告等

安装部署

环境要求

操作系统: CentOS 7.x CPU/内存: 4核8G 磁盘空间: 50G 可访问互联网

一键安装

以 root 用户执行如下命令一键安装 MeterSphere:

curl -sSL https://github.com/metersphere/metersphere/releases/latest/download/quick_start.sh | sh

手动安装

请自行下载 MeterSphere 最新版本的在线安装包,并复制到目标机器的 /tmp 目录下

安装包下载链接: https://github.com/metersphere/metersphere/releases

以 root 用户 ssh 登录到目标机器, 并执行如下命令

cd /tmp# 解压安装包tar zxvf metersphere-release-v1.0.3.tar.gz

在安装包解压后的目录,编辑修改安装参数, 如果无特殊需求可以不进行修改采用默认参数安装

cd metersphere-release-v1.0.3vim install.conf

安装脚本默认使用 /opt/metersphere 目录作为安装目录,MeterSphere 的配置文件、数据及日志等均存放在该安装目录

执行安装脚本

cd metersphere-release-v1.0.3# 运行安装脚本/bin/bash install.sh# 等待安装脚本执行完成后,查看 MeterSphere 状态msctl status

安装成功后,通过浏览器访问如下页面登录 MeterSphere

地址: http://目标服务器IP地址:8081 用户名: admin 密码: metersphere`

升级

按照本文档前述步骤, 下载新版本安装包并上传解压后, 重新执行安装命令进行升级

# 进入项目目录cd metersphere-release-v1.x.y# 运行安装脚本/bin/bash install.sh# 查看 MeterSphere 状态msctl status

操作手册可以参考官网 https://metersphere.io/docs/usermanual/systemmanagement/

... ... ... ...

欢迎关注 “后端老鸟” 公众号,接下来会发一系列的专题文章,包括Java、Python、Linux、SpringBoot、SpringCloud、Dubbo、算法、技术团队的管理等,还有各种脑图和学习资料,NFC技术、搜索技术、爬虫技术、推荐技术、音视频互动直播等,只要有时间我就会整理分享,敬请期待,现成的笔记、脑图和学习资料如果大家有需求也可以公众号留言提前获取。由于本人在所有团队中基本都处于攻坚和探路的角色,搞过的东西多,遇到的坑多,解决的问题也很多,欢迎大家加公众号进群一起交流学习。