问题描述
我已在其中一台远程 AWS 服务器上安装了 jmeter 5.2.1
。
我已下载 jmeter-plugins-manager-1.6.jar
和 jmeter-plugins-perfmon-2.1.jar
并复制到 /lib/ext
然后我从本地机器上的 jmeter 创建了一个测试脚本并复制到服务器并尝试运行相同的 jmeter -n -t AWS.jmx -l awsresults.jtl
Error in NonGUIDriver java.lang.IllegalArgumentException: Problem loading XML from:'/root/apache-jmeter-5.2.1/bin/AWS.jmx'.
Cause:
ClassNotFoundException: kg.apc.jmeter.vizualizers.CorrectedResultCollector
Detail:com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : java.lang.NoClassDefFoundError
cause-message : kg/apc/jmeter/vizualizers/CorrectedResultCollector
first-jmeter-class : org.apache.jmeter.save.SaveService$XStreamWrapper$1.realClass(SaveService.java:98)
class : org.apache.jmeter.save.ScriptWrapper
required-type : org.apache.jmeter.save.ScriptWrapper
converter-type : org.apache.jmeter.save.ScriptWrapperConverter
path : /jmeterTestPlan/hashtree/hashtree/hashtree/kg.apc.jmeter.perfmon.PerfMonCollector
line number : 219
version : 5.2.1
当我在 jmeter 的本地机器上运行它时,它按预期工作。
编辑:
`
2021-03-01 09:23:36,931 INFO k.a.j.p.PerfMonCollector: PerfMon metrics will be stored in /tmp/perfmon_7034792572732251249.jtl
2021-03-01 09:23:36,931 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[StandardJMeterEngine,5,main]
java.lang.NoClassDefFoundError: kg/apc/perfmon/metrics/MetricParams
at kg.apc.jmeter.perfmon.PerfMonCollector.initiateConnector(PerfMonCollector.java:200) ~[jmeter-plugins-perfmon-2.1.jar:?]
at kg.apc.jmeter.perfmon.PerfMonCollector.initiateConnectors(PerfMonCollector.java:175) ~[jmeter-plugins-perfmon-2.1.jar:?]
at kg.apc.jmeter.perfmon.PerfMonCollector.testStarted(PerfMonCollector.java:126) ~[jmeter-plugins-perfmon-2.1.jar:?]
at org.apache.jmeter.reporters.ResultCollector.testStarted(ResultCollector.java:351) ~[ApacheJMeter_core.jar:5.2.1]
at kg.apc.jmeter.vizualizers.CorrectedResultCollector.testStarted(CorrectedResultCollector.java:28) ~[jmeter-plugins-cmn-jmeter-0.4.jar:?]
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:206) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:381) ~[ApacheJMeter_core.jar:5.2.1]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_282]
Caused by: java.lang.classNotFoundException: kg.apc.perfmon.metrics.MetricParams
at java.net.urlclassloader.findClass(urlclassloader.java:382) ~[?:1.8.0_282]
at java.lang.classLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_282]
at java.lang.classLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_282]
... 8 more
2021-03-01 09:23:36,937 INFO o.a.j.r.ResultCollector: Shutdown hook started
2021-03-01 09:23:36,937 INFO o.a.j.r.ResultCollector: Shutdown hook ended
`
谢谢,
解决方法
该错误意味着您的 AWS 实例上没有安装 PerfMon 插件,我认为当前版本的 JMeter 插件管理器无法在非 GUI 模式下检测/安装缺少的插件,因此您需要手动执行此操作。
类似于:
-
wget https://jmeter-plugins.org/get/ -O /opt/apache-jmeter-5.2.1/lib/ext/jmeter-plugins-manager.jar
-
下载JMeter Plugins Command Line Runner
wget https://repo1.maven.org/maven2/kg/apc/cmdrunner/2.2/cmdrunner-2.2.jar -P /opt/apache-jmeter-5.2.1/lib/
-
安装JMeter Plugins Manager Command Line Utility:
java -cp /opt/apache-jmeter-5.2.1/lib/ext/jmeter-plugins-manager.jar org.jmeterplugins.repository.PluginManagerCMDInstaller
-
安装 PerfMon Plugin:
/opt/apache-jmeter-5.2.1/bin/./PluginsManagerCMD.sh install jpgc-perfmon
-
就是这样,现在您应该可以执行测试了
附言According to JMeter Best Practices you should always be using the latest version of JMeter 所以考虑升级到 JMeter 5.4.1 或任何它的 current JMeter latest stable version