簡體   English   中英

將 JMeter 插件與 justb4/jmeter Docker 圖像一起使用會導致錯誤

[英]Using JMeter plugins with justb4/jmeter Docker image results in error

目標

我正在使用 Docker 在 Azure Devops 中運行 JMeter。 我正在嘗試使用 Blazemeter 的並行 Controller,它不是 JMeter 所固有的。 因此,根據 justb4/jmeter 圖像文檔,我使用以下命令來獲取圖像並運行 JMeter 測試:

docker run --name jmetertest -i -v /home/vsts/work/1/s/plugins:/plugins -v $ROOTPATH:/test -w /test justb4/jmeter ${@:2}

錯誤

但是,它在嘗試適應插件時會產生以下錯誤(我知道插件會因為沒有插件的測試而有所不同):

cp: can't create '/test/lib/ext': No such file or directory

據我了解,這是當您嘗試創建的目錄的父目錄之一不存在時產生的錯誤。 是我做錯了什么,還是圖像實際上有問題?

參考

作為參考,我將包含指向圖像文檔和存儲庫的鏈接。

圖片: https://hub.docker.com/r/justb4/jmeter

存儲庫: https://github.com/justb4/docker-jmeter

調查 Dockerfile

ENV JMETER_HOME /opt/apache-jmeter-${JMETER_VERSION}

調查 entrypoint.sh

if [ -d /plugins ]
then
    for plugin in /plugins/*.jar; do
        cp $plugin $(pwd)/lib/ext
    done;
fi

它基本上將插件從/plugins文件夾(如果存在)復制到/lib/ext相對於當前工作目錄的文件夾

我不知道您為什么將此節-w /test添加到命令行,但它明確“告訴”容器本地工作目錄是/test ,而不是/opt/apache-jmeter-xxxx ,這就是腳本的原因無法復制文件。


總的來說,我認為這種方法不是很有效,因為:

  • 在 Azure DevOps 中,您將沒有“本地”文件夾(除非您想在版本控制系統下添加插件二進制文件)

  • 一些 JMeter 插件有 other.jars 作為依賴項,所以當你安裝插件時,你應該:

    • 將插件本身放在 JMeter 安裝的 /lib/ext 文件夾下
    • 將插件依賴項放在 JMeter 安裝的 /lib 文件夾下

所以我建議修改 Dockerfile,下載JMeter 插件管理器並從命令行安裝您需要的插件

就像是:

RUN wget https://jmeter-plugins.org/get/ -O /opt/apache-jmeter-${JMETER_VERSION}/lib/ext/jmeter-plugins-manager.jar
RUN wget https://repo1.maven.org/maven2/kg/apc/cmdrunner/2.2/cmdrunner-2.2.jar -P /opt/apache-jmeter-${JMETER_VERSION}/lib/
RUN java -cp /opt/apache-jmeter-${JMETER_VERSION}/lib/ext/jmeter-plugins-manager.jar org.jmeterplugins.repository.PluginManagerCMDInstaller
RUN /opt/apache-jmeter-${JMETER_VERSION}/bin/./PluginsManagerCMD.sh install bzm-parallel

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM