Jmeter 分布式测试环境搭建Windows下

Jmeter 分布式测试环境搭建 Windows10

Jmeter分布式执行原理:

1、Jmeter分布式测试时,选择其中一台作为调度机(master/Controller),其它机器做为执行机(slave/Agent)。
2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,应该是通过non-gui命令行模式执行的。
3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。

注意:
(1)每一台jmeter远程服务器(slave机器)都执行相同的测试计划,jmeter不会在执行期间做负载均衡,每一台服务器都会完整地运行测试计划,所以根据木桶原理,性能最差的slave可能会影响测试;
(2)采用JMeter远程模式并不会比独立运行相同数目的非GUI 测试更耗费资源。但是,如果使用大量的JMeter 远程服务器,可能会导致客户端过载,或者网络连接发生拥塞;
(3)默认情况下,master机器是不执行参与生成并发数据的;
(4)调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以master自身会有消耗,所以建议单独用一台机器作为master。

这些简介都是从其他童鞋那里抄的,之前在网上找文档的时候,发现都是windows作为master,本文主要share Centos 的机器搭建的过程,下面是具体的步骤:

  1. 配置安装Java & Jmeter
  2. 配置 slave
  3. 配置 master
  4. non-gui 下,run Jmeter 脚本

  1. 配置安装Java & Jmeter

安装Java,自己找文档去吧,我用的是1.8

 
1.png

安装Jmeter
Jmeter帮助文档:http://jmeter.apache.org/usermanual/index.html
Jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi

 
 
 
 
 
 一、重点配置slave(就是执行机)(注意:jdk和jmeter最好是同一个版本,在同一局域网,可以用ping互相拼一下IP,可以拼的通就行)
(注意:在同一个局域网ping不通过的话,需要关闭防火墙)
  1. 在配置安装完 Java 和 Jmeter 后,我们要配置两个地方,slave 的IP和端口。

分别在s1、s2、s3(slave机器)上,进入%JMETER HOME%/bin/目录,
打开“jmeter.properties”,配置执行机远程启动端口(默认为 1099),
如改为:
server_port=1099
server.rmi.localport=1099  #修改端口去掉前面的#

打开“jmeter-server”,配置执行机远程启动IP

3、到这里,其实就是普通的压力测试了。分布式压测怎么做呢?有几点要求:一是有几台电脑与控制机在同一局域网内。也就是可以互相访问。二是压力机也要安装jmeter。
在主控机的jmeter的bin目录找到配置文件jmeter.properties。找到里面的remote_hosts部分,修改内容为:remote_hosts=xx,xx代表的是压力机的ip。如果是多个压力机,之间使用【,】分隔。

 

 

二、启动slave server:(启动调度机,号称负载机)

 如果启动不了jmeter-server.bat需要修改下面配置文件

jmeter配置文件jmeter.properties
修改:server.rmi.ssl.disable=false
改成:server.rmi.ssl.disable=true

 打不开是这样子:

 

 

 

 

正常打开jmeter-server.bat是这样子:

 

 

 

 

 

注意:需要把网关不用的全部禁用,因为上面jmeter-server.bat文件没有指定IP,打开jmeter-server.bat会自动获取IP,不一定是你已经连接网络的IP
 
 
 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

之前没有配置1099端口和IP,造成如下情况:没有配置端口号,端口是随机的,每次打开都不一样。

 
image.png

 

后果是master 连不上slave,没有starting ...连接成功的log。


配置master
在配置安装完 Java 和 Jmeter 后,进入%JMETER HOME%/bin/目录,
编辑 jmeter.properties 这个文件,修改添加:
remote_hosts=172.16.129.155:1099,172.16.129.43:1099
(slave的IP)
server_port=1099

4点击远程启动选择负载机IP:

 

如图:已经连接成功了:

 

 

 

常见问题解析:

1、在调度机中远程启动时,提示“Exception creating connection to : xx.xx.xx.xx,nested exception is:java.io.FileNotFoundException:rmi_keystore.jks(系统找不到指定的文件。)”

解决方法:取消调度机jmeter.properties文件中的server.rmi.ssl.disable=false的中注释并将false改为ture,重新启动即可。

2、提示“Error initialising remote server:xx.xx.xx.xx   connection refused to host:xx.xx.xx.xx;nested exception is java.net Connection refused:connect”

解决方法:进入执行机执行命令./jmeter-server 启动服务即可。

3、提示“no such object in table”

解决方法:修改执行机中jmeter.properties的server_port=1099即可。

 

 

 

成功远程上。

 还有一个问题:必须同时启动执行机和调度机的jmeter-server.bat,才可以同时全部启动调度机和执行机同时分布式压测。

 

 

 

 

 

 

 

前提:执行机和调度机都需要配置。

使用JMeter,来完成一台机器控制,多台远程机器,即实现1主多从来进行压测脚本。

过程:

1、主从机器上均安装相同版本的JMeter 和JDK。

2、配置主从机器,详见步骤:

2.1、将主机器的JMeter/bin中的jmeter.properties文件,修改如下2处信息,

 

 

切记要修改:server.rmi.ssl.disable=true,否则会报错误

 

2.2、从机器也做类似的配置

 

 3、启动主机器和从机器的( jmeter-server.bat)

启动主机器前,一定要先启动主机和从机的: jmeter-server,否则会报 如下错

 

4、启动jmeter.sh(mac),jmeter.bat(window),执行脚本,运行—远程启动

posted on 2021-08-16 17:05  无泪人  阅读(600)  评论(0编辑  收藏  举报

导航