尝试使用用于JMeter的docker容器(非GUI模式)运行JMeter测试会引发错误“无法打开xxxx.jmx文件”

时间:2019-03-04 12:55:11

标签: docker jmeter load-testing jmx

我正在尝试使用Docker容器分发负载测试。

在JMeter的本地环境中,我的测试可以在GUI或非GUI模式下正常运行,但是当我尝试使用JMeter的docker映像在非GUI模式下运行其中的任何测试时:

docker run egaillardon/jmeter -n -t ~/Developer/testing/login_test.jmx -l ~/Desktop/resultado.jtl

我得到了错误:

  

无法打开   〜/ Developer / testing / login_test.jmx

我为JMeter (egaillardon/jmeter, justb4/jmeter, vmarrazzo/jmeter)尝试了不同的docker镜像,但在其中的任何一个中都遇到了相同的错误。有人知道我必须更改jmx文件中的内容才能使其可读吗?

我已经尝试过使用此solution in stackexchange,但没有一个适合我。

谢谢。

2 个答案:

答案 0 :(得分:1)

您还可以将主机目录安装到容器中的默认工作目录(/jmeter)。

示例:

docker run --detach --rm --volume `pwd`:/jmeter egaillardon/jmeter-plugins --nongui --testfile test.jmx --logfile result.jtl


这样,还将在主机目录中创建jmeter运行日志文件(jmeter.log)。

此外,要解决有关文件权限的问题,您还可以将主机上用户的用户ID和组ID分配给容器内的jmeter用户。

示例:

docker run --env JMETER_GROUP_ID=`/usr/bin/id -g` --env JMETER_USER_ID=`/usr/bin/id -u` --rm egaillardon/jmeter --server -Jserver.rmi.ssl.disable=true

答案 1 :(得分:0)

~/Developer/testing/login_test.jmx将从容器文件系统加载,可能是该路径在您的容器文件系统中不存在。

要解决此问题,可以使用docker volume将文件从主机文件系统装入到容器文件系统:

docker run -v ~/Developer/testing/:/workspace egaillardon/jmeter -n -t /workspace/login_test.jmx -l /workspace/resultado.jtl

说明

  • -v ~/Developer/testing/:/workspace:将~/Developer/testing/目录从主机安装到容器文件系统中的路径/workspace/
  • -n -t /workspace/login_test.jmx -l /workspace/resultado.jtl:选项在运行时并因此在容器的上下文中传递给容器的进程(jmeter)。我们需要调整路径,以使其与我们在配置音量时选择的位置相匹配。