Jmeter压力测试之分布式测试自定义slave端口

简介: Jmeter压力测试之分布式测试自定义slave端口

jemter本身是开源的。自己软件内存和性能是有限制的,再加上电脑的CPU或者内存原因,有时候压力测试时模拟的线程数过多(几千几万)会导致软件卡死或者反应很慢(内存溢出)。单纯只使用jemeter来进行压测时,最好是使用分布式压测,就是一台master调度机和多台slave执行机。在执行时调度机会将请求脚本发给每一个执行机,执行机就会运行脚本,将结果传给调度机。

注意事项:

1、调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以master自身会有消耗,所以最好是单独用一台机器作为master调度机。

2、参数文件:如果使用参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。

3、每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。

 

 

我在实际过程中使用这种方法,也使用过阿里云的PTS(要花钱),在本地的Jmeter上调试好了将脚本和参数文件等上传到阿里云的PTS-Jmeter原生压测中就可以了,不过不同价格套餐的会限制上传的文件数量。

 

一、Jmeter分布式执行原理:

  1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。

  2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,是通过命令行模式执行的。

  3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。

 

二、执行机(slave)配置:

  1、slave机上需要安装Jmeter的,并且版本或者插件一定要和master上的一致。

  2、添加环境变量:JMETER_HOME=D:\work\apache-jmeter-4.0,此处为自己电脑上Jmeter的路径。

  3、启动bin目录下的:jmeter-server.bat.


  4、启动后IP和端口会在master里配置时用到。就是上图框框里的。IP就是slave机器IP,端口默认是1099,端口也可以自定义,这里我自定义为1888。

  5、多台slave的话,就在每台slave上都执行步骤1-4即可。

 

 微信图片_20191118164059.png (962×322.png

三、自定义端口:

  1、slave:在slave机的Jmeter的bin目录下,找到jmeter.properties文件,修改如下两个配置项,比如我这里修改为1888:

      server_port=1888

      server.rmi.localport=1888

 

  2、启动slave机上的jmeter-server.bat

 

  3、master:修改master机器的jmeter.properties文件:

      remote_hosts=192.168.3.103:1888

 

  4、重启jmeter.bat,选择运行-->远程启动:就可以看到端口已经变了

jmeter_salve.png (938×312).png

四、调度机(master)配置:

1、脚本:先录制或者自己配置请求。

 

2、找到Jmeter的bin目录下jmeter.properties文件,修改如下配置,IP和Port是slave机的IP以及自定义的端口:

        remote_hosts=192.168.3.103:1888

 如果有多台slave,每个端口后面就用","隔开。比如:192.168.3.103:1888,192.168.3.120:1009

3、打开Jmeter,选择运行,有远程启动、远程全部启动两个选项,如果想要指定某些执行机,就选择远程启动,点击指定的IP。

4、我这里只有一个,所以选择远程启动和远程全部启动是一样的;选择远程启动-->192.168.3.103:1888

 

 

 

 

 

 

相关文章
|
11月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
2116 10
|
12月前
|
NoSQL Java Redis
基于Redisson和自定义注解的分布式锁实现策略。
在实现分布式锁时,保证各个组件配置恰当、异常处理充足、资源清理彻底是至关重要的。这样保障了在分布布局场景下,锁的正确性和高效性,使得系统的稳健性得到增强。通过这种方式,可以有效预防并发环境下的资源冲突问题。
492 29
|
数据可视化 测试技术 API
JMeter、Apipost 与 Postman 的 API 测试对比:为什么 APIPost 是更聪明的选择
API测试如同筹备一场晚宴,选对工具至关重要。JMeter功能强大但上手难,适合专业用户;Postman简单易用,但在复杂场景和团队协作中表现有限;而Apipost则是一款智能高效的“厨房神器”。它性能测试轻松、结果清晰、学习门槛低,并且能一键集成CI/CD流程。对于追求效率与便捷的团队而言,Apipost无疑是更优选择,让API测试如同五星大厨烹饪般丝滑流畅。
|
缓存 网络协议
Jmeter如何对UDP协议进行测试?
`jmeter-plugins`是JMeter的插件管理器,用于管理和组织所有插件。访问[官网](https://jmeter-plugins.org/install/Install/)下载并放置于`lib/ext`目录下,重启JMeter后可在“选项”中看到插件管理器。
661 1
Jmeter如何对UDP协议进行测试?
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
651 3
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
740 1
|
XML JSON 网络协议
【TCP/IP】自定义应用层协议,常见端口号
【TCP/IP】自定义应用层协议,常见端口号
685 3
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【10月更文挑战第1天】告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
529 4
|
安全 Java 应用服务中间件
如何将Spring Boot应用程序运行到自定义端口
如何将Spring Boot应用程序运行到自定义端口
1723 0
|
11月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
755 2