文章目录
一、前言
二、Jmeter分布式 实战案例
1、Jmeter分布式 简介
2、Jmeter分布式 官网介绍
3、Jmeter分布式 前置条件
4、Jmeter分布式 配置修改
4.2 Jmeter Master 主控制机器 配置修改
4.3 Jmater Slave 从执行机器 配置修改
5、Jmeter分布式 实战操作
Jmeter分布式 GUI操作说明
5.1 Jmeter分布式 Master机器
5.2 Jmeter分布式 Slave机器
5.3 Jmeter分布式 Grafana性能数据报告
5.4 Jmeter + InfluxDB + Grafana 配置教程
6、Jmeter分布式 实战总结
三、Jmeter分布式 实战问题
1、Jmeter分布式 实战问题描述
2、Slave从服务器 jmeter.log 问题分析定位
3、Jmeter分布式性能测试之 "no such object in table"
4、Jmeter分布式部署其他问题
四、结束语
单台Jmeter机器比如200线程,如何实现更多线程呢?加机器,加机器,加机器……
Jmeter分布式压测,通过Master Jmeter去控制多台Salve Jmeter的机器,可实现单台机器控制多台机器。
一图胜千言.png
“学说唱跳逗”
一主多从
一个将军,双拳难敌四手,能一个打十个吗?
一个将军,一群小兵,小的冲去“砍杀”对方服务器,把ta打下来
使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持800并发),单台电脑的配置(CPU和内存)可能无法支持,可使用Jmeter提供的分布式测试的功能。
流程
1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。
3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
Distributed Testing
https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html
官网介绍文档
英文版
This short tutorial explains how to use multiple systems to perform stress testing. Before we start, there are a couple of things to check.
1、the firewalls on the systems are turned off or correct ports are opened.
2、all the clients are on the same subnet.
3、the server is in the same subnet, if 192.x.x.x or 10.x.x.x IP addresses are used. If the 4、server doesn't use 192.xx or 10.xx IP address, there shouldn't be any problems.
5、Make sure JMeter can access the server.
6、Make sure you use the same version of JMeter and Java on all the systems. Mixing versions will not work correctly.
7、You have setup SSL for RMI or disabled it.
In this tutorial we use GUI Mode just for demonstration. In real life you should use CLI mode (NON GUI) to start your load test
中文版
本简短教程介绍如何使用多个系统执行压力测试。在我们开始之前,有几件事需要检查。
1、系统上的防火墙已关闭或正确的端口已打开。
2、所有客户端都在同一子网上。
3、如果为192,则服务器位于同一子网中。x、 x.x或10。x、 使用x.x IP地址。如果服务器不使用192。xx或10。xx IP地址,应该没有问题。
4、确保JMeter可以访问服务器。
5、确保在所有系统上使用相同版本的JMeter和Java。混合版本将无法正常工作。
6、您已为RMI设置或禁用SSL。
在本教程中,我们使用GUI模式只是为了演示。在现实生活中,您应该使用CLI模式(非GUI)来启动负载测试
实战版
1、关闭防火墙防护,网络可以相互访问(ping)
2、部署的机器做到 Java JDK版本、Jmeter版本一致,系统OS环境一致。兼容问题
3、Master、Salve(主从)均需修改配置文件\apache-jmeter-5.4.1\bin\jmeter.properties
4、不同平台或环境遇到的报错问题,请查看日志\apache-jmeter-5.4.1\bin\jmeter.log
4.1 实战案例环境说明
环境 | Master | Savle |
OS | Windows | Centos |
Java | JDK1.8.0_202 | JDK1.8.0_252 |
Jmeter | Jmeter5.4.1 | Jmeter5.4.3 |
ip | 10.22.34.99 | 192.168.242.129 |
PS:环境不一致会遇到较多问题,高版本兼容低版本,低版本兼容高版本,还有字符串编码问题等,实际部署时请严格按照上述第3点实战版检查,避免重复无用功。
修改配置文件:jmeter.properties
# Set this if you don't want to use SSL for RMI
server.rmi.ssl.disable=true
# Remote Hosts - comma delimited
remote_hosts=192.168.242.129
PS:Master配置时可不配置Salve服务端的端口号;若需要添加多个用英文逗号“,”间隔
1、修改配置文件:jmeter.properties
# Set this if you don't want to use SSL for RMI
server.rmi.ssl.disable=true
2、启动Jmeter Slave服务器
方法一,直接调用Jmeter服务
jmeter-server
方法二,Jmeter服务指定ip
jmeter-server -Djava.rmi.server.hostname=192.168.242.129
3、启动从服务器成检查
启动服务关键点说明
192.168.242.129:46040
ip地址
prot端口号
倘若上面上面部署一切正常,未见其他任何问题配置到此结束呢,开始实战了
Master主控制的Windows机器启动Jmeter并点击 Run > Remote State 查看从配置机器。
GUI操作说明
英文 | 中文 |
Remote Start | 远程启动 |
Remote Start All | 远程启动所有 |
Remote Stop | 远程停止 |
Remote Stop All | 远程停止所有 |
Remote ShutDown | 远程关机 |
Remote ShutDown All | 远程关机所有 |
Remote Exit | 远程退出 |
Remote Exit All | 远程所有 |
查看结果树
被控制启动和完成日志打印
Jmeter进行分布式性能测试时执行过程会将性能测试数据插入InfluxDB时序数据库,Grafana直接读取数据库即完成性能测试数据汇总展示。
Grafana数据看板报告
Jmeter配置
详细配置请参考
https://blog.csdn.net/qq_25305833/article/details/122178613
性能测试 性能测试实战(五)Jmeter + influxDB + Grafana Jmeter性能测试环境搭建 influxDB 序列数据库 Grafana 格拉法拉 度量分析与可视化平台_Benjamin CSDN博客-CSDN博客
1、主从配置,Master控制Salve节点服务器,Jmeter-Server服务器
2、脚本下发,有Master主服务下发至Salve从服务器
3、数据汇总,Jmeter自带报告统计或jtl或Html报告
4、数据看板,Jmeter + influxDB + Grafana
5、配置文件:jmeter.properties
6、日志文件:jmeter.log
实际进行Jmeter分布式部署时,可能会遇到很多配置五花八门奇怪的问题,列举常规的问题解决说。请注意查看上述 二 3、4 的红色文字说明。
主要列举 Linux调用Windows中的不行,一开始采用是这个方案,失败了很多次,最终得出结论版本号不一致。
问题描述:Jmeter Master和Salve连接成功并下发任务提示执行后,无性能测试结果返回。或 Jmeter 从服务器执行成功后未回调主服务器,主服务器卡执行结果。
解答:高版本控制低版本不兼容,字符串编码不兼容。请检查环境配置。
提示信息
no such object in table
Windows截图
解决方法:去掉配置文件jmeter.properties中端口号
# Remote Hosts - comma delimited
remote_hosts=192.168.242.129
#remote_hosts=localhost:1099,localhost:2010
Nothing. Request a search
实战过程中遇到的问题远不止此,加油,你可以的。
真正的勇士
如果觉得文章写不错,那就点个赞,点个收藏吧。
可关注微信公众号,后期有推文