![](/img/trans.png)
[英]Using JMeter Docker image, Prometheus throws ConversionException
[英]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
據我了解,這是當您嘗試創建的目錄的父目錄之一不存在時產生的錯誤。 是我做錯了什么,還是圖像實際上有問題?
參考
作為參考,我將包含指向圖像文檔和存儲庫的鏈接。
ENV JMETER_HOME /opt/apache-jmeter-${JMETER_VERSION}
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 作為依賴項,所以當你安裝插件時,你應該:
所以我建議修改 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.