[JM_09]JMeter分布式测试-操作要点整理

背景

由于JMeter本身的瓶颈,当需要模拟数以千计的用户时,使用单台机器模拟所有的并发用户就可能会引起JMeter本身的性能降低、请求错误率增加、以及测试准确度降低,甚至还会引起Java内存溢出的错误。
为了解决此问题,可使用分布式测试的方式,以一台机器作为Master机,其他的一台or多台机器作为Slave机,然后通过Master机调度Slave机来指向并发测试,每台Slave机可分担JMeter自身的压力,以此突破较大并发用户数的限制。

预先假设

Master机:192.168.0.2(Windows)
Slave机:192.168.0.11、192.168.0.12(Linux)
JAVA版本:jdk-8u181-windows-x64(Windows)、jdk-8u181-linux-x64(Linux)
JMeter版本:apache-jmeter-4.0(Windows / Linux)

配置要点

【1】存在Master机、Slave机,可为同一机器,也可为不同的机器
【2】Master机上首先安装有JMeter(依赖JAVA环境,如:JDK 8),Slave机也需要安装与Master机版本一致的JMeter(同样需要依赖Java环境)
【3】Master机和Slave机:当安装Java后,都需要配置环境变量;同样安装JMeter也需要配置对应的环境变量
【4】Master机JMeter目录下的 jmeter.properties 文件,需要新增配置远程主机(Slave机)的IP地址和端口号
【5】Slave机已正常启动 jmeter-server 服务:jmeter-server.bat(Windows),jmeter-server(Linux)
【6】Master机已正常启动 jmeter-server 服务:jmeter-server.bat(Windows),jmeter-server(Linux)
【7】Master机已启动JMeter:jmeter.bat(Windows),jmeter.sh(Linux)

操作事项

  1. 若启用多台Slave机,则需运行所有Slave机器上的 jmeter-server.bat 文件

  2. 在Master机中JMeter的bin目录下,修改 jmeter.propertiesremote_hosts=127.0.0.1 ==> remote_hosts=192.168.0.11:1099,192.168.0.12:1099
    (此处设置的IP表示运行JMeter的Slave机器,多台机器以英文逗号间隔)

[JM_09]JMeter分布式测试-操作要点整理_第1张图片
  1. 当启动Master机器上的 jmeter.bat 之后,通过:Run菜单-->Remote Start-->192.168.0.11:1099或192.168.0.12:1099,即可运行指定的Slave机

  2. 若只让某台机器执行,则可在 jmeter.properties 文件中修改机器的IP地址;若需要两台机器都执行,则可点击:Run菜单-->远程运行全部

[JM_09]JMeter分布式测试-操作要点整理_第2张图片
  1. 若用作代理的机器较少而不能满足测试需要时:
    1)可将作为Master的机器也同时作为Slave机
    2)此时,同样需要修改 jmeter.properties 文件,将Master机的IP地址写入其中
    3)同时需要在Master机中JMeter的bin目录下启动 jmeter-server.bat
    4)然后再启动 jmeter.bat(JMeter),然后点击:Run-->Remote Start菜单,即可查看到Master机也作为远程机器的备选项

  2. 若要监控服务器的资源:
    1)需要将 ServerAgent(如:ServerAgent-2.2.3)文件上传到服务器,并启动其内的startAgent:startAgent.bat(Windows)、startAgent.sh(Linux)
    2)startAgent默认监听4444端口,该文件中的内容如下:

startAgent.bat

@echo off
java -jar %0\..\CMDRunner.jar --tool PerfMonAgent %*

startAgent.sh

#!/bin/sh

java -jar $(dirname $0)/CMDRunner.jar --tool PerfMonAgent "$@"

若需要修改端口号(如:4567端口),则可在 ServerAgent 目录下打开命令行,然后执行命令:

java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 4567 --tcp-port 4567

你可能感兴趣的:([JM_09]JMeter分布式测试-操作要点整理)