jmeter分布式测试

来源:互联网 发布:杭州龙席网络官网 编辑:程序博客网 时间:2024/06/03 16:14

需求

  • 单台负载机存在瓶颈:负载机性能不足(例如内存CPU不足)
  • 单台负载机存在瓶颈:网络原因(例如端口不足)
  • 业务场景需要

模型

  • slave启动后显示的端口号是回传测试结果的端口号
  • 接收Master指令和脚本的端口号默认为1099
  • 脚本中设置的并发如果是100,那么每个slave都是100并发,总并发是所有slave之和。因此jmeter无法个性化配置不同的slave压力,这点不如LR

这里写图片描述

特点

  • 真实的性能测试,不存在网络瓶颈问题
  • GUI仅限windows平台,命令行可在linux与windows
  • 测试结果保存在本地一台master上
  • 使用这台master管理多个Jmeter Engines,也叫做slave
  • 测试脚本会被master自动发送到作为负载生成器的slave,但数据文件不会

注意

  • master也可以同时作slave,但要注意负载适量
  • 所有负载生成器slave上安装相同的jmeter与jdk
  • 防火墙和杀毒软件
  • 确保所有master与slave在同一个网段或子网,没有网络延迟
  • master与slave可以是windows或linux,不必全部是同一个OS,但要开放防火墙,否则connect fail
  • 脚本使用的数据文件(比如CSV)需要单独传到每个slave,并且脚本中指定的文件路径要能够在每个slave找到该文件,常使用相对路径,较方便

步骤

windowsGUI模式

  1. 在负载生成器slave中启动jmeter-server.bat
  2. 在控制台master编辑jmeter.properties文件。remote_hosts=根据实际情况添加slave的IP地址与端口号,逗号隔开,如图。
    这里写图片描述
  3. 在master端,bin目录下双击jmeter.bat,启动jmeter
  4. 远程运行,如图可以使用debugSampler进行调试
    这里写图片描述

命令行模式

  1. 此模式下无论windows还是linux都无需修改jmeter.porperties,推荐!
  2. 在所有slave端,bin目录下启动jmeter-server(没有点sh结尾):./jmeter-server如图,其中端口是回传数据端口,可以修改#server.rmi.localport=4000这个端口来调整,但通常无需调整
    这里写图片描述
  3. 在master端执行你已调试好的脚本,以windows为例,命令如下:
    这里写图片描述
  4. 在master端执行你已调试好的脚本,以linux为例,命令如下:
    这里写图片描述
  5. slave的响应界面如下:
    这里写图片描述

比较

  • 与LoadRunner的异同:
    1. 都可以实现分布式负载,各有优劣
    2. 都支持windows和linux下的slave,但master,jmeter跨平台,LR不
    3. LR可以指定每个slave生成不同数量的并发用户,jmeter不可
    4. jmeter中测试计划使用的数据文件不会随脚本发送到slave,而LR可以通过选择纳入LR管理一起发送到远端slave
原创粉丝点击