入口: 接口请求 --大量用户使用系统,产生大量的接口请求:
WEB 服务器 性能测试:
-
入口: 接口请求 --大量用户使用系统,产生大量的接口请求:
演示:http://192.168.1.172:8081/gc/queryLogistics?mailld=12000000001
-
如何模拟出大量请求:
- 关键字:多线程-同时多件事
- 利用线程 去发起 http接口请求
一个线程 只有上一个请求结束之后,才会发起新的请求
-
jmeter里面线程工作模式:
- 第一种: 指定jmeter 一个线程 执行多少次请求【固定次数/不固定次数】
- 第二种:Jmeter 压测时间
添加‘汇总报告’可查看请求次数:
-
线程数量如何控制?
- 这需要有明确的 并发量 目标(并发量:1s内服务器收到的请求数量)
- 计算每秒单个线程能发送多少次请求:以上面的5秒为例,5秒钟发送了77次请求,平均每个线程每秒发送77/5=16次
- 当我们需要测试服务器能否抗住每秒钟160次请求时,我们需要添加160/16=10个线程
-
插件机制与梯度压测:
- 需要自行下载custom thread groups插件,很简单,大家可以在站内搜索其他人的安装教程哦
- 当我们在不知道用多少线程进行测试的时候,就可以使用梯度压测()
通过添加Active Threads Over Time监听器(监听线程数量的变化),可以看到每隔几秒,线程数量就上升一次:
-
3大 性能指标:
-
响应时间: 系统快不快
- 如果响应时间超过了要求,代表系统到了瓶颈
- 性能要求
- 注意事项: 分析在多少线程的情况下发生了超标
- 响应时间变化的原因:①系统不稳定 ,有时快有时慢②随着 并发压力变大 而慢慢变慢,响应时间变高
添加Response Times Over Time监听器,监听响应时间的变化:
通过两张图标的信息,我们可以得到一些信息。不如我需要将响应时间控制在10ms以内,先找到响应时间在10ms对应的横坐标,再到多线程的图表中找到对应的横坐标,对应的线程数为15。所以得出结论,需要响应时间在10ms以内,需要控制线程组数量在15。
-
错误率
-
高并发场景下,系统是否能够正常处理
-
业务要求:99.99%可靠
-
错误率很高:①初学者常见: 接口请求错了(参数有误、数据有变动)
②服务器处理不了(达到了瓶颈-代码写的不好、硬件资源...)
③后端系统限流(系统里面配置了不能超过多少并发)
-
吞吐量
①吞吐量:服务器每秒钟处理请求的数量
②吞吐量的计算公式: 服务器成功处理的请求数量/压测时间
③吞吐量越大,系统的性能越好
若吞吐量趋于稳定,或开始下降,则系统吞吐量达到瓶颈
吞吐量的变化规律:
-吞吐量波动很大,则系统不稳定。
-吞吐量逐渐变高,并趋于稳定:1.和并发量强相关 2.并发量小于系统最大吞吐量,则吞吐量逐渐变大,直到趋于稳定。
-吞吐量变小:1.任务快要结算,并发量减小。 2.系统变得卡顿,导致单个线程发送的并发数量减少。
注意:
- 并发量:系统同时处理的请求数量,主要衡量系统的负载能力。
- 吞吐量:系统在单位时间内完成的请求数量,主要衡量系统的处理效率。
- 关系:两者可以相互影响,但不是线性关系。并发量合理配置的情况下,提升系统资源和优化设计,可以提升吞吐量。
文章为作者自己编写,如有问题,欢迎评论区斧正。