jmeter使用_JMeter 使用docker进行分布式压力测试

efa2856220b500d2cc74b8ae809086c2.gif

什么是Docker?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制。

Docker架构

104c86538cc8101c07b2ac4701425cc0.png

Docker的优点

  • 快速,一致地交付您的应用程序

  • 响应式部署和扩展

  • 在同一硬件上运行更多工作负载

更多Docker介绍参考下面链接https://www.runoob.com/docker/docker-tutorial.htmlhttps://www.docker.com/get-started https://www.docker.com/products/docker-desktop

JMeter 分布式压力测试

我们在做JMeter 分布式负载测试时,需要我们配置1个master和N个slave来模拟生成大量负载。每一个slave 都需要安装相同版本的java 和 JMeter。并打开指定的端口并运行JMeter服务器,准备就绪并等待主服务器发送指令。以前需要手动安装配置master 和 所有slave,三台五台还可以手动配置,如果10台20台甚至于上百台呢?接下来我们使用docker 轻松配置master 和 N个slave,即便是以后需要升级java或者JMeter版本也可以轻松配置。
  • 使用Dockfile创建JMeter docker 镜像(0079759c3ea8953c69fdd9a50d7cb0b5.png保密0079759c3ea8953c69fdd9a50d7cb0b5.png)

才不是保密cf609401dc6e071590db9f54a758df58.png,我已经将三个Docker file文件内容放到docker hub上。而且想单独写篇文章介绍一下docker和docker file创建镜像。(容我三思)

  • 使用Docker hub 使用已经创建好的JMeter docker镜像

(0079759c3ea8953c69fdd9a50d7cb0b5.png镜像千千万,还是我创建的镜像最好0079759c3ea8953c69fdd9a50d7cb0b5.png)

  1. Docker hub 上拉取3个镜像

    docker pull xuhongwang/jmeter-base:v1

    docker pull xuhongwang/jmeter-master:v1docker pull xuhongwang/jmeter-slave:v1拉取完成后运行 docker imageseee23737e34a7512899c9bbb623e75a8.png
  2. 创建运行Master容器

    docker run -dit --name master xuhongwang/jmeter-master:v1 /bin/bash

    a5a6ca8b3a34c2dc3977fc3fc03bf6c2.png

    查看所有容器 docker ps -a

    3f316edfe0ada3f9aaa5aca25d1e9bd1.png

  3. 创建运行Slave容器

    docker run -dit --name slave01 xuhongwang/jmeter-slave:v1 /bin/bash

    docker run -dit --name slave02 xuhongwang/jmeter-slave:v1 /bin/bash

    docker run -dit --name slave03 xuhongwang/jmeter-slave:v1 /bin/bash

    docker run -dit --name slave04 xuhongwang/jmeter-slave:v1 /bin/bash

    2337513a2064ff9dc6589e939a81e01d.png

    查看所有容器 docker ps -a

    1efc8695726c857878b4ca3700dcae4b.png

  4. 获取所有容器IP地址

    需要在git bash 下运行

    docker inspect --format '{{ .Name }} => {{ .NetworkSettings.IPAddress }}' $(docker ps -a -q)

    d86775152bfb1fd704c4762524cb882f.png

  5. 拷贝测试脚本

    因为镜像里面是基础架构并不含有测试脚本,所以我们需要把需要测试的脚本拷贝到master容器中。

    docker cp jmeterScripts 5be5d95cea33:/

    877100eaa8e017dad90141e2cfca0ec2.png

  6. 运行测试

    连接master容器并执行jmeter命令

    jmeter -n -t "jmeterScripts/SampleTest.jmx" -R 172.17.0.3,172.17.0.4,172.17.0.5,172.17.0.6 -l "/Result.csv" -e -o "/Result" -Dserver.rmi.ssl.disable=true

    4debb3cd280f8af8adf96a8e25ca4606.png

  7. 查看测试结果

    查看master 容器中的生成结果

    347c16c907789c514044b6d140cc77a9.png

    将测试结果拷贝到宿主机上查看结果

    acdd69beeac432782759b8783d595bb5.pngd405f0e404c20ba8db0873c28b5e57eb.png

    453aa3b86ba9713237655943a3c5a167.png

下集预告

docker的跨主机网络访问即不同宿主机上的容器之间的通信(字太小,因为我不会呀,低调不想引起注意而已)

To follow the path: look to the master, follow the master, walk with the master, see through the master, become the master.



关注微信公众号:BecomeMaster免费获取最新测试文章,技术,教程和视频

e93164e41670c101e2d3096647f9ac5f.png

进行docker jmeter分布式压测时,如果出现错误,可以按以下步骤进行排查和解决: 1. 首先,检查各台slaver机器是否按照要求安装了相同版本的jdk和jmeter,并且在相同的目录下安装。确保各机器的环境配置一致。 2. 确认/etc/hosts的IP和hostname的映射是否正确配置,确保各机器之间可以相互通信。 3. 修改各机器的jmeter的默认内存参数,根据实际需求调整为合适的大小。这可以提高性能并减少出现异常的可能性。 4. 如果在压测过程中出现异常或错误,可以查看服务端的日志,检查是否有异常或错误信息。根据提示信息定位问题,可以根据服务端的业务架构逐层排查,直到找到发生问题的服务。 5. 对于出现的异常或错误信息,可以自行分析解决。例如,"Response code: 500"通常表示服务端出现问题。可以通过查看服务端的日志,根据提示信息来定位分析问题。对于不熟悉的错误信息,建议使用Google进行搜索,可能会找到一些可行的解决方案。 总结: 在使用docker jmeter进行分布式压测时,如果出现错误,首先要确保各机器的环境配置一致,然后检查配置文件和日志等相关信息,逐步排查问题并尝试解决。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [微服务项目容器编排docker-compose.yml、Dockerfile文件模板、相关配置文件、shell脚本](https://download.csdn.net/download/qq_45629145/88248761)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Jmeter压测思路+实操+报告分析](https://blog.csdn.net/qq_34671951/article/details/96477884)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值