jmeter分布式压测

author author     2022-12-06     638

关键词:

 一、原因

  1、当你想并发很大的时候(比如3000)那么一台jmeter可能就不能胜任了,这时候就需要多台jmeter同时加压

  2、当jmeter压力机安装在没有gui的linux上,又不想通过非gui的方式完成性能测试

二、原理

  原理很简单就是找一台装有jmeter的机器当控制端,由这个控制端统一控制其它装有jmeter的机器作为代理,产生压力。如下图

Jmeter分布式压测_javascript

三、安装jdk和jmeter

1、分别下载windows版本和linux版本的jdk,jdk版本1.8。windows点击安装包一路下一步即可。linux将tar.gz包上传linux解压缩并配置环境变量即可,参见

2、从 ​​http://jmeter.apache.org/download_jmeter.cgi​​ 下载最新jmeter安装包。windows系统的是zip压缩i文件,linux系统的是tar.gz压缩包。也是简单的解压缩即可。 

四、配置controller

本文档使用1.10机器作为控制端,1.11作为代理,ip地址需要根据你的实际情况加以修改,如下图:

 

Jmeter分布式压测_javascript_02

1、修改 jmeter.properties 配置文件

  打开 C:\\apache-jmeter-5.1.1\\bin\\jmeter.properties 配置文件(这是我的jmter解压位置,根据你的位置打开相应文件)

  a)找到 server.rmi.ssl.disable 配置,将行首的注释删掉并改为true 

server.rmi.ssl.disable=true

  如果没有配置运行脚本的时候会报如下图错误

Jmeter分布式压测_linux_03

   b)配置代理地址,找到 remote_hosts 并配置如下

    其中1.11就是一台代理ip地址1099是在代理上启动的jmeter-server的监听端口。每台代理以“,”号分割

remote_hosts=127.0.0.1,192.168.1.11:1099,192.168.1.12:1099,192.168.1.13:1099,192.168.1.10:1099

  c)配置代理连接控制端ip地址

  打开 C:\\apache-jmeter-5.1.1\\bin\\jmeter-server.bat 文件,添加如下内容,添加位置无所谓只要在 set ARGS= 前即可,其中 192.168.1.10就是你的控制端的ip地址

set rmi_host=-Djava.rmi.server.hostname=192.168.1.10

  修改 set ARGS= 配置,原来配置信息如下

set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %JMETER_LANGUAGE% %RUN_IN_DOCKER%

  在最后添加  %rmi_host%,添加后如下

set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %JMETER_LANGUAGE% %RUN_IN_DOCKER% %rmi_host%

  以上配置非必须。如果你的控制端只有一块网卡并且没有安装虚拟机等软件就可以不用配置。

  因为在控制端连接代理后会通知代理控制端的ip地址,然后代理会在测试完成后主动连接控制端,以便将测试结果回传给控制端。此时如果有多块网卡就有可能连接失败,错误现象如下。

  另外一个解决方式是将虚拟网卡或第二块网卡禁用,这样就不会出现连接不上控制端的问题但如果不小心启用的网卡还会出现此问题。

Jmeter分布式压测_linux_04

 

Jmeter分布式压测_javascript_05

 

Jmeter分布式压测_javascript_06

五、配置agent

1、修改 jmeter.properties 配置文件

根据你安装的目录修改
vi /home/apache-jmeter-5.1.1/bin/jmeter.properties

1、将原来的
#server_port=1099

前边的注释去掉改为
server_port=1099

2、将原来的
#server.rmi.localport=4000

前边的注释去掉改为
server.rmi.localport=1099

  这里的端口号如果不改也可以,但jmter每次启动都会换一个端口,这样每次都要修改controller的remote_hosts配置信息比较麻烦。不配置如下图端口每次启动都改变

Jmeter分布式压测_apache_07

  找到 server.rmi.ssl.disable 配置,将行首的注释删掉并改为true

server.rmi.ssl.disable=true

  如果没有配置运行脚本的时候会报如下图错误

Jmeter分布式压测_apache_08

2、修改 jmeter-server 启动脚本

vi jmeter-server


#RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx

改为
RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.1.11

  改后如下图,同样如果linux只有一块网卡也无需设置。

Jmeter分布式压测_linux_09

  另外一个方法是启动时候指定ip地址如下

./jmeter-server   -D java.rmi.server.hostname=192.168.1.11

 2、启动 jmeter-server

linux上执行 ./jmeter-server 命令windows上双击 jmeter-server.bat 即可,启动成功后如下

[root@bj-zd2f-vm-ceshi-test-loadrunner1 bin]# ./jmeter-server 
Using local port: 1099
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[192.168.1.11:1099](local),objID:[258e0404:16db9c33fc1:-7fff, -5488498502529841046]]]

使用上面命令启动 jmeter-server虽然可以使用但只要关闭xshell后就不能用了,可以使用如下命令运行在后台

nohup ./jmeter-server &

如果重新启动服务器那还要每台服务器重新运行 jmeter-server,可以直接将启动命令放到profile文件中这样jmeter-server会跟随系统启动而运行

打开profile文件
vi /etc/profile

在profile最后添加运行jmeter-server命令
cd /home/apache-jmeter-5.1.1/bin
nohup /home/apache-jmeter-5.1.1/bin/jmeter-server &

保存profile在命令行执行如下命令,使profile配置生效
source /etc/profile

六、分布式压测

 1、在控器器中打开脚本

Jmeter分布式压测_linux_10

 2、点击 run->Remote Start 下的agent压测

 

Jmeter分布式压测_linux_11

压测完成后就可以看到报告了。

 

Jmeter分布式压测_javascript_12

七、分布式压测中的参数文件问题

1、当脚本引用csv参数文件后不要使用绝对路径

