JMeter 分布式压测是指使用多台机器协同工作,对被测系统进行大规模的并发测试。这种方案可以有效提高测试效率和覆盖面,并能够更好地模拟真实用户场景。JMeter 分布式压测需要一个 Master 节点来控制整个测试过程,以及多个 Slave 节点来执行真正的压测任务。
下面是使用 JMeter 进行分布式压测的基本步骤:
1. 在 JMeter 主节点和从节点上,安装 Java 和 JMeter(配置环境变量),并确保版本相同。
2. 在 JMeter 主节点上,修改 jmeter.properties 文件。
将 remote_hosts 修改为从节点的 IP 地址(10.16.28.45),多个 IP 地址之间用逗号隔开。例如:
remote_hosts=10.16.28.45
将server.rmi.ssl.disable的值从false改为true,并去掉注释。
server.rmi.ssl.disable=true
3. 在 JMeter 从节点上,修改 jmeter.properties 文件。
将server.rmi.ssl.disable的值从false改为true,并去掉注释。
server.rmi.ssl.disable=true
4. 在每个从节点上启动JMeter服务
使用终端窗口导航到JMeter的bin目录,并执行以下命令以启动JMeter服务:
./jmeter-server -Djava.rmi.server.hostname=10.16.28.45
这将启动从节点JMeter服务并等待来自主控机的远程连接。
5. 主节点启动测试
jmeter -n -t script/XX.jmx -l result/XX.jtl -r >>resulttmp.txt
# -n 表示non gui mode 非图形化模式
# -t testplan 后跟要运行的jmeter脚本路径和脚本名称
# -l 指定生成测试结果的保存文件,jtl 文件格式
# -r 代表启动所有的slave机器
# -R 指定某些slave机器参与测试,多个slave机器参与测试时IP中间用逗号分隔。-R 10.16.28.45代表从节点10.16.28.45参与压测
6. 查看测试结果:在 Master 节点上,可以通过查看 Summary Report 或者 Aggregate Report 等 Listener 来获得整个测试过程中的各项指标,如响应时间、吞吐量等。
需要注意的是,在 JMeter 分布式压测过程中,要确保主节点和从节点之间网络连接畅通,并且测试计划中所有的资源(例如 CSV 文件、图片等)都能够被从节点访问到。此外,也需要根据场景需要,合理地调节线程数、Ramp-up 时间等参数,以便更好地模拟真实用户场景。
在JMeter分布式压测中,主节点不会参与实际的压测任务。主节点只负责控制整个测试过程和收集从节点的结果数据。因此,即使主节点没有配置为从节点,它也可以正常地运行并控制其他从节点执行压测任务。然而,如果主节点不是一台强大的机器,或者其网络带宽较小,可能会影响分布式压测的效果。因此,在选择主节点时,应考虑到其硬件配置和性能,以确保能够正常支持测试过程。
总之,JMeter 分布式压测是一种高效、可扩展的性能测试方案,可以极大地提高测试效率和覆盖面。如果你需要对系统进行大规模并发测试,那么使用 JMeter 分布式压测可能会是一个不错的选择。
问题记录:从节点上使用jmeter-server启动JMeter服务存在报错:
[root@cwcsb-gxcwy832-xnce-2 bin]# ./jmeter-server Created remote object: UnicastServerRef2 [liveRef: [endpoint:[127.0.0.1:46793](local),objID:[-3a0d6878:188d801b18c:-7fff, 4070195176839812321]]] Server failed to start: java.rmi.RemoteException: Cannot start. cwcsb-gxcwy832-xnce-2 is a loopback address. An error occurred: Cannot start. cwcsb-gxcwy832-xnce-2 is a loopback address.
解决方法:启动jmeter-server,指定本地IP,执行以下命令即可成功启动
[root@cwcsb-gxcwy832-xnce-2 bin]# ./jmeter-server -Djava.rmi.server.hostname=10.16.28.45 Created remote object: UnicastServerRef2 [liveRef: [endpoint:[10.16.28.45:37586](local),objID:[16773c3e:188dcdb8c0d:-7fff, -3341504594847185951]]]
启动测试:主节点启动测试,从节点响应测试启动:
[root@cwcsb-gxcwy832-xnce-2 bin]# ./jmeter-server -Djava.rmi.server.hostname=10.16.28.45 Created remote object: UnicastServerRef2 [liveRef: [endpoint:[10.16.28.45:37586](local),objID:[16773c3e:188dcdb8c0d:-7fff, -3341504594847185951]]] Starting the test on host 10.16.28.45 @ Wed Jun 21 15:29:43 CST 2023 (1687332583692) Finished the test on host 10.16.28.45 @ Wed Jun 21 15:31:24 CST 2023 (1687332684876)
本文来自博客园,作者:查拉图斯特拉面条,转载请注明原文链接:https://www.cnblogs.com/n00dle/p/17494461.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/159997.html