ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

8.jmeter分布式

2021-07-03 13:03:58  阅读:367  来源: 互联网

标签:jmeter remote 1099 server slave1 rmi 分布式


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文件

问题记录

  • 1、jmeter-server.bat 无法启动,系统找不到指定的文件
    ![图 34]
    (b0f711b6754b00278f8f9843b62cf2ac420fdd55d43adb0560203185af580df1.png)

解决方法:

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

  • 2、C:\Users\gavin>jmeter -n -t D:\VIP\性能\jmeter\dushi.jmx -R slave1 -l report.jtl -e -o D:\VIP\性能\jmeter\result
    Jun 19, 2021 1:55:06 PM java.util.prefs.WindowsPreferences
    WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
    Creating summariser


    Created the tree successfully using D:\VIP\性能\jmeter\dushi.jmx
    Configuring remote engine: slave1
    Exception creating connection to: slave1; nested exception is:
    java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
    Failed to configure slave1
    Stopping remote engines
    Remote engines have been stopped
    Error in NonGUIDriver java.lang.RuntimeException: Following remote engines could not be configured:[slave1]
    An error occurred: Error in NonGUIDriver Following remote engines could not be configured:[slave1]

  • 3、Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateK

意思是无法在根节点 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

  • 4、C:\Users\gavin>jmeter -n -t D:\VIP\性能\jmeter\dushi.jmx -R slave1:1099,slave128:1099 -l report.jtl -e -o D:\VIP\性能\jmeter\result
    Creating summariser
    Created the tree successfully using D:\VIP\性能\jmeter\dushi.jmx
    Configuring remote engine: slave1:1099
    Exception creating connection to: slave1; nested exception is:
    java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
    Failed to configure slave1:1099
    Configuring remote engine: slave128:1099
    Exception creating connection to: slave128; nested exception is:
    java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
    Failed to configure slave128:1099
    Stopping remote engines
    Remote engines have been stopped
    Error in NonGUIDriver java.lang.RuntimeException: Following remote engines could not be configured:[slave1:1099, slave128:1099]
    An error occurred: Error in NonGUIDriver Following remote engines could not be configured:[slave1:1099, slave128:1099]
    errorlevel=1
    请按任意键继续. . .

解决方法:
在目录\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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有