使用 JMeter Docker 图片,Prometheus 抛出 ConversionException

Using JMeter Docker image, Prometheus throws ConversionException

如果出现以下错误,是因为 Docker 图像没有插件,我的解决方案是创建一个包含该插件的图像吗?

或者我可以使用 Gitlab CI 文件将插件 JAR 复制到图像上的 lib/ext 中吗?

我正在使用图像 justb4/jmeter:latest

Error in NonGUIDriver java.lang.IllegalArgumentException: Problem loading XML from:'/builds/guyl/web-performance-testing/./DCS_login_dashboard_machine_actor_card_DTM.jmx'. 
Cause:
CannotResolveClassException: com.github.johrstrom.config.PrometheusMetricsConfig
 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.github.johrstrom.config.PrometheusMetricsConfig
line number         : 132
version             : 5.4.3
-------------------------------

是的,查看 Dockerfile 图像仅包含 vanilla JMeter,没有任何插件。

我认为您需要添加自定义 RUN 指令,它将:

要添加到 Dockerfile 的示例代码:

RUN curl -L --silent https://jmeter-plugins.org/get/ > ${JMETER_HOME}/lib/ext/jmeter-plugins-manager.jar \
    && curl -L --silent https://repo1.maven.org/maven2/kg/apc/cmdrunner/2.2/cmdrunner-2.2.jar >${JMETER_HOME}/lib/cmdrunner-2.2.jar \
    && java -cp ${JMETER_HOME}/lib/ext/jmeter-plugins-manager.jar org.jmeterplugins.repository.PluginManagerCMDInstaller \
    && ${JMETER_BIN}/./PluginsManagerCMD.sh install jmeter-prometheus