我正在尝试使用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,但没有一个适合我。
谢谢。
答案 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)。我们需要调整路径,以使其与我们在配置音量时选择的位置相匹配。