Jmter分布式测试

现状
我们单台电脑由于配置(CPU、内存)问题,模拟500用户时,可能就出现卡死现象

按照一般的压力机配置,jmeter的GUI模式下(Windows),最多支持300左右的模拟请求线程,再大的话,容易造成卡顿、无响应等情况,这是限于jmeter其本身的机制和硬件配置。

有时候为了尽量模拟业务场景,需要模拟大量的并发请求,这个时候单台压力机就显得有心无力。针对这个情况,jmeter的解决方案是支持分布式压测,即将大量的模拟并发分配给多台压力机,来满足这种大流量的并发请求场景。

分布式测试
分布式测试原理
一台电脑作为控制机(Controller),其它电脑做为执行机(Agent);
执行机启动一个服务,控制机连接该服务从而控制执行机
执行时,控制机会把脚本发送到每台执行机上,执行机拿到脚本后就开始执行
执行机执行时不需要启动Jmeter界面,可以理解它是通过命令行模式执行的
执行完成后,执行机会把结果回传给控制机,控制机会收集所有执行机的信息并汇总
在这里插入图片描述
需求
对百度首页进行 200 用户并发访问

可能出现的错误:./jmeter-server 本地无法启动执行机
在这里插入图片描述
解决方法:
添加参数:./jmeter-server -Djava.rmi.server.hostname=127.0.0.1
在这里插入图片描述

需求实现
执行机配置
执行机1 jmeter.properties 修改
找到 #server_port=1098 这一行,修改为 server_port=1096
找到 #server.rmi.ssl.disable=false,修改为 server.rmi.ssl.disable=true
执行 jmeter 下 bin 目录中的 jmeter-server

(py3) mering:/Users/mering/Downloads/jmeter-1/bin
$ ./jmeter-server
WARNING: package sun.awt.X11 not in java.desktop
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[192.168.56.1:60598](local),objID:[-ffd9161:173cd578f2e:-7fff, 1065818653204206517]]]

执行机2 jmeter.properties 修改
找到 server_port 这一行,修改为 server_port=1097
找到 #server.rmi.ssl.disable=false,修改为 server.rmi.ssl.disable=true
执行 jmeter 下 bin 目录中的 jmeter-server

(py3) mering:/Users/mering/Downloads/jmeter-2/bin
$ ./jmeter-server
WARNING: package sun.awt.X11 not in java.desktop
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[192.168.56.1:60598](local),objID:[-ffd9161:173cd578f2e:-7fff, 1065818653204206517]]]

控制机配置
修改控制机的 jmeter.properties 配置文件

找到 remote_hosts=127.0.0.1 修改为 remote_hosts=localhost:1096,localhost:1097
找到 #server.rmi.ssl.disable=false,修改为 server.rmi.ssl.disable=true
启动控制机图形化界面

(py3) mering:/Users/mering/Downloads/apache-jmeter-5.3/bin
$ ./jmeter.sh
================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):
   jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
   Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
================================================================================

提示
参数文件:如果使用 csv 进行参数化,那么需要把参数文件在每台执行机上拷一份且路径需要设置成一样的;
每台机器上安装的 Jmeter 版本和插件最好都一致,否则会出一些意外的问题;
执行机上 Jmeter 也许需要配置JDK环境变量;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值