使用Docker创建JMeter分布式测试基础架构
2021-10-11
跟伙计们群闲聊想到如何分布式压力测试,查阅了些资料,进行简单的实践。
(前两天才装了个ubuntu么,用上了)
在网上找到一个现成的镜像,当然如果你对docker比较熟悉的话,也可以自己做一个,现在这个直接拿来用就好了
执行下面命令获取
sudo docker run -dit --name slave01 vinsdocker/jmserver /bin/bash
查看镜像文件报错:
docker ps -a
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1": dial unix /var/run/docker.sock: connect: permission denied
问题分析:
尝试连接到 Docker 守护进程套接字时权限被拒绝
解决问题:
sudo chmod 666 /var/run/docker.sock
想要几个容器修改下名字就可以要几个,我这里先搞3个,主要是分布式压测搭建一个小框架
sudo docker run -dit --name slave02 vinsdocker/jmserver /bin/bash
sudo docker run -dit --name slave03 vinsdocker/jmserver /bin/bash
为jmeter master创建一个容器
sudo docker run -dit --name master vinsdocker/jmmaster /bin/bash
获取这些容器的ip地址
sudo docker inspect --format '{{ .Name }} => {{ .NetworkSettings.IPAddress }}' $(sudo docker ps -a -q)
在sample-test文件夹有一个测试脚本,可以测试下
单机执行脚本测试:
jmeter -n -t sample-test/sample-test.jmx
分布式执行脚本测试:在后面加上ip地址
jmeter -n -t sample-test/sample-test.jmx -R172.17.0.2,172.17.0.3,172.17.0.4
jmeter和jmeter slave都在同一台机器上运行。因此,所有系统资源容器共享,所以讲道理这样是不对的,我们应该在不同的机器上部署才行
总结:
我们的目的是使用docker创建jmeter分布式测试基础架构。使用docker创建测试基础架构并且是快的。将整个基础架构写入一个可以进行版本控制的文件中。然后,我们从文件中创建一个实例(容器)。 docker确保容器拥有所有软件和依赖项。