Jmeter分布式压测_linux_13

2、将此csv文件上传到所有agent

csv文件需要上传到启动 jmeter-server时候的目录下,由于在profile文件中添加了 cd /home/apache-jmeter-5.1.1/bin 命令,所以将csv文件传到此目录 /home/apache-jmeter-5.1.1/bin 即可

 

 

 

 

 

 



jmeter分布式压测----windows

...用多台负载机同时进行对服务端压测,这个时候,jmeter的分布式的方法就会被广泛使用。  ************************************************************************************************************ 查看详情

jmeter分布式压测

...,只能运行1000个并发数,这种情况下,我们就需要来做分布式压测,将测试的压力分给其他的电脑,这时候,我们称控制jmeter运行的机器为主控机(本机),而其他的机器成为压力机。如何设置压力机?1.我们首先需要在主控机... 查看详情

jmeter分布式压测

添加压力机1、 在主控机jmeter的配置文件jmeter.properties里面找到,remote_hosts=xx,写进去压力机的ip即可。2、 其他的压力机启动jmeter-server3、 运行的时候要选择远程全部启动4、 命令行里面运行jmeter–n–te:\\test.jmx–l... 查看详情

jmeter分布式压测

 一、原因  1、当你想并发很大的时候(比如3000)那么一台jmeter可能就不能胜任了,这时候就需要多台jmeter同时加压  2、当jmeter压力机安装在没有gui的linux上,又不想通过非gui的方式完成性能测试二、原理  原理很简... 查看详情

jmeter分布式压测

一,在其他windows上做分布式1,在其他windows上安装jmeter2,在主控机上的jmeter配置文件jmeter.properties添加  remote_host=ip:端口,ip:端口 3,在其他电脑上运行 jmete-server,如果有参数化文件,也要在其他电脑jmeter的路径... 查看详情

jmeter分布式压测配置linux

参考技术A本文只讲jmeter分布式压测怎么在Linux环境下配置:使用分布式压测,是因为单个压测机并发到不到系统要求,所以多个压测机同时去压。一般是由一个主机(master)和几台压力机(slave)组成。主机主要是起到启动和收... 查看详情

使用jmeter做分布式压测;

...配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。一、Jmeter分布式执行原理:  1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。  2、执行时,master会把脚本发... 查看详情

jmeter分布式压测原理及步骤

参考技术A1、总控机器的节点master,其他产生压力的机器叫“肉鸡”server2、master会把压测脚本发送到server上面3、执行的时候,server上只需要把jmeter-server打开就可以了,不用启动jmeter4、结束后,server会把压测数据回传给master,然... 查看详情

jmeter分布式压测与no-gui模式压测

参考技术A一、分布式压测1.分布式压测总体结构      选择一台机器作为调度机(master),其他的机器作为测试执行的执行机(slave),由Contorller通过命令行将测试脚本发给slave,然后slave执行测试,同时将测试结果... 查看详情

jmeter分布式压测

...   配置主机别名 vim/etc/hosts   2、分布式主机也需要配置主机别名  3、每个主机上必需有JAVA环境和jmeter环境4、如果脚本有参数文件,需传到相同的目录下,如果有lib包,也要传到相同的目录下5、启动jme... 查看详情

jmeter分布式压测对masterslave防火墙配置

首先要了解jmeter分布式压测的基础概念:master为统计结果的服务器,slave为各台压力机,如下图所示一、结论针对master1、修改jmeter.properties的client.rmi.localport=61099(值可以是自定义的,默认为0时会随机分配端口)2、防火墙打开端... 查看详情

jmeter分布式压测

##备注:jmeter4.0版本只适合jdk8以上的版本Linux负载:一、安装JDK:1、将jdk8上传到linux,并解压  1.1)、上传命令:rz  1.2)、解压命令:tar-zvxfjdk-8u131-linux-i586.tar.gz  1.3)、对jdk的文件名重命名命令:mvjdk1.8.0_131jdk82、设置jdk的... 查看详情

接口测试学习——jmeter分布式压测

分布式压测我理解的就是有一台主控机和几台压力机。主控机通过远程控制压力机启动测试,来实现系统不同级别访问量情况下的性能验证。操作步骤如下:1、启动jmeter自动化工具,界面显示如下图所示。2、在“测试计划”单... 查看详情

分布式压测系列之jmeter4.0第一季

1)Jmeter4.0介绍jmeter是个纯java编写的开源压测工具,apache旗下的开源软件,一开始是设计为web测试的软件,由于发展迅猛,现在可以压测许多协议比如:http、https、soap、ftp、database数据库、LDAP 轻量目录访问协议、TCP、SOMP(简... 查看详情

jmeter压测实践

...文件所在的位置及文件名-r: 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r&n 查看详情

jmeter分布式压测

一、前提:3台服务器,IP分别为:A、B、C操作系统:不限(windowslinux均可)二、操作步骤:1.分别在3台服务器上安装java运行环境,jdk1.6或更高2.分别配置好java的环境变量windows下:新建变量:变量名:ClASSPATH     &n... 查看详情

基于docker的jmeter分布式压测(代码片段)

...程序产生更大的负载。JMeter使用JavaRMI[远程方法调用]来与分布式网络中的对象进行交互。JMeter主站和从站的通信如下图所示:我们需要为每个Slave/Server打开2个端口。Server_port 查看详情

jmeter压测和抓包

一、Jmeter分布式压测步骤(添加压力机):1.在其他的压力机启动jmeter-server.bat,几台机器都在一个局域网里,能ping通2.在主控机jmeter的配置文件jmeter.properties找到remote_hosts=xx,添加压力机的ip,默认端口号1099,重启jmeter3.运行主... 查看详情