Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JMeter插件与justb4/JMeter Docker映像一起使用会导致错误_Docker_Azure Devops_Jmeter - Fatal编程技术网

将JMeter插件与justb4/JMeter Docker映像一起使用会导致错误

将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在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}
错误

但是,在尝试适应插件时,它会产生以下错误(我知道插件会产生差异,因为在没有插件的情况下进行测试):

据我所知,这是当您试图创建的目录的父目录之一不存在时产生的错误。是我做错了什么,还是图像确实有问题

参考资料

作为参考,我将包括图像文档和存储库的链接

图片:

存储库:

查看:

调查

它基本上将插件从
/plugins
文件夹(如果存在)复制到
/lib/ext
文件夹,相对于当前工作目录

我不知道为什么要将此节
-w/test
添加到命令行,但它明确地“告诉”容器本地工作目录是
/test
,而不是
/opt/apache jmeter xxxx
,这就是脚本无法复制文件的原因


总的来说,我认为这种方法不是很有效,因为:

  • 在Azure DevOps中,您将没有“本地”文件夹(除非您希望在版本控制系统下添加插件二进制文件)

  • 一些JMeter插件有其他.jar作为插件,因此在安装插件时,您应该:

    • 将插件本身放在JMeter安装的/lib/ext文件夹下
    • 将插件依赖项放在JMeter安装的/lib文件夹下
因此,我建议修改Dockerfile,下载并

比如:

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