jmeter:JMeter分布式部署及踩坑解决
简单唠一唠最近要做性能测试了,主要是业务并发的测试牵扯到大并发的话,一台client机器是会运行宕机的,今天就唠唠jmeter的分布式测试本次是环境的搭建,踩坑纪实。下面进入正文部分JMeter分布式环境搭建环境搭建 - 第一步:是要先在本机部署java和jmeter的运行环境java最好下载jdk-8u321-windows-x64jmeter下载新版即可,如果想保证稳定可退两个版本下载上述两个
简单唠一唠
最近要做性能测试了,主要是业务并发的测试
牵扯到大并发的话,一台client
机器是会运行宕机的,今天就唠唠jmeter
的分布式测试
本次是环境的搭建,踩坑纪实。下面进入正文部分
JMeter分布式环境搭建
环境搭建 - 第一步:
是要先在本机部署java
和jmeter
的运行环境
java
最好下载jdk-8u321-windows-x64
jmeter
下载新版即可,如果想保证稳定可退两个版本下载
上述两个环境搭建的搭建可以百度一下,教程特别多。环境搭建好以后,记得去验证下
java
环境验证,cmd
控制台输入以下命令:
java
C:\Users\lifeng>java
javac
C:\Users\lifeng>java
java -version
C:\Users\lifeng>java -version
java version "1.8.0_321"
Java(TM) SE Runtime Environment (build 1.8.0_321-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)
jmeter
环境验证,cmd
控制台输入以下命令:
jmeret -v
C:\Users\lifeng01>jmeter -v
_ ____ _ ____ _ _ _____ _ __ __ _____ _____ _____ ____
/ \ | _ \ / \ / ___| | | | ____| | | \/ | ____|_ _| ____| _ \
/ _ \ | |_) / _ \| | | |_| | _| _ | | |\/| | _| | | | _| | |_) |
/ ___ \| __/ ___ \ |___| _ | |___ | |_| | | | | |___ | | | |___| _ <
/_/ \_\_| /_/ \_\____|_| |_|_____| \___/|_| |_|_____| |_| |_____|_| \_\ 5.4.3
Copyright (c) 1999-2021 The Apache Software Foundation
环境搭建 - 第二步:
自己本机搭建完成后,要在远程机器上搭建环境了,如果没电脑,可用同事的电脑操作起来
远程机的java
和jmeter
环境必须要和控制机(本机)的java
和jmeter
版本一致,必须一致,必须一致,否则就会出现乱七八糟的问题。
远程机的的环境验证同控制机(本机)的的环境验证方法示一样的,是一样的,是一样的。
请注意 - 细节来了:
远程机操作配置:
-
首先在远程机器上,找到
jmeter
的安装路径,并在bin
目录下找到jmeter.properties
。 -
打开
jmeter.properties
文件修改remote_hosts
,把127.0.0.1
修改成远程机的IPv4 地址
。 -
继续在
jmeter.properties
文件修改server.rmi.ssl.disable=true
,这里是开启弃用秘钥,因为使用秘钥发现坑有些多。 -
以上修改完成后,千万要记得保存。
-
保存完成后,启动
cmd
输入jmeter-server
启动服务(如果运行命令起不来,那肯定是jmeter的环境变量配置错误,记得去检查下)。
控制机(本机)操作配置:
-
控制机的配置操作同远程机是一样的,区别的是,控制机器的
remote_hosts
要配置远程机的IPv4 地址
-
如果你想把控制机也要当远程机使用,也在控制机(本机)启动
cmd
输入jmeter-server
启动服务。
环境搭建 - 第三步:
以上控制机和远程机配置完成后开始运行
控制机启动jmeter
GUI页面,鼠标点运行
->远程启动
(英文:Run
->Remote Start
)处会显示设置的远程机的IPv4 地址
。
运行分为两种,第一种是命令行输入命令运行,这种的更适用做性能测试;第二种是GUI的运行
- 第一种 - GUI运行:鼠标点
运行
->远程启动所有
(英文:Run
->Remote Start All
) - 第二种 - 启动
cmd
输入命令运行
PS E:\git_dfwsgroup\jmScript> jmeter -n -t .\并发测试脚本.jmx -R 10.11.12.157,10.11.29.226,10.11.12.120 -l E:\git_dfwsgroup\jmScript\results\test.jtl -e -o E:\git_dfwsgroup\jmScript\results\report\
Creating summariser <summary>
Created the tree successfully using .\考试业务并发测试脚本.jmx
Configuring remote engine: 10.11.12.157
Configuring remote engine: 10.11.29.226
Configuring remote engine: 10.11.12.120
Starting distributed test with remote engines: [10.11.12.120, 10.11.12.157, 10.11.29.226] @ Fri Mar 25 19:18:40 CST 2022 (1648207120343)
Remote engines have been started:[10.11.12.120, 10.11.12.157, 10.11.29.226]
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
summary = 9 in 00:00:03 = 3.5/s Avg: 391 Min: 0 Max: 1453 Err: 2 (22.22%)
Tidying up remote @ Fri Mar 25 19:18:43 CST 2022 (1648207123594)
... end of run
参数解释:
-n
是命令行模式-t
是指定jmeter
脚本-R
是指定IPv4 地址
,多个时使用英文逗号隔开-l
指定结果文件,后面跟文件存放路径-e
设置测试后完成报表-o
指定测试报表生成文件夹,后面跟文件夹路径,必须为空文件夹
命令行运行完成后,会在自定义的目录下存放测试的报告
踩坑问题及解决方法
问题一:控制机(本机)一定要ping
一下远程机IPv4 地址
C:\Users\lifeng01>ping 10.11.29.987
如果ping
不通,是肯定连接不上的,这时候要把控制机和远程机的防火墙关闭了
问题二:运行报系统找不到指定文件
-
解决一:控制机(本机)
jmeter
安装路径中bin
目录下找到create-rmi-keystore.bat
点击运行,然后跟着提示输入即可,最后在bin
目录下会生成rmi_keystore.jks
文件,把这个文件复制到每一个远程机的bin
目录下 -
解决二:控制机(本机)和远程机在
jmeter
安装路径中bin
目录下找到jmeter.properties
文件,打开就找到注释掉的server.rmi.ssl.disable=false
,去除注释并修改成server.rmi.ssl.disable=true
,保存后,远程机在cmd
中从新启动jmeter-server
服务;如果控制机也想当远程机使用,也要从新启动jmeter-server
服务。
问题三:如运行就报如下问
Error in rconfigure() method java.rmi.ConnectException: Connection refused to host: 192.169.232.89; nested exception is:
java.net.ConnectException: Connection timed out: connect
这就是控制机调用远程机时识别了虚拟机IP
,导致的错误。
解决方法就是把控制机和远程机,在控制面板\网络和 Internet\网络连接
中心,禁用,只留下以太网
今天先聊到这里吧,以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你,如有疑问、歧义,直接私信留言会及时修正发布;非常期待你的一键 3 连【 点赞、收藏、分享 】哟,谢谢!
未完成,待续……
一直在努力,希望你也是!
微信搜索公众号:就用python
更多推荐
所有评论(0)