Jmeter分布式压测部署说明

2020-09-22 14:24:57 浏览数 (1)

Jmeter是基于Java的压力测试工具,在单台windows上使用Jmeter进行性能测试时,对本机的CPU和内存消耗是比较大的,如果并发数大(比如100、300...并发),很容易导致资源不足,吞吐量也无法达到理想的要求。于是我们想通过cmd命令行或者在Linux上使用Jmeter进行性能测试,能够大大缩减所需要的系统资源。客户端机器(window系统或者Linux服务器)作为一个控制器Master,控制多台slave机器的操作。

下面介绍一下如何部署配置来实现Jmeter分布式压测:

一、下载Jmeter文件

Linux安装Jmeter,官网下载最新的二进制安装.tgz格式的包

二、上传文件,解压

SSH连接远程Linux服务器,上传文件后,解压,tar命令解压 tar -zxvf apache-Jmeter-5.3.tgz

三、设置环境变量

  • 添加环境变量,修改系统变量:vi ~/.bash_profile,

export JMETER_HOME=/apps/var/jakarta/apache-Jmeter-5.3 export CLASSPATH=JMETER_HOME/lib/ext/ApacheJmeter_core.jar:JMETER_HOME/lib/jorphan.jar:JMETER_HOME/lib/logkit-2.0.jar:CLASSPATHexport PATH=JMETER_HOME/bin:PATH

  • source~/.bash_profile,让变量生效
  • 设置完成后,执行Jmeter-v,如下图,安装完成

四、配置Jmeter相关文件(需要修改Master和slave机的配置)

4.1 Master控制机修改(以Windows为例)

4.1.1 Jmeter.properties修改

1>查看Linux执行机的ip地址,然后设置remote_hosts=执行机1:端口号,执行机2:端口号

2>修改server_port=1099 执行启动远程连接的端口号 ,remote_hosts配置成一致的端口号

3>server.rmi.ssl.disable=false改为 server.rmi.ssl.disable=true

4>server.rmi.localport=4000执行机Jmeter_server启动显示的端口启动的端口号

5>查找到mode=Standard 项,将其前边的注释去掉(解决Jmeter进行分布式测试,远程机器来运行脚本,在察看结果树中的响应数据项为空白)

4.1.2 Jmeter-server.sh修改

RMI_HOST_DEF=-Djava.rmi.server.hostname=10.8.18.168地址改成本机的ip地址,执行和控制机都需要改

4.1.3 Jmeter.bat

新增set rmi_host=-Djava.rmi.server.hostname=本机ip

修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% �RAW%%rmi_host%

4.2、slave机配置修改(以Linux为例)

4.2.1 Jmeter.properties修改

1>修改server_port=1099 表示控制机要远程连接通信的端口号,即Master配置文件Jmeter.properties的remote_hosts配置的端口号

2>server.rmi.localport=4000执行机Jmeter_server启动显示的端口启动的端口号

3>server.rmi.ssl.disable=false改为 server.rmi.ssl.disable=true

4.2.2 Jmeter-server.sh修改

RMI_HOST_DEF=-Djava.rmi.server.hostname=10.8.18.168地址改成本机的ip地址,执行和控制机都需要改

备注:如果Linux服务器自身性能优越,可以单台Linux部署多个Jmeter进行测试,具体操作如下:

a、复制Jmeter安装包,

b、修改Jmeter.properties文件的端口号 server_port=1099和server.rmi.localport=4000,更改为未被占用的端口号

c、然后修改Jmeter-server文件的启动端口号,1039即自己指定的端口号,和Jmeter.properties的server_port一致。

RMI_HOST_DEF=-Djava.rmi.server.hostname=10.1.1.14

{DIRNAME}/Jmeter{RMI_HOST_DEF} -Dserver_port={SERVER_PORT:-1039} -s -j Jmeter-server.log"

d、完成后./Jmeter-server 启动服务

e、操作Master发起指令,进行测试

f、测试完成后,Master收集测试数据,并生成测试报告

五、其他说明:

  1、参数文件:如果使用csv进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。

  2、每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。

0 人点赞