Jmeter 分布式压测

发布时间 2023-08-16 09:46:07作者: HinaJin

****jmeter 分布式
1.windows 做控制机 controller,linux 做压测机 agent;
2.复制一份 jmeter 工具包做slave/agent  ,修改 jmeter 配置:

jmeter.properties -> server_port=1099
server.rmi.localport=1099
server.rmi.ssl.disable=true
3.复制到目标 linux 机器,目录权限 chmod -R 755 JmeterFolderName

启动meter-server 文件:./jmeter-server
不行则使用./jmeter-server -Djava.rmi.server.hostname=agent IP

4.复制一份jmeter 做master/controller:
jmeter.properties -> server.rmi.ssl.disable=true
remote_host=agentIP1,agentIP2
mode=Standard --默认只有错误信息才在查看结果树显示,这个前面的注释去掉后,显示所有;
5.cmd -> jmeter 命令 启动jmeter -> 点击 run 菜单-> remote start 中有配置的远程agent IP,运行则选择 remote start alls 即可

ps.
1.并发用户数 = controller 配置用户数据 * agent 机器数。
2.单独的 controller 可以做单接口测试;直接运行jmeter  运行图标,能做本地接口测试;
3.stepping thread group 不适合分布式(某视频上说的);
4.jmeter 工具,不要放在阿里云服务器的 conf 目录下,jmeter 目录下jaas.conf 文件会影响阿里云的启动;
阿里云启动时,会扫描所有 conf 目录下的 .conf 文件;

5.阶梯压测本人使用 bzm-Concurrency Thread Group:

以模仿递增式并发(只能递增不能递减),并可设置递增次数、递增时长、到达目标递增数量保持时长等等;
Target Concurrency:目标并发(总线程数)
Ramp Up Time:加速时间(总加速时长)
Ramp-Up Steps Count:加速步骤计数(总加速/递增次数)
Hold Target Rate Time:保持目标速率时间(到达总线程数后持续时长)
Time Unit:时间单位(分钟或者秒)
Thread Iterations Limit:线程迭代次数限制(循环次数)
Log Threads Status into File:将线程状态记录到文件中(将线程启动和线程停止事件保存为日志文件);

阶梯加压线程组需要和 监听器 Active Threads Over Time (单位时间内活动的线程数)结合起来。这样能看到动态的阶梯加压效果;