Jmeter分布式部署

2023-03-21 17:34:40 浏览数 (2)

一、Jmeter分布式执行原理:

  1、Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。

  2、执行时,Controller会把脚本发送到每台Agent上,Agent 拿到脚本后开始执行,Agent执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开,它应该是通过命令行模式来执行的。

3、执行后,Agent会把结果回传给Controller,Controller会收集所有Agent的信息并汇总。

二、代理机(Agent)配置:

1、Agent机上需要安装JDK、Jmeter,并且配置好环境变量。

2、打开“运行”,输入"cmd",打开运行面板,输入“ipconfig”,找到IP地址,例如是:192.168.2.28

 3-打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.2.28:1099,1099是端口号,可以随意自定义。

4、打开jmeter-server.bat文件,就设置完成了,等待控制机(Controller)启动。

另外Jmeter执行jmeter_server.bat报错java.io.FileNotFoundException:rmi_keystore.jks(系统找不到指定的文件)

 1、修改jmeter.properties文件下server.rmi.ssl.disable=true (记得去除server.rmi.ssl.disable=true前的#)

这行说明什么呢,就是让我们决定是不是要启动SSL

2、再次重新 执行jmeter_server.bat

三、控制机(Controller)配置:

1、Controller机上需要安装JDK、Jmeter,并且配置好环境变量。

2、打开“运行”,输入"cmd",打开运行面板,输入“ipconfig”,找到IP地址,例如是:192.168.2.211

3-打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.2.28:1099,192.168.2.211:1099,1099是端口号,可以随意自定义。如果有多台代理机,这里需要把所有的代理机的IP地址和端口号都加入进来。

4、打开jmeter-server.bat文件,设置完成了。

另外Jmeter执行jmeter_server.bat报错java.io.FileNotFoundException:rmi_keystore.jks(系统找不到指定的文件)

 1、修改jmeter.properties文件下server.rmi.ssl.disable=true (记得去除server.rmi.ssl.disable=true前的#)

2、再次重新启动jmeter_server.bat

四、开始添加线程组和请求来运行查看结果:

1、打开jmeter.bat文件,添加线程组,编辑线程数,这里设置100个线程数,循环2次,就是一台机器发送100*2=200个请求。

2、添加HTTP请求,这里以访问淘宝为例。

3、添加察看结果数和聚合报告,点击运行,可以选择远程启动或者远程全部启动,如果是点击远程启动,可以选择任意一台电脑来运行,如果是点击远程全部启动就会运行控制机和所有的代理机。 

4、这里以点击远程全部启动为例。运行结束后,查看聚合报告,每台电脑设置的线程数为200,这里一共是两台电脑,所以是200*2=400个线程数。

  • 遇见问题及解决方法

一、问题:运行时提示Connection refused to host: 192.168.2.28; nested exception is:

java.net.ConnectException: Connection refused: connect(拒绝连接主机:192.168.2.28;

嵌套的异常:

connectexception:拒绝连接:连接)

解决方法:关闭防火墙

  • 打开jmeter-server.bat获取不到本地ip问题:

打开控制面板网络和 Internet网络连接,禁用其他不相关的网络服务

Jmeter配置联机负载生成密钥失败了, 看这里

在配置负载联机时, 控制机上需要生成密钥供负载机使用.

在bin目录下双击create-rmi-keystore.bat时, 弹出错误提示:

'XXXX'不是内部或外部命令, 这种典型的错误一看就环境变量的问题.

解决方案有两种:

  1. 最简单粗暴地就是找到keytool.exe在系统中所在的位置, 添加到环境变量中, 问题KO.
  2. 第2种方案是进入到keytool.exe所在的位置, 打开命令行窗口

并且使用记事本打开create-rmi-keystore.bat, 发现其中有效的命令行就一句:

在刚才打开的命令行窗口中运行这句命令: keytool -genkey -keyalg RSA -alias rmi -keystore rmi_keystore.jks -storepass changeit -validity 7 -keysize 2048

OK啦, 密钥可以正常创建了.

0 人点赞