搭建JMeter分布式测试环境

本文详述了如何搭建JMeter的分布式测试环境,包括准备测试环境、设置主控和工作节点、执行测试和问题解决。在分布式测试中,主控节点通过RMI与工作节点通信,确保所有节点使用相同版本的JMeter和Java。测试时,主控节点非GUI模式启动,分发测试任务给工作节点执行。

分布式测试概述

现在我们来了解如何使用多台机器来执行压力测试,也就是所谓的分布式测试。当我们模拟大量的并发虚拟用户时,比如我们要起10万、100万甚至更多的并发用户时,一台负载机器可能就满足不了我们需要的用户量。此时,就需要使用多台主机搭建一套多节点的分布式性能测试环境,使得我们可以执行大规模并发测试。这是执行分布式性能测试的基本原因。当然可能还有其他一些场景,比如我们可以建立一套测试云平台,也需要搭建分布式测试环境,来满足多租户需求。

在搭建JMeter分布式测试环境和利用该环境执行性能或压力测试时,首次需要执行的操作包括:

  1. 准备测试环境,主要是准备用于运行JMeter进程的机器,可以是Windows机器,也可以是Unix类机器包括Linux操作系统的机器。包括安装部署JMeter及依赖的Java环境。第一次准备之后,后面的测试就可以复用这些环境了
  2. 设置分布式环境没台机器上的JMeter节点的配置
  3. 准备要运行的测试脚本。可在JMeter的GUI界面上,先编好测试计划,然后下载到分布式环境中的主控制节点上。此处要主次使用的JMeter的版本要匹配,否则可能产生莫名错误
  4. 启动分布式测试
  5. 查看和分析测试结果
  6. 可能需要进行一些问题处理或服务器调优。如果压力不够,可能还需要增加机器,此时可以参考步骤1中的操作了

准备测试环境

和其他分布式系统类似,使用JMeter搭建分布式测试系统,结构也基本是一主多从的架构,包括一台主控制节点,多个工作节点。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TeEBtme2-1631887093763)(./imgs/distributed-names.svg)]

在开始执行分布式测试之前,首先要准备负载机器。作为实践案例,我们使用三台Linux机器构建一个分布式测试环境,构建一主二从的结构。在执行测试时,由JMeter 主控制器节点(主节点)在多个工作节点(从节点)上启动测试。使用ifconfig命令查看机器的ip地址,记录IP地址备用。本例使用的三台机器ip地址分别为
192.168.1.180、192.168.1.181、192.168.1.182,其中将192.168.1.180作为主节点。

首先对三台服务器执行下述检查:

  • 系统上的防火墙已关闭或打开了正确的端口。在实验环境下,可以关闭防火墙;在正式的测试环境下,建议不要关闭防火墙,打开相关的端口即可
  • 所有负载机器都在同一个子网上,确保可以互通
  • 确保三台负载机可以访问被测服务器
  • 确保在所有系统上使用相同版本的 JMeter 和 Java。混合版本将无法正常工作
  • 已经为 RMI 设置了 SSL或禁用SSL。参考远程测试

设置分布式环境

设置主控节点

完成上述测试环境准备和检查工作后,需要在主节点上进行如下设置。主控节点有时成为client节点,因为相对工作节点来说,它就是一个client,而工作节点是server节点。

在作为控制台的控制器节点(192.168.1.180)上,在jmeter/bin目录打开jmeter.properties进行编辑。
首先找到remote_hosts,设置为remote_hosts=192.168.1.181,192.168.1.182,其次,设置client.rmi.localport的值,表示控制节点将使用这个指定的端口与工作节点通信。其他设置使用默认值。

remote_hosts=192.168.1.181,192.168.1.182
client.rmi.localport=5000
server.rmi.ssl.disable=true #设为true表示rmi不使用ssl进行通信

JMeter分布式环境中,主控节点和工作节

JMeter是一个开源的压力测试工具,可以用于Web应用、SOA服务以及其他HTTP协议的应用程序的性能测试。当需要对系统进行大规模并发压力测试时,我们通常会考虑构建分布式JMeter环境。 ### JMeter分布式压测环境搭建步骤: #### 第一步:准备环境 1. **服务器配置**:首先,你需要一组服务器,每台服务器都需要安装Apache JMeter,并且它们之间应该有稳定的网络连接。 2. **JMeter版本一致性**:确保所有JMeter版本一致,避免因版本差异导致的兼容性问题。 #### 第二步:部署JMeter 1. **服务器上安装JMeter**:通过SSH或其他远程访问工具将JMeter安装包上传到服务器上,然后解压并配置JMeter环境变量。可以参考官方文档或教程进行详细操作。 2. **配置JMeter**:在每个JMeter实例中配置监听地址和端口。例如,在命令行中运行 `jmeter -n -t test计划.jmx -l results.jtl` 来启动测试,这里 `-n` 指示无GUI模式运行,`-t` 表示测试脚本的位置,`-l` 表示结果保存文件位置。 #### 第三步:创建并分发测试计划 1. **设计测试计划**:使用JMeter的图形界面或脚本语言编写测试计划,包括URL、请求头、参数、断言等。确保测试计划能覆盖所需的所有功能和场景。 2. **导出测试计划**:将测试计划导出为.jmx格式文件,以便于跨节点执行。 3. **分发测试计划**:将测试计划文件复制到所有参与测试的服务器上。 #### 第四步:协调与控制 1. **负载均衡**:根据实际需求分配任务给各个服务器,可能需要使用额外的工具如LoadRunner或Zabbix等来监控和控制流量分配。 2. **日志分析**:为了更好地理解系统响应以及发现潜在瓶颈,设置详细的日志记录,并定期查看日志信息。 #### 第五步:执行分布式测试 1. **同步执行**:通过脚本或者其他自动化手段触发所有服务器同时开始执行测试计划。 2. **监视与调整**:使用JMeter自带的日志功能或外部监控工具监视测试过程,必要时调整服务器资源分配或测试策略。 #### 第六步:分析结果 1. **聚合报告**:通过JMeter的聚合报告功能合并各服务器的测试结果,生成全面的性能测试报告。 2. **优化调整**:基于测试结果分析系统性能瓶颈,针对性地优化代码或架构设计。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值