其他分享
首页 > 其他分享> > 8.jmeter分布式

8.jmeter分布式

作者:互联网

jmeter分布式

下面的slave 代表执行机的ip地址
参考文档:
https://www.cnblogs.com/S--S/p/10570735.html

https://blog.csdn.net/Lylianko/article/details/103204193?utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromMachineLearnPai2~default-12.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromMachineLearnPai2~default-12.control

如果没有jdk,需要先安装jdk
jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

1、下载jmeter5.1.1的tgz版本,然后上传到Linux

https://archive.apache.org/dist/jmeter/binaries/

图 1
解压 修改 目录名称

  tar zxf apache-jmeter-5.1.1.tgz

  mv apache-jmeter-5.1.1 jmeter-5.1.1

2、修改环境变量

原有变量


export JAVA_HOME=/usr/local/jdk1.8
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

增加以下变量
/usr/local/jmeter-5.1.1

export JMETER_HOME=/usr/local/jmeter-5.1.1
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin

3.发布系统环境变量

   source /etc/profile

下载jmter压缩包 地址: http://jmeter.apache.org/download_jmeter.cgi

4、修改从机配置文件

  slave配置修改

  修改 下面这一行 避免启动报错

  ##!

  vim jmeter.properties

  server.rmi.ssl.disable=true

  ##!!

   vim jmeter-server

  MI_HOST_DEF=-Djava.rmi.server.hostname=slave的IP地址

5、修改主机配置文件

修改 jmeter.properties 文件

  jmeter.properties

修改这一行设置slave1和slave2节点的ip和端口 (可以自己调整端口在占用的其它情况下)

  remote_hosts=slave1:1099,slave2:1099

  master 其它不用修改

jmeter.bat
set rmi_host=-Djava.rmi.server.hostname=slave1
set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %JMETER_LANGUAGE% %RUN_IN_DOCKER% %rmi_host% 

6、启动从机--Linux

[root@localhost bin]# ./jmeter-server
Created remote object: UnicastServerRef2 [liveRef: [endpoint:slave128:36002,objID:[633b3e1f:17a22727984:-7fff, -6981845599798428680]]]

图 2

7、启动主机--windows

bin目录下双击jmeter.bat
启动所有远程机
图 3

8、非gui模式

jmeter -n -t D:\VIP\性能\jmeter\dushi.jmx -R slave1:1099,slave128:1099 -l report.jtl -e -o D:\VIP\性能\jmeter\result

jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
生成了result文件,点击index.html就可以看到报告了
运行过程如下:

Creating summariser <summary>
Created the tree successfully using D:\VIP\性能\jmeter\dushi.jmx
Configuring remote engine: slave1:1099
Using local port: 1099
Configuring remote engine: slave128:1099
Starting remote engines
Starting the test @ Sat Jun 19 18:00:51 CST 2021 (1624096851403)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
Tidying up remote @ Sat Jun 19 18:01:11 CST 2021 (1624096871961)
summary =    100 in 00:00:20 =    4.9/s Avg:  1795 Min:   104 Max: 10655 Err:     0 (0.00%)
Tidying up remote @ Sat Jun 19 18:01:12 CST 2021 (1624096872150)
... end of run
... end of run

图 5

报错:
Error in NonGUIDriver java.lang.IllegalArgumentException:Results File:report: result.jtl isnot empty
解决:
删除jmeter的bin目录和用户目录下面的result.jtl文件

问题记录

解决方法:

找到如下文件:
在目录\apache-jmeter-5.1.1\bin下,打开名为jmeter.properties的文件
找到server.rmi.ssl.disable=false,改为true,并把前面的#去掉

意思是无法在根节点 Software\JavaSoft\Prefs 创建命令,实际上就是当前不是管理员权限在运行,需要管理员权限运行。

解决方法:
命令行窗口输入 regedit,打开注册表编辑器,如果 HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs 不存在,新建并赋予权限(完全控制)。如果 HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs 存在,直接赋予最高权限(完全控制)。

至此,Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002 警告消失。

main ERROR Unable to invoke factory method in class org.apache.logging.log4j.core.appender.FileAppender for element File: java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.FileAppender java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.FileAppender

解决方法:
在目录\apache-jmeter-5.1.1\bin下,打开名为jmeter.properties的文件
找到server.rmi.ssl.disable=false,改为true,并把前面的#去掉

上面方法还是不能解决的情况下
需要生成rmi_keystore.jks,同时需要把这个文件拷贝到各个执行的jmeter的bin目录下面,非常重要
图 6

在jmeter的bin目录下面启动cmd命令

如果还是解决不了,需要开放端口:
执行机开发三个默认端口:
server_port=1099
server.rmi.port=1099
server.rmi.localport=1099

标签:jmeter,remote,1099,server,slave1,rmi,分布式
来源: https://www.cnblogs.com/xiehuangzhijia/p/14966081.html