MeterSphere基于JMeter分布式性能压测平台

MeterSphere基本介绍和实践



前言

例如:近几年,随着互联网+、在线电商等在线化业务的发展,性能测试也逐渐成为企业高频测试的类型之一。随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习压力测试,本文就介绍了分布式性能压测的基础内容。


一、MeterSphere是什么?

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

二、MeterSphere

1.功能

测试跟踪: 远超 TestLink 的使用体验,覆盖从编写用例到生成测试报告的完整流程;
接口测试: 集 Postman 的易用与 JMeter 的灵活于一体,接口管理、接口 Mock、多协议支持、场景自动化,你想要的全都有;
性能测试: 兼容 JMeter,支持 Kubernetes 和云环境,轻松支持高并发、分布式的性能测试;
团队协作: 用户管理、租户管理、权限管理、资源管理,无论团队规模如何,总有适合的落地方式。

2.优势

开源:基于开源、兼容开源;按月发布新版本、日均下载安装超过100次、被大量客户验证;
一站式:一个产品全面涵盖测试跟踪、接口测试、性能测试等功能并形成联动:其中用例管理是底座需求、接口自动化测试是高频需求、性能测试是专家服务为主工具为辅;一个产品全满足从测试计划、测试执行到测试报告分析的全生命周期需求;
持续测试:能将测试融入持续交付和 DevOps 体系;无缝对接 Bug 管理工具和持续集成工具等;支持团队协作和资产沉淀。

3.先睹为快

在这里插入图片描述

  • 在线体验
  • 环境地址:MeterSphere
  • 用户名:demo
  • 密码:P@ssw0rd123…

4.功能架构和特性

  • 全生命周期支持:覆盖用例管理、测试计划到测试执行、测试报告分析的不同阶段,提供从手动功能测试生成接口测试、从接口测试生成性能测试的一站式功能支持。比方说,MeterSphere支持测试用例与自动化测试场景的关联,并且能够通过对自动化测试场景的测试结果跟踪来反馈相关测试用例的执行结果;
  • 自动化&扩展性:支持接口和性能的自动化测试,可以充分利用云的弹性实现超大规模的性能测试。在自动化测试方面,MeterSphere成功地降低了自动化测试工具的使用门槛,尽可能地隐藏掉相关的工具使用细节。MeterSphere可以帮助用户完整地管理性能测试的发压端环境管理工作,集成基于传统主机、Kubernetes集群或者云环境的发压端,帮助客户解决分布式压力发生调度等细节问题。此外,对于各种自动化测试工具的测试结果分析和可视化也同样大幅度降低了自动化工具采纳的门槛;
  • 持续测试:能够与持续集成工具无缝集成,支撑企业实现测试左移。持续测试强调在测试阶段能够很好地融合到DevOps流水线之中,所以和DevOps流水线其他阶段的整合也是MeterSphere的重要特质。目前,MeterSphere平台已经支持与持续构建工具Jenkins、常见需求及Bug管理工具JIRA的对接;
  • 团队协作:可支持不同规模的测试团队,从小到几个人的测试团队,到数百人的测试中心均可基于MeterSphere实现团队协作。MeterSphere支持常见用户源的对接,提供“组织-工作空间-项目”三级管理体制,支持完善的基于角色的权限管理机制等。这些机制保证平台有能力将测试能力和手段有效应用于公司内的测试左移和测试右移场景。
  • 以上特性让MeterSphere不同于其他测试领域的工具和平台,相信这也是它能够在开源社区受到广泛欢迎的关键所在。社区内不少JMeter的客户都在积极尝试使用MeterSphere,以升级其对于性能及压力测试的管理。
    在这里插入图片描述

5.基于JMeter分布式性能压测优化点

MeterSphere开源持续测试平台从技术和管理两个维度对JMeter的性能压测进行了优化,同时保证了对JMeter使用上的兼容性。与此同时,MeterSphere还支持调用Kubernetes环境和云环境进行压测,轻松支持高并发、大规模的性能测试。MeterSphere性能测试概览仪表盘如下图所示:
在这里插入图片描述
MeterSphere分布式性能测试方案与涉及的组件如下:

  • Node Controller:为性能测试提供独立节点类型的测试资源池, 接收来自系统的性能测试任务, 动态地启动JMeter容器完成性能测试;
  • MySQL:MeterSphere项目的主要数据均存储在MySQL数据库;
  • Kafka:接收JMeter产生的性能测试结果数据;
  • Data Streaming:从Kafka中获取性能测试结果数据,处理后存入MySQL数据库;
  • Docker Engine:为Node Controller提供JMeter容器运行环境。

MeterSphere分布式性能压测方案的方案架构图如下图所示:
在这里插入图片描述

  1. 用户在MeterSphere界面设置性能压测参数(并发、时间、梯度、压测资源池、文件切分等);
  2. MeterSphere根据用户设置的压测配置参数,自动化选择资源池,分发压测脚本和文件,自动启动JMeter压测节点(通过Docker启动)进行压测;
  3. 压测节点根据分发的脚本与参数,实时或者本地计算后将压测数据推送至Kafka集群;
  4. Data Streaming集群实时消费Kafka集群中压测数据,然后再经过计算动态写入MySQL数据库中;
  5. 如配置了相关的Prometheus监控,MeterSphere在压测的同时会自动收集被压测端系统的性能监控数据;
  6. 压测结束后,所有的数据在数据库中保存,方便后续进行分析、分享和查询。

