jmeter分布式压测

需求

现在项目需要对某个接口进行并发访问,测试服务器的抗压处理批量请求能力

现况

  • 单台机器由于配置(CPU、内存)问题,模拟500用户时,可能就出现卡死现象
  • 按照一般的压力机配置,jmeter的GUI模式下(Windows),最多支持300左右的模拟请求线程,再大的话,容易造成卡顿、无响应等情况,这是限于jmeter其本身的机制和硬件配置。
  • 有时候为了尽量模拟业务场景,需要模拟大量的并发请求,这个时候单台压力机就显得有心无力。针对这个情况,jmeter的解决方案是支持分布式压测,即将大量的模拟并发分配给多台压力机,来满足这种大流量的并发请求场景。

分布式压测原理

1,一台电脑作为控制机(Controller),其它电脑做为执行机(Agent);
2,执行机启动一个服务,控制机连接该服务从而控制执行机;
3,执行时,控制机会把脚本发送到每台执行机上,执行机拿到脚本后就开始执行;
4,执行机执行时不需要启动Jmeter界面,可以理解它是通过命令行模式执行的;
5,执行完成后,执行机会把结果回传给控制机,控制机会收集所有执行机的信息并汇总;


分析

执行方案

1,1台电脑(控制机)分发执行任务
2,N台电脑(执行机)执行任务
3,在执行机上启动监听服务程序
4,在控制机上启动运行
5,测试计划->聚合报告

实现方案

1-执行机-jmeter.properties设置

打开执行机下jmeter安装文件下的bin目录:jmeter.properties, 找到server_port
server_port=1099. 1099为执行机自定义端口号
server.rmi.ssl.disable=false改为server.rmi.ssl.disable=true
注意⚠️:
1,自定义的端口号,要选择未被占用的端口号
2,N台执行机分别设置


server_port修改

server.rmi.ssl.disable修改

2-控制机-jmeter.properties设置

打开控制机下jmeter安装文件下的bin目录:jmeter.properties, 找到remote_hosts
remote_hosts=127.0.0.1:1099,127.0.0.1:1100
server.rmi.ssl.disable=false改为server.rmi.ssl.disable=true
注意⚠️:
1,多个执行机的ip间要用全英文的半角逗号隔开


remote_hosts修改

远程启动方式

一些注意事项

  • N台执行机同时接受控制机脚本去执行然后反馈给控制机,所以线程数设置=(想要压多少/N);
  • 修改完端口要重启Jmeter;
  • 参数文件:如果使用csv进行参数化,那么需要把参数文件在每台执行机上拷一份且路径需要设置成一样的;
  • 每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 为什么要做分布式压测? 在进行性能压测的时候,往往需要很大的并发量。但是一台电脑由于硬件方面的原因,支持的并发数并...
    wenshuang_he阅读 3,715评论 0 2
  • 简单来说就是,多台机器同时安装jmeter,选择一台机器作为调度机,其他作为压力机。进行相应的配置后,就可以用调度...
    Kevin_Luo阅读 4,932评论 0 2
  • Jmeter的集群模式可以让我们将多台机器联合起来一起产生负载,从而弥补单台机器负载生成能力不足的问题。 假设我们...
    yywfy的昵称阅读 4,852评论 0 0
  • 一、分布式压测 1.分布式压测总体结构 选择一台机器作为调度机(master),其他的机器作为测试执行的执行机(...
    Blank_刘阅读 4,606评论 0 2
  • 本文只讲jmeter分布式压测怎么在Linux环境下配置:使用分布式压测,是因为单个压测机并发到不到系统要求,所以...
    hao0_0阅读 4,744评论 0 0