Jmeter分布式压测

Jmeter进行性能测试时,windows非常耗费CPU和内存,单台电脑运行大量并发时容易卡死无法支撑数以万计的并发场景。针对这个情况,jmeter提供了分布式压测的解决方案,将模拟并发分发给多台机器并同时向目标机器生产大量并发请求,达到几万的并发访问,最终由管理机汇总所有负载机的测试结果。

 

1、前提准备

  • 准备一台管理机和多台负载机,一主(master)多从(salver)
  • 管理机和负载机都处于同一子网
  • 管理机和负载机的JDK、Jmeter版本一致

测试使用jdk版本是1.8.0_201(cmd输入“java -version”查看jdk版本)

jmeter版本是jmeter5.5。Jmeter历史版本下载地址https://archive.apache.org/dist/jmeter/binaries/ 

 

2、负载机的配置
2.1 自定义端口。进入jmeter安装目录下,用记事本打开文件/jmeter/bin/jmeter.properties

  • 查询“#server_port=1099”在下方添加一行“server_port=1201”

  • 查询“#server.rmi.ssl.disable=false”在下方添加一行“server.rmi.ssl.disable=true”

2.2 负载机双击“jmeter.server.bat”重启服务使端口生效

启动服务出现本机ip端口表示配置成功了(此弹框不用关闭,保持后台运行)

2.3 如果启动服务报错“Server failed to start:java.rmi.server.ExportException: Listen failed on port:1201”

负载机需要检查/jmeter/bin/jmeter.properties文件,这行代码“server.rmi.ssl.disable”是否为true

 

3、管理机的配置

3.1 配置所有机子。进入jmeter安装目录下,用记事本打开文件/jmeter/bin/jmeter.properties

  • 查询"Remote Hosts - comma delimited"在下方添加负载机id和端口“remote_hosts=xx.xx.xx.xx:1201,xx.xx.xx.xx:1202”
  • 查询“#server_port=1099”在下方添加一行“server_port=1202”

  

  • 查询“#server.rmi.ssl.disable=false” 在下方添加一行“server.rmi.ssl.disable=true”,保存文件退出

  

3.2 管理机双击“jmeter.server.bat”重启服务使端口生效

出现本机ip表示配置成功了(此弹框不用关闭,保持后台运行)

3.3 启动jmeter软件,工具栏->运行->远程启动,就能看到所有负载机ip了

 

4、管理机运行

4.1 运行步骤

  • 管理机将测试脚本发送给负载机,保证负载机能正常运行测试脚本
  • 负载机,保持电脑开机联网,jmeter不用打开也能正常调用
  • 管理机,在jmeter脚本添加【聚合报告】来查看所有负载机执行情况
  • 管理机,可以修改线程数、循环次数、接口启用禁用等,分布式压测时会根据管理机最新的脚本运行
  • 管理机工具栏->运行->远程所有启用,就能远程调用所有负载机执行脚本了

4.2 如果管理机远程启动所有,弹出报错“java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)”

则管理机需要检查/jmeter/bin/jmeter.properties文件,这行代码“server.rmi.ssl.disable”是否为true

4.3 如果管理机远程启动所有,弹出某个ip连接拒绝报错“java.net.ConnectException: Connection refused: connect”

该ip电脑进入jmeter安装目录下,双击“/jmeter/bin/jmeter.server.bat”出现弹框后不要关闭此弹框,管理机远程启动所有就不会连接拒绝报错了。后边分布式压测此弹框也会持续输出Starting...Finished

 

6、查看运行结果

线程组设置的线程数=2,循环次数=2

分布式压测调用2台负载机,最终运行结果为2*2*2=8次

聚合报告,汇总了所有机子请求的执行情况

 

posted @ 2024-01-12 15:22  dabeen  阅读(573)  评论(0编辑  收藏  举报