Jmeter分布式压力测试

1、场景

在做性能测试时,单台机器进行压测可能达不到预期结果。主要原因是单台机器压到一定程度会出现瓶颈。也有可能单机网卡跟不上造成结果偏差较大。

例如4C8G的window server机器,使用UI方式,最高压测在1800并发(RT 20ms以内)左右。如果对于XML文件进行解析,更容易吃CPU,并发数会更低。

当单台机器不能支持更大的并发时需要考虑分布式压力测试。

2、原理

原理图如下:

  • Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)
  • master通过GUI界面启动slave机器,将jmeter压测发送给每台启动的slave
  • slave启动jmeter-server,获得脚本后开始执行
  • slave执行完成后将结果传回给master,master收集整合显示

3、注意事项

1.关闭防火墙和杀毒软件,开放端口

$ service firewalld stop

$ service iptables stop

2.所有机器最好在同一个子网上

可以使用ping命令进行检查

3.所有机器中最好使用相同版本的jdk和jmeter

4.禁用SSL

如果在启动jmeter-server.bat 时出现如下错误,则SSL没有禁用

禁用方法,jmeter.properties文件下查找server.rmi.ssl.disable,取消注释,并将其值修改为true:server.rmi.ssl.disable=true

4、slave配置

在slave机器中,启动bin目录下的 jmeter-server.bat,如下图:

启动后的ip和port为:192.168.10.131:50043

当然启动时端口也是可以自定义的。

在slave机器的 Jmeter的bin目录下,修改jmeter.properties文件下的server_port和server.rmi.localport两个配置项。比如修改为1000:

server_port=4444

server.rmi.localport=4444

启动后的ip和port为:192.168.10.131:4444

5、master配置

在master机器的 Jmeter的bin目录下,修改jmeter.properties文件下的remote_hosts项,添加IP和port,多台slave的情况下,使用逗号(,)进行分割。

完成配置后启动master机器上的 jmeter。

在Run>>Remote Start下可以查看配置的remote_hosts项。

注意:如果jmeter已经启动,修改jmeter.properties文件后需要重启jmeter配置项才可以生效。

6、脚本执行

新建一个线程组,线程组下添加一个debug sampler调试采样器和一个树结构监听器

将debug sampler重新命名为:${__machineIP()} ,该函数的意思是获取执行机器的ip

通过菜单栏的开始按钮运行脚本

通过 Run>>Remote Start>>192.168.10.131:4444运行脚本

如果要同时在所有的 slave 机器上运行,则通过 Run>>Remote Start All 执行脚本

**注意:**在分布式执行中,master向slave发送测试计划时不会将外部文件一起发送。所以在测试中如果使用csv等外部文件进行参数化,则需要把参数文件在每台slave上拷贝一份,最好都放置在bin目录下,因为Jmeter会直接从bin目录下查找。

相关推荐
狮恒6 小时前
OpenHarmony Flutter 分布式数据管理:跨设备数据同步与一致性保障方案
分布式·flutter·wpf·openharmony
ZePingPingZe9 小时前
浅谈接口幂等性、MQ消费幂等性
分布式·java-rocketmq
测试人社区-千羽9 小时前
48小时攻克测试岗——闪电面试极速备战手册
人工智能·python·opencv·面试·职场和发展·单元测试·压力测试
Wang's Blog9 小时前
RabbitMQ: 高并发外卖系统的微服务架构设计与工程实现
分布式·微服务·rabbitmq
hgz071010 小时前
JMeter性能压测执行与Linux环境部署
java·linux·jmeter
墨香幽梦客13 小时前
合规视角的数据安全与隐私:HIPAA等法规的架构内生化实践
java·分布式·微服务
znhy605813 小时前
分布计算系统
网络·分布式
狮恒13 小时前
OpenHarmony Flutter 分布式设备发现与连接:无感组网与设备协同管理方案
分布式·flutter·wpf·openharmony
Wang's Blog15 小时前
RabbitMQ: 消息交换机制的核心原理与实践指南之基于 AMQP 协议的系统设计与工程实现
分布式·rabbitmq
狮恒15 小时前
OpenHarmony Flutter 分布式音视频:跨设备流传输与实时协同交互方案
分布式·flutter·wpf·openharmony