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

 

 

 

 

 

 

相关文章
|
4月前
|
测试技术 Android开发 Python
探索软件测试的艺术:从基础到高级安卓应用开发中的自定义视图
【8月更文挑战第29天】在软件开发的世界中,测试是不可或缺的一环。它如同艺术一般,需要精细的技巧和深厚的知识。本文旨在通过浅显易懂的语言,引领读者从软件测试的基础出发,逐步深入到更复杂的测试策略和工具的使用,最终达到能够独立进行高效测试的水平。我们将一起探索如何通过不同的测试方法来确保软件的质量和性能,就像艺术家通过不同的色彩和笔触来完成一幅画作一样。
|
2月前
|
机器学习/深度学习 JSON 算法
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-Seg模型进行图像分割的完整流程,包括图像分割的基础知识、YOLOv5-Seg模型的特点、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。通过实例代码,指导读者从自定义数据集开始,直至模型的测试验证,适合深度学习领域的研究者和开发者参考。
940 3
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
|
1月前
|
缓存 监控 数据挖掘
C# 一分钟浅谈:性能测试与压力测试
【10月更文挑战第20天】本文介绍了性能测试和压力测试的基础概念、目的、方法及常见问题与解决策略。性能测试关注系统在正常条件下的响应时间和资源利用率,而压力测试则在超出正常条件的情况下测试系统的极限和潜在瓶颈。文章通过具体的C#代码示例,详细探讨了忽视预热阶段、不合理测试数据和缺乏详细监控等常见问题及其解决方案,并提供了如何避免这些问题的建议。
59 7
|
29天前
|
安全 Java 应用服务中间件
如何将Spring Boot应用程序运行到自定义端口
如何将Spring Boot应用程序运行到自定义端口
46 0
|
2月前
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
328 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
|
2月前
|
机器学习/深度学习 算法 PyTorch
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-7.0版本进行目标检测的完整流程,包括算法介绍、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。YOLOv5以其高精度、快速度和模型小尺寸在计算机视觉领域受到广泛应用。
1035 0
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
|
3月前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
120 10
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
2月前
|
XML JSON 网络协议
【TCP/IP】自定义应用层协议,常见端口号
【TCP/IP】自定义应用层协议,常见端口号
45 3
|
2月前
|
安全 Linux Shell
Kali渗透测试-远程控制:6200端口变成“后门”
Kali渗透测试-远程控制:6200端口变成“后门”
51 0
|
2月前
|
算法 Java 测试技术
数据结构 —— Java自定义代码实现顺序表,包含测试用例以及ArrayList的使用以及相关算法题
文章详细介绍了如何用Java自定义实现一个顺序表类,包括插入、删除、获取数据元素、求数据个数等功能,并对顺序表进行了测试,最后还提及了Java中自带的顺序表实现类ArrayList。
35 0