我下载最新的JMeter 4,
作为远程测试的一部分
要在远程节点中运行JMeter,请通过运行JMETER_HOME/bin/jmeter-server(unix)或JMETER_HOME/bin/jmeter-server.bat(windows)脚本在要运行的所有计算机上启动JMeter服务器组件.
我尝试在Windows 7中执行jmeter-server.bat并得到以下错误:
Server failed to start: java.rmi.server.ExportException: Listen failed on port:
0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (The system cannot find
the file specified)
An error occurred: Listen failed on port: 0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (The system cannot find
the file specified)
errorlevel=1
Run Code Online (Sandbox Code Playgroud)
似乎缺少文件rmi_keystore.jks.(我在JMeter文件夹中找不到它)
在JMeter 3.3中,jmeter-server.bat正在工作.
编辑1
在我执行create-rmi-keystore.bat它之后创建了rmi_keystore.jks,但是我得到了其他错误:
Server failed to start: java.rmi.server.ExportException: Listen failed on port:
0; nested exception is:
java.io.IOException: java.security.UnrecoverableKeyException: Cannot rec
over key
An error occurred: …Run Code Online (Sandbox Code Playgroud) 我配置jmeter来运行使用Azure Windows虚拟机分发的测试.所有机器都使用窗户.
测试使用GUI模式成功运行,我可以将结果保存在master上但是当我尝试从控制台jmeter -n -t plan.jmx -r运行测试时,控制台说:
rconfigure()方法中的错误java.rmi.MarshalException:错误编组参数; 嵌套异常是:java.io.NotSerializableException:org.apache.jmeter.JMeter $ ListenToTest
我已经配置了所有虚拟机(服务器和客户端),如:
Java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
Jmeter version 2.13
Jmeter Plugins 1.31
Run Code Online (Sandbox Code Playgroud)
任何想法可能是什么问题?谢谢
我将Java版本降级到1.7,现在错误说明了
rconfigure()方法中的错误java.rmi.MarshalException:错误编组参数; 嵌套异常是:java.io.NotSerializableException:org.apache.jmeter.threads.RemoteThreadsListenerTestElement
Jmeter插件可以解决问题的原因吗?
我将插件版本从1.31更改为1.21,现在可以工作!!!
但是我想,我只是在这里猜测,当我从GUI然后在控制台上运行测试时会发生错误.GUI可能会打开套接字或类似的东西,不确定.
无论如何,这种组合有效
Java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
Jmeter version 2.13
Jmeter Plugins 1.21 (only Standard Version)
Run Code Online (Sandbox Code Playgroud) 我使用JMeter设置了分布式负载测试环境。我使用的三个Linux机器(红帽)(IPS: ,xxx.xxx.xxx.121,xxx.xxx.xxx.122)xxx.xxx.xxx.123使用从我的Windows 8.1壳牌担保。
我已经满足执行分布式测试的先决条件:
Client(Master) Machine :xxx.xxx.xxx.123
Server(Slave) Machines: xxx.xxx.xxx.122,xxx.xxx.xxx.121
我做了以下工作:
1)在客户端(主)jmeter.properties文件中添加了以下内容:
remote_hosts= xxx.xxx.xxx.122,xxx.xxx.xxx.121
2)将以下内容添加到服务器(在每个从属计算机中)jmeter-server:
RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.123(客户端计算机IP)
3)然后使用此命令从这两个从属机器(xxx.xxx.xxx.122,xxx.xxx.xxx.121)启动jmeter-server
./jmeter-server
并获得以下输出。这意味着从属计算机已启动。
xxx.xxx.xxx.121的输出:
Created remote object: UnicastServerRef [liveRef: [endpoint:[xxx.xxx.xxx.123:41864](local),objID:[1707296d:154c281318b:-7fff, -8101068266055605468]]]
Run Code Online (Sandbox Code Playgroud)
xxx.xxx.xxx.122的输出:
Using local port: 4000
Created remote object: UnicastServerRef [liveRef: [endpoint:[xxx.xxx.xxx.123:4000](local),objID:[-2a2acf13:154c285ffa2:-7fff, 2939294752655639469]]]
Run Code Online (Sandbox Code Playgroud)
现在,我从客户端计算机(xxx.xxx.xxx.123)运行以下命令以启动远程测试。
./jmeter -n -t RemoteTest.jmx -r
它为我提供了以下输出:
Creating summariser <summary>
Created the tree …Run Code Online (Sandbox Code Playgroud) 我想在 jmeter 中测试具有云设置的 30k 负载的移动应用程序,因为我从未在 jmeter 中和分布式负载中做过如此巨大的 v.user 负载,请帮助我如何逐步进行详细操作。
我在 jmter 工作了 5-6 个月,但只有一台 200-300 V 用户的负载生成器。