在代码中加载JMeter测试计划时发生异常

问题描述

我正在尝试使用-

在Java代码(类似于this)中加载jmx测试计划。
hashtree testPlanTree = SaveService.loadTree(new File("<path-to-jmx>"));

它适用于基本测试计划,但是,如果我使用Arrivals Thread组之类的任何插件加载测试计划,则会引发异常。插件已安装在我的本地计算机上(jar文件位于 / lib / ext /中),并且通过jmeter可以正常进行测试计划。

  1. 我们需要为代码配置一些东西以检测测试计划中的插件并防止此错误吗?
  2. 我们可以直接使用任何api直接从测试计划中安装插件来成功加载,还是至少获取测试计划使用的插件名称吗?

我得到的异常-

...Exception in thread "main" java.lang.IllegalArgumentException: Problem loading XML from:'<path-to-jmx>'.
Cause:
CannotResolveClassException: com.blazemeter.jmeter.threads.arrivals.ArrivalsThreadGroup

 Detail:com.thoughtworks.xstream.converters.ConversionException:
---- Debugging @R_930_4045@ion ----
cause-exception     : com.thoughtworks.xstream.converters.ConversionException
cause-message       :
first-jmeter-class  : org.apache.jmeter.save.converters.hashtreeConverter.unmarshal(hashtreeConverter.java:66)
class               : org.apache.jmeter.save.ScriptWrapper
required-type       : org.apache.jmeter.save.ScriptWrapper
converter-type      : org.apache.jmeter.save.ScriptWrapperConverter
path                : /jmeterTestPlan/hashtree/hashtree/com.blazemeter.jmeter.threads.arrivals.ArrivalsThreadGroup
line number         : 64
version             : 5.3
-------------------------------
        at org.apache.jmeter.save.SaveService.readTree(SaveService.java:458)
        at org.apache.jmeter.save.SaveService.loadTree(SaveService.java:431)....

解决方法

为了能够以编程方式启动JMeter测试,您需要在项目dependencies中拥有所有插件(以及它们的CLASSPATH

如果由于某种原因您无法拥有所有插件,或者它们的数量/性质不确定,至少可以在项目中添加JMeter Plugins Manager,它会提供诸如getPluginStatus()或{{3} },可用于检测已安装的插件,使用getAllPluginsStatus()来检查所需的插件,等等。

更多信息:TestPlanAnalyzer

,

您确定没有丢失插件的依赖项吗?

  • jmeter-plugins-cmn-jmeter-0.6.jar

如果没有,请显示完整的jmeter.log文件