将JMeter插件与justb4/JMeter Docker映像一起使用会导致错误
目标 我正在使用Docker在Azure Devops中运行JMeter。我正在尝试使用Blazemeter的并行控制器,它不是JMeter所固有的。因此,根据justb4/jmeter映像文档,我使用以下命令启动映像并运行jmeter测试:将JMeter插件与justb4/JMeter Docker映像一起使用会导致错误,docker,azure-devops,jmeter,Docker,Azure Devops,Jmeter,目标 我正在使用Docker在Azure Devops中运行JMeter。我正在尝试使用Blazemeter的并行控制器,它不是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} 错误 但是,
docker run --name jmetertest -i -v /home/vsts/work/1/s/plugins:/plugins -v $ROOTPATH:/test -w /test justb4/jmeter ${@:2}
错误
但是,在尝试适应插件时,它会产生以下错误(我知道插件会产生差异,因为在没有插件的情况下进行测试):
据我所知,这是当您试图创建的目录的父目录之一不存在时产生的错误。是我做错了什么,还是图像确实有问题
参考资料
作为参考,我将包括图像文档和存储库的链接
图片:
存储库:查看:
调查
它基本上将插件从/plugins
文件夹(如果存在)复制到/lib/ext
文件夹,相对于当前工作目录
我不知道为什么要将此节-w/test
添加到命令行,但它明确地“告诉”容器本地工作目录是/test
,而不是/opt/apache jmeter xxxx
,这就是脚本无法复制文件的原因
总的来说,我认为这种方法不是很有效,因为:
- 在Azure DevOps中,您将没有“本地”文件夹(除非您希望在版本控制系统下添加插件二进制文件)
- 一些JMeter插件有其他.jar作为插件,因此在安装插件时,您应该:
- 将插件本身放在JMeter安装的/lib/ext文件夹下
- 将插件依赖项放在JMeter安装的/lib文件夹下
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
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
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