jmeter-性能场景环境搭建

文章介绍了如何在性能测试中使用JMeter插件,包括如何引入扩展功能,以及如何修改计算机端口和释放速度以应对并发用户增多时的Addressalreadyinuse错误。作者强调了长连接与短连接的区别,并提供了Windows和Linux系统下的端口配置方法,以及解决此问题的长期解决方案——分布式测试。
摘要由CSDN通过智能技术生成

一、性能场景环境搭建

1.1、引入JMeter插件:

插件管理包 jmeter-plugins-manager-xxx.jar
把这个jar包 ,放到 JMeter的lib\ext文件夹下,重启动jmeter
在菜单 选项 > 插件管理入口,点击,出现一个弹窗
如下图:在这里插入图片描述
找到 available plugins > jpgc 勾选 右下角 apply changes and restart jmeter
如果失败,重新点击
成功后,会引入一些 扩展函数
成功后,线程组中, 多了一些线程组
在这里插入图片描述

1.2 修改计算机端口及端口释放速度

修改计算机端口和及时释放端口与速度的操作

性能测试目的

做性能测试,先要做 负载测试,通过负载测试,可以得到‘最大可接受的并发用户数’, 然后再用这个最大可接受的并发用户数去进行性能测试。

填写线程组 : Stepping Thread Group
This group will start 100 threads: 这个线程组将启动100个线程
First,wait for 0 seconds; 首先 ,等待0 秒
Then start 0 threads; 然后, 启动0个线程
Next,add 10 threads every 30 seconds, using ramp-up 5 seconds.
用5秒钟,累加10个线程,然后运行30秒
Then hold load for 60 seconds. 持续进行60秒的测试
Finally,stop 5 threads every 1 seconds. 每1秒停止5个线程
在这里插入图片描述
试运行: GUI运行
取样器
查看结果树: 勾选仅错误日志
Active Threads Over Time: 随着运行时间增长的活跃线程数图
Response Times Over Time: 随着运行时间增长的响应时间图
Transactions per Second: 随着运行时间增长的tps
第一次运行,就看到在很低的并发用户数的时候,就出现了连续报错(图中绿色部分)。=======这种现象,99%的概
率,大家第一次做性能测试,都会遇到。此时的错误类型: Address already in use: connect
在这里插入图片描述

错误推测:

connect refused连接被拒、
connect timeout连接超时、
address already inuse 地址被用。
这个错误不是被测服务器的问题,而是 我们自己发起方电脑的问题。

网络知识:

HTTP请求,发起一次请求,发起方,就要在电脑上随机分配一个 端口作为请求从电脑中出来进入网络的出口,这个端口不能被共用。任何一台电脑,这个端口数量是有限制的。这个是因为我们电脑制作工艺。

一台电脑的端口,理论上最大数量为 : 65535个,但是,我们windows、linux电脑,默认情况下,随机分配的端口数量是不相等的。

0 ~1023 之间 是公认端口。 21ftp协议、22sftp\ssh协议、25smtp协议、80http协议

这个范围的端口,是不能用于http请求的时候随机分配的端口。1024 ~ 49151之间, 注册端口。 3306 8080 , 机器上部署的一些服务,会使用这个范围的端口,但是,比较灵活,可以用于http请求的随机分配端口,但是,你要事先告知操作系统,不然,也不会用这个范围的端口。49152 ~ 65535之间(只有1.6w个左右)动态端口。 这个就是主要用于 http请求时随机分配占用的端口。 但是一般来说操作系统不会全部启用这个范围端口。windows启用的范围 小于 linux。

电脑,没有对操作系统进行修改时,还不能使用1.6w个端口。

疑问?电脑,做性能测试,难道就只能用理论上的1.6w个端口,最大发1.6w个请求?
不对

端口,我们可以通过修改系统参数配置,扩大端口使用范围。 修改操作系统,把可用的端口范
围,扩大到 [1024, 65535]之间,可以达到 理论的 6.4w端口被分配之后,会占用一段时间,然后,释放,释放之后,又能复用。一个请求发出去,占用一个端口,一定是要等到 收到这个请求的响应,才会释放。
补充:
1、发起方异常退出,超时之后释放;
2、正常接受到了响应,也需要一定的时间之后才会释放,不会立刻释放。
通过修改 这个端口的释放时长,达到 提高端口复用率。 ====可以实现更多端口用于请求。

