我正在尝试使用Docker容器分发加载测试。
在JMeter的本地模式下,我的测试可以在图形用户界面或非图形用户界面模式下正常运行,但是当我尝试使用JMeter的docker镜像在非图形用户界面模式下运行它们时:
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 Stack Exchange,但没有一个对我有效。
发布于 2019-03-04 21:15:06
~/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/
目录挂载到容器filesystem-n -t /workspace/login_test.jmx -l /workspace/resultado.jtl
:选项中的路径/workspace/
,该选项在运行时传递给容器进程(jmeter),从而在容器的上下文中。我们需要调整路径,使其与我们在配置卷时选择的位置相匹配。发布于 2019-04-25 03:40:02
您还可以将主机目录挂载到容器中的默认工作目录(/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
https://stackoverflow.com/questions/54983743
复制相似问题