JMeter分布式压测配置及实现

应用背景

一台压力机的 Jmeter 默认最大支持 1000 左右的并发用户数(线程数),再大的话,容易造成卡顿、无响应等情况,这是受限于Jmeter 其本身的机制和硬件配置(内存、CPU等);由于 Jmeter 是 Java 应用,对 CPU 和内存的消耗较大,在需要模拟大量并发用户数时,单机很容易出现 JAVA内存溢出的错误,导致测试脚本本身就有瓶颈

JMeter分布压测原理

  1. JMeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。

  2. 执行时,Controller会把脚本发送到每台Agent上,Agent 拿到脚本后开始执行,Agent执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开,它应该是通过命令行模式来执行的。

  3. 执行后,Agent会把结果回传给Controller,Controller会收集所有Agent的信息并汇总。

  • 分布式压测原理流程图如下

  • JMeter分布式压测配置及实现_第1张图片

环境配置及搭建

  • 环境准备:jdk安装,JMeter安装(控制机和代理机jdk和jmeter版本必需保持一致,否则容易有兼容性问题;最好控制机jmeter直接拷贝给agent)

  • 代理机Agent配置

  1. 在agent设备(电脑B)的 JMeter 的bin目录下,找到jmeter.properties文件,编辑该文件,将agent设备(电脑B)的地址写入该文件,如:修改:remote_hosts=172.20.10.4

JMeter分布式压测配置及实现_第2张图片

  2.在该文件修改 server.rmi.ssl.disable=true

JMeter分布式压测配置及实现_第3张图片

  3.在 JMeter 的bin目录下,找到jmeter-sever文件,编辑该文件,将本机(电脑B)得ip地址写入该文件

JMeter分布式压测配置及实现_第4张图片

  4.配置完了启动jmeter-sever.bat

JMeter分布式压测配置及实现_第5张图片

执行后窗口显示为本机ip地址,且无报错信息基本就配置完毕了

如显示接口不是配置文件配置的本机ip,则需要在网络共享中心的更改适配器配置,建议仅保留一个本接口的网络连接,其他网卡都禁用,这样就不会出现控制机连接agent机器时连接到别的网卡ip的情况。

JMeter分布式压测配置及实现_第6张图片

  • 控制机Controller配置

  1. 在控制机(电脑A)的 JMeter 的bin目录下,找到jmeter.properties文件,编辑该文件,将agent设备(电脑B、电脑C)的地址均写入该文件,如:修改:remote_hosts=172.20.10.6,10.182.71.227,172.20.10.4(若想把管理机也当做施压机加上管理机的IP即可)

JMeter分布式压测配置及实现_第7张图片

  2.在该文件修改 server.rmi.ssl.disable=true

JMeter分布式压测配置及实现_第8张图片

  3.在 JMeter 的bin目录下,找到jmeter-sever文件,编辑该文件,将本机控制机(电脑A)得ip地址写入该文件

JMeter分布式压测配置及实现_第9张图片

  • 控制机jmeter调试调用agent设备是否成功

agent设备jmeter文件夹下bin目录下执行文件jmeter-sever.bat文件;

控制机jmeter界面打开,点击运行-远程启动,选中对应得agent设备,点击执行

JMeter分布式压测配置及实现_第10张图片

如下图所示,脚本执行成功,且对应agent设备bat文件执行窗口显示对应得执行开始及结束记录,则控制机调用agent设备成功

JMeter分布式压测配置及实现_第11张图片

你可能感兴趣的:(性能测试,压力测试,jmeter,分布式,java)