http请求的版本是 1.1版本,1.1版本是一个长连接的通信协议版本。

长连接: http协议长连接,通信的双方经过三次握手,建立连接之后会保持一个比较长的时间。
以方便在这个保持连接到时间段内持续传输传输,实现数据传输率的提高。 在请求头中,会有connection:keep-alive性能测试时,需要,修改 请求,由长连接变成短连接。

短连接: http协议短连接,通信的双方,经过三次握手,建立连接之后,传输数据,数据传输完,
就处于待端口的状态,然后,就会端口。下一次传输,又要三次握手。

修改计算机端口和及时释放端口与速度的操作:

1、把http取样器中的 使用keepalive的勾去掉,使我们的请求变成 短连接

2、修改操作系统的端口范围:

windows:

注册表
HKEY_LOCAL_MACHINE\SYSTEMN\CurrentControlSet\Services\Tcpip\Parameters

添加 DWORD 名称为 MaxUserPort 值: 十进制 65535

mac\linux

mac电脑,底层的内核 也是linux的内核,有很多地方 与 linux系统相同。

sysctl -w net.ipv4.ip_local_port_range="1024 65535"

sysctl -p

3、修改操作系统端口的释放时长

windows:

注册表
计算机
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
添加DWORD 名称为 TcpTimedWaitDelay 值: 十进制 30

mac\linux
sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.tcp_tw_recycle=1
sysctl -w net.ipv4.tcp_fin_timeout=5
sysctl -w net.ipv4.tcp_max_syn_backlog=8192
sysctl -w net.ipv4.tcp_max_tw_buckets=500
sysctl -p
注意:

windows系统修改了注册表,需要重启动系统才能生效。 linux系统修改这些地方,重启就
会失效。
做了上面的三个操作不是说,一定彻底解决了问题的根源。上面的操作,只是缓解了报错的时间,把
这个时间延后了。

如果被测项目性能非常好, 我们做了上面的三个操作,随着你的并发用户数增加,这发起方端口
不够用到问题,依然是会出现的。 ------彻底解决,只能使用 分布式。

windows电脑,修改注册表之后,可用的最大端口范围也就 1.6w个左右,而linux电脑,不修系统参
数,也能优约3w端口可以用于发起http请求。 所以一般性能测试的 发起方的电脑,选择用 linux电
脑。能产生更多的并发用户数而不报错。

  • 16
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter是一款开源的性能测试工具,用于测量和评估软件应用程序在各种负载条件下的性能。它可以模拟大量用户同时访问应用程序,并监控其响应时间、吞吐量、并发用户数等指标,以确定应用程序的性能瓶颈和性能限制。 JMeter使用一种基于树形结构的测试计划来组织测试场景。在测试计划中,我们可以定义多个线程组,每个线程组代表一组并发用户,可设置线程数、循环次数等属性。线程组中可以包含多个Sampler,Sampler定义了要发送给服务器的请求内容,可以是HTTP请求、数据库查询、FTP上传等。通过使用不同的Sampler,我们可以模拟出各种负载类型的测试场景JMeter也提供了丰富的监听器用于监控和收集性能测试结果。监听器可以用于可视化查看请求的响应时间、吞吐量和错误率等数据,同时还可以生成测试报告,用于进行性能分析和瓶颈定位。 在进行性能测试之前,我们需要进行一些准备工作。首先,需要明确测试目标和需求,确定要测试的业务场景性能指标。其次,需要进行性能测试环境的搭建,包括服务器配置、数据库配置等。然后,需要设计和编写测试脚本,定义测试场景和请求内容。最后,执行测试并分析测试结果。 JMeter具有较高的灵活性和可扩展性。通过使用插件和定制脚本,我们可以扩展JMeter的功能,满足不同业务场景性能测试需求。此外,JMeter还支持分布式测试,可以通过多台机器协同工作,模拟大规模的并发用户。 总而言之,JMeter是一款功能强大的性能测试工具,可以帮助开发人员和测试人员评估应用程序的性能和稳定性。它提供了丰富的功能和灵活的配置选项,使得我们能够针对各种场景进行性能测试,并快速定位和解决性能问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值