【问题标题】:Exception while loading JMeter test plan in code在代码中加载 JMeter 测试计划时出现异常
【发布时间】:2020-08-31 08:28:14
【问题描述】:

我正在尝试在 Java 代码中加载一个 jmx 测试计划(类似于 this),使用 -

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 information ----
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)....

【问题讨论】:

    标签: java jmeter jmeter-plugins jmeter-5.0


    【解决方案1】:

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

    如果由于某种原因您不能拥有所有插件或者它们的数量/性质不是确定性的 - 至少您可以将 JMeter Plugins Manager 添加到您的项目中,它提供了像 getPluginStatus()getAllPluginsStatus() 这样的功能,您可以使用检测已安装插件,使用TestPlanAnalyzer检查需要哪些插件等。

    更多信息:Plugins Manager from Command-Line

    【讨论】:

    • 感谢 @Dmitri 提供非常有用的见解。我按照此处的步骤操作,插件 jar 下载到 Apace_core.jar 旁边(在本地 .m2 存储库中)。另外,我将它们放在我的 jmeter home\lib\ext 文件夹中。但我仍然遇到同样的错误。我们是否需要在项目类路径中单独添加插件 jar 或为此运行任何配置步骤?
    【解决方案2】:

    您确定没有缺少插件的依赖项,例如:

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

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

    【讨论】:

      猜你喜欢
      • 2021-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多