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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MeterSphere 是一站式的开源企业级持续测试平台,涵盖测试跟踪、接口测试、性能测试、团队协作等功能,兼容JMeter 等开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量软件的交付。

【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/107827383

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

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

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

image.png

为什么要持续测试?

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

image.png

数字业务的要求
  • 缩短交付时间
  • 快节奏交付
  • 从质量保障到质量协助
传统 QA 的不足之处
  • 人工测试耗时长
  • “部门墙”和“交接”仍然存在
  • Bug 发现和解决成本高

什么是 MeterSphere ?

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

整体定位

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

image.png

测试跟踪

image.png

测试用例管理
  • 树状用例管理结构
  • 在线编辑用例
  • 快速导入用例
测试计划跟踪
  • 基于已有用例发起测试
  • 在线更新用例执行结果
  • 自定义测试报告模板

接口测试

image.png

测试脚本
  • 在线编辑测试内容
  • 支持参数化测试
  • 支持断言、变量提取
  • 通过浏览器插件快速录制
测试报告
  • 自动生成测试报告
  • 多次测试结果对比
  • 查看请求及响应详情
  • 测试报告内容导出

性能测试

image.png

测试脚本
  • 完全兼容 JMeter 脚本
  • 在线调整压力参数
  • 分布式、多平台测试资源池
  • 通过浏览器插件快速录制
测试报告
  • 自动生成测试报告
  • 多次测试结果对比
  • 丰富的报告展示详情
  • 测试报告内容导出

团队协作

image.png

多租户支持
  • 多级租户体系
  • 支持多种租户角色
  • 租户资源隔离
测试资源管理
  • 性能测试资源池
  • 测试报告模板
  • 第三方系统对接

MeterSphere 的优势

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

技术栈

整体架构

image.png

  • 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 容器运行环境

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

image.png

管理模型

image.png

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.3
vim 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

image.png

image.png

image.png

image.png

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

【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/107827383

image

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
人工智能 自然语言处理 前端开发
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
CodeArena 是一个在线平台,用于测试和比较不同大型语言模型(LLM)的编程能力。通过实时显示多个 LLM 的代码生成过程和结果,帮助开发者选择适合的 LLM,并推动 LLM 技术的发展。
46 7
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
|
1月前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
|
1月前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
143 1
|
1月前
|
开发框架 安全 .NET
.NET使用Moq开源模拟库简化单元测试
.NET使用Moq开源模拟库简化单元测试~
|
1月前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
68 0
|
10天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
53 11
|
1月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
65 3
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
80 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
3月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
270 7
Jmeter实现WebSocket协议的接口测试方法
|
3月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
287 3
快速上手|HTTP 接口功能自动化测试