6.MeterSphere分布式性能测试实践

  1. 部署MeterSphere平台(一键部署方法可以参考官网

  2. 部署分压测节点(Node-Controller)
    部署分压测节点,可以先安装整个MeterSphere服务,然后对配置文件进行修改,具体操作如下:
    ①安装MeterSphere服务
    ②停止服务:msctl down
    ③修改安装模式:vim /opt/metersphere/.env
    在这里插入图片描述
    ④ 启动服务:msctl reload

  3. 界面添加分压测节点
    登录到MeterSphere平台,依次选择“系统设置”→“测试资源池”,编辑NODE-LOACL资源池,添加分压测节点并保存。在这里插入图片描述

  4. 上传本地JMX压测脚本和依赖文件
    ①依次选择“性能测试”→“测试”→“创建性能测试”。在这里插入图片描述
    ② 选择“加载JMX文件”选项,建议JMX压测脚本中不要采用前后置脚本,以免影响性能测试的准确性。在这里插入图片描述
    如果压测的JMX脚本中包含依赖的文件、第三方插件或者自定义JAR包,需要修改JMX脚本中的地址为绝对路径。
    常见需要修改的有两个地方,具体如下:

  5. 测试计划中的JAR包目录在这里插入图片描述

  6. CSV文件设置中的CSV地址在这里插入图片描述
    ③ 如果压测的JMX脚本中包含依赖的CSV文件,或者第三方插件或者JAR,需要同时选择“加载文件”选项进行上传。在这里插入图片描述

  7. 设置压力测试参数
    进入“压力配置”页面,此时可以设置相应的压测配置参数了(注意:此参数会覆盖JMeter线程组中的配置)。在这里插入图片描述
    分配策略默认为均分,如果要不同压测节点分摊不同压力的话,可以选择“自定义”分配方式。此分配方式可以自定义设置不同的压力分配权重。
    在这里插入图片描述

  8. CSV切分与配置监控
    如果压测的JMX脚本中包含依赖的CSV文件需要不同的压测节点以读取不同的数据,可以开启“高级配置”页面下的“CSVDataSet”选项,进行CSV自动化切分,参见下图:在这里插入图片描述
    关于监控的配置和设计细节可以参考MeterSphere官方教程

  9. 报告的查看、对比与分析
    所有的配置完成后,选择“保存并执行”选项,MeterSphere会自动刷新与显示压测数据报告。在这里插入图片描述
    在压测的同时,可以通过后台查看,添加的分压测节点已经自动化运行JMeter容器进行压力测试。在这里插入图片描述
    MeterSphere生成的测试报告支持展示测试详情,在“测试详情”页面中可以选择不同的显示项和时间范围。一旦选择了时间范围,报告数值会按照选择时间范围进行重新计算。在这里插入图片描述
    在“监控详情”页面中,可以查看压测时被压测端的监控数据。在这里插入图片描述
    针对某一性能测试,可以在“报告对比”页面选择不同的报告,并进行对比分析。在这里插入图片描述
    在这里插入图片描述

总结

MeterSphere开源持续测试平台的分布式性能压测相对于JMeter原生的分布式性能压测更适合测试团队和测试人员进行使用。
首先,MeterSphere的部署方案更简单,MeterSphere压测执行节点支持按需创建和安装,组件可以动态扩容,轻松支持大规模性能测试;
其次,MeterSphere更加易于管理,MeterSphere开源持续测试平台采用B/S架构设计,性能测脚本、性能测试任务和性能测试报告可以以项目、团队的维度进行有效隔离和分享协作。
以上就是今天要讲的内容,本文仅仅简单介绍了MeterSphere的使用。
参考
MeterSphere - 开源持续测试平台 - 官网

  • 1
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要进行JMeter分布式部署压测,可以按照以下步骤进行操作: 1. 首先,确保已经下载并安装了JMeter。你可以从官方网站上找到详细的安装步骤。 2. 进入JMeter的安装目录,可以使用命令`cd /usr/local/apache-jmeter-5.3/bin`。 3. 在JMeter的安装目录下,找到`jmeter.properties`文件并进行配置。该文件包含了JMeter的各种配置项,包括分布式压测的相关配置。你可以根据需要修改这些配置项,以满足你的压测需求。 4. 配置调度机。在JMeter分布式压测中,调度机负责控制整个压测过程。你需要在调度机上启动JMeter,并配置调度机的信息,如IP地址、端口等。具体的配置步骤可以参考官方文档。 5. 配置执行机。执行机是实际执行压测任务的机器。你需要在执行机上启动JMeter,并设置执行机的信息,如IP地址、端口等。执行机会接收调度机发送的压测任务,并按照任务进行压测。同样,具体的配置步骤可以参考官方文档。 6. 配置Jenkins、Grafana和Prometheus等工具。这些工具可以帮助你更方便地进行压测任务的管理和监控。你可以将JMeter与这些工具集成,以便更好地监视和分析压测结果。 通过以上步骤,你就可以完成JMeter分布式部署压测的配置。在进行压测之前,确保所有的机器都已正确配置,并且可以相互通信。这样,你就可以开始进行分布式压测了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【性能测试】JMeter分布式压测部署](https://blog.csdn.net/weixin_46361114/article/details/121777501)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Jmeter 分布式压测部署](https://blog.csdn.net/weixin_47498496/article/details/112542828)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [linux下Jmeter分布式压测](https://download.csdn.net/download/weixin_38695159/14053948)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失眠的书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值