Jmeter之分布式执行脚本

分布式使用背景

  1. 一台机器一个jmeter最多能处理http协议为2000以内,如果服务器的性能越好,jmeter能产生的并发数就越少
  2. 实际项目中,有些接口并发用户数可能会超过2000,即超过1个jmeter能产生的并发用户数,这时,就需要堆机器来产生更多的并发用户数

分布式概念

分布式—一个管理者,多个执行者。管理者和执行者,可以在不同的机器上
在这里插入图片描述
管理者:发送指令给 执行者,告诉执行者执行的脚本和执行时间,执行者就按照这个指令,像被测服务器发送请求,请求的时间。执行者执行完成后将结果返回给管理者
执行者本地可以没有脚本
管理者工作:只需要管理、维护、修改变更即可。如果管理者将线程数变了,每个执行者都会按照新的线程数产生并发用户数
助攻机:只是提供网络、内存、cpu等资源,产生并发用户数

分布式环境搭建:

前提:

主机和助攻机的jmeter要保持一致:
  1. jmeter版本一致
  2. jdk版本一致,大版本号一致,小版本号可以不同。版本不同,性能可能会存在差异
  3. jmeter脚本中csv文件要保持一致(特别注意csv路径)
  4. 相对路径的起始点为jmeter的bin文件夹中
  5. jmeter的插件要一致
  6. 同一局域网、防火墙可以放开端口
    注意:
    ① 这个前提条件中,没有对 执行者\助攻机器的 操作系统做要求。也就是说,操作系统可以是 windows、linux、mac。
    但是:建议执行者\助攻机器的 操作系统 统一。
    ② 性能测试 要用 有线网络连接。 分布式中所有的(管理者、执行者)机器,都必须用有线连接网络。做分布式,执行者(助攻机器) 绝对不能 用无线连接

助攻机器的配置----使用linux系统做助攻机器

导入与主控机器相同版本的jmeter
修改配置文件:jmeter.properties
必须修改内容:
去掉认证:server.rmi.ssl.disable=true 表示不适用加密方式传输数据
非必须修改内容:
修改server_port 端口 默认为1099
修改server.rmi.port端口 修改为与上面的端口号相同

助攻机的启动命令:

windows:jmeter-server.bat -Djava.rmi.server.hostname=机器ip
linux :./jmeter-server -Djava.rmi.server.hostname=机器ip机器ip为助攻机的IP
远程验证:telnet IP 端口
curl IP:端口

主控机器的配置

修改配置文件:jmeter.properties
remote_hosts = 助攻机器ip:端口 多个助攻机器信息用逗号隔开
去掉认证:server.rmi.ssl.disable = true
确认模式:mode = Standard 表示主控机核助攻机之间数据交换方式使用标准模式,可以在jmeter图形界面中看到助攻机的数据传输

注意:修改配置文件后保存,且重启jmeter后才可生效

主控机的启动方式:

  1. jmeter的图形界面启动
    菜单‘运行’—远程启动—点击某个ip:端口 ,启动远程jmeter-server服务
    助攻机收到statrting表示开始,收到finish表示停止

  2. cli命令启动
    meter -n -t xxx.jmx -l xxxx.jtl -r\-R -e -o xxxx
    -r为jmeter.properties文件中,remote_hosts 配置的所有助攻机器全部执行
    -R 后面要制定助攻机器 ip:port 多个助攻机器信息用英文逗号隔开

异常情况:

Engine is busy - please try later
以上异常信息表示你调用这个助攻服务机器,正处于繁忙之中,暂时不能被多个主控机器调用执行脚本。
怎么知道,助攻机器,可以被调用去执行其他请求呢?
当这个助攻的服务,有收到 finished指令的时候,说明刚刚做的事情,结束了,可以用于干其他的请求了。

  • 22
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
执行JMeter分布式压测脚本,需要按照以下步骤进行操作: 1. 准备压测环境: - 安装JMeter:确保每个压测节点上都已经正确安装了JMeter。 - 配置Java环境:确保每个节点上都已正确配置了Java环境。 2. 创建压测脚本: - 使用JMeter GUI模式(图形界面)创建压测脚本。 - 添加线程组、Sampler、断言等元件,设置相应的参数和逻辑。 - 导出脚本为.jmx文件。 3. 配置分布式压测: - 将创建的.jmx文件复制到所有的压测节点上。 - 在其中一个节点上,打开.jmx文件,选择 "Test Plan" -> "Add" -> "Threads (Users)" -> "Distributed Testing". - 在"Distributed Testing"元件中,点击 "Add" 按钮,输入其他节点的IP地址或主机名。 - 配置其他相关参数,如远程节点的RMI端口号、测试数据文件路径等。 4. 启动压测: - 在每个节点上启动JMeter服务。 - 在主控节点上,点击 "Run" -> "Start" 或使用快捷键Ctrl+R开始执行压测。 5. 查看压测结果: - 压测运行过程中,可以实时监控各个节点的执行状态和性能指标。 - 压测结束后,可以通过JMeter的聚合报告、图形化界面或者生成的结果文件来查看压测结果。 请注意,执行分布式压测需要保证网络连接正常、节点间时间同步以及节点的配置一致性。分布式压测可以提高压测的并发能力和负载能力,但也需要更多的资源和管理成本来维护整个集群。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值