性能测试——概念概况
负载测试:逐步增加系统负载,测试系统性能变化,并最终确定系统所能承受的最大负载量。
通过逐步增加并发用户数,测试系统性能变化,并最终确定系统所能承受的最大负载量。
简单理解:逐步加压,找系统能达到的最大并发数。
过程:逐步增加并发用户数;
增加到最大的标准(限制)?标注不一样,结果也不一样
1、错误率 < 0.1%
2、平均响应时间 < 1.5s (性能测试中,http协议的接口,行业标注,1.5S是可以接受的)
3、资源利用率 < 80%
最大并发用户的标注:开始出现连续报错(服务器处理不过来、服务宕机、服务器宕机)
再通过压缩小区间内的步长,就可以得到最大可接受并发用户数的具体数量;
实际场景
- 有一个业务,增加到40个人的时候,服务器还能正常使用,没有异常
- 当你增加到50个人的时候,服务器已经开始有异常了,那么就能确定40-50之间某个值就是系统所能承受的最大负载量【出现性能拐点,找到了服务器性能瓶颈的范围值】
- 最后减小加压梯度(比如:从40个人开始每次增加1个人、2个人),确认最大负载量【确认性能拐点】
服务器又有哪些可能会出现的异常呢
- 响应时间超长:正常服务器处理请求时间是 1s,但现在变成3s - 5s
- 服务报错:无法同时正常响应多个请求
- 服务器宕机:系统完全用不了
================================================================================
压力测试:是在比较长的时间中,持续进行性能测试,看服务器的稳定性;————较长的时间,指以 小时 为计量单位;
- 在较大的性能压力下,持续运行一个比较长的时间,看看系统服务是否正常及系统资源的利用率情况
- 通俗理解:鸭梨山大!
- 关键字:较大压力 + 较长时间
- 注意:不是满负荷压力哦
场景类比
问:大家什么时候会觉得工作压力大?
答:996、007;因为你不会觉得955压力山大吧
结论:所以在我们日常工作中,长时间工作强度高,才会觉得压力大;如果你一周就加班一天也说压力大...(那就别干这一行了)
压力测试用来干嘛的
测试系统的稳定性
压力测试持续运行时间要多久?
- 标准性能测试里面,一般是7*24小时,或者是它的倍数
- 但是实际工作中,并不会这么久,否则成本太高
- 所以会以小时为单位,比如:4个小时、8个小时...晚上下班之后做,第二天早上上班看结果
如何取压力值
- 在负载测试中,我们确认了系统所能承受的最大负载量
- 压力值 < 最大负载量,一般取80%左右
先负载测试还是压力测试?
- 先负载测试
- 负载测试可以找到服务器性能瓶颈的范围值,若生产环境中系统稳定性较差,再做压力测试
- 所以压力测试是可做可不做的
======================================================================
可靠性测试:
- 在给定的一定的业务压力下,持续运行一段时间,查看系统是否稳定
- 关键字:是否稳定,一定业务压力
- 注意:不是较大压力哦
业务场景栗子
电商秒杀场景,几十个商品几十万个人同时秒杀抢购
如何理解可靠性测试
- 编写性能脚本:假设一秒内有一万个人同时发起请求
- 有压力吗?有,一万个人同时发起请求
- 但是持续时间短,不像压力测试一样需要持续一段时间
- 目的是为了验证当这么多人同时发起请求时,成功秒杀的用户能否继续完成后续下单付款等操作【一定业务压力下,系统是否稳定运行】
==============================================================
容量测试:数据库表数据量级别不一样的情况下,进行性能测试,得到性能指标;
- 在一定的软、硬件条件下,在数据库不同数据量级数据量的情况下,对系统中读/写比较多的业务进行测试,从而获得不同数据量级下的性能指标值
- 关键字:不同数据量级
关系型数据库10w数据和100w级别的数据,性能会不一样有差别;
数据库数据量对性能测试结果有没有影响?
肯定有
- 比如数据库已经有几百条数据和几百万条数据,查询的速度肯定不一样,所以肯定会影响性能测试结果
- 数据量级的差异,会影响TPS、响应时间、网络等
场景类比
从一袋米中找一个绿豆,和一碗米中找一个绿豆,找的时间肯定是千差万别的
=============================================================================
参考网址:https://blog.csdn.net/2301_78276982/article/details/136158400
===================================================================
性能指标
1、并发用户数
并发:同一时刻向服务器发起请求的数量(同一时间点向服务器发起相同请求的数量)
并发用户数:同一时间,向服务器发起请求的用户数量(实现:进程、线程、协程)
jmeter:线程实现;
loadruner:默认线程,也可以用进程实现;
locust库:协程
进程:资源拥有者
线程:进程中真正执行的任务单元
协程:更小的执行单元(python中)
2、平均响应时间
响应时间:从发起到收到,中间的时间差(时间=发起的网络传输之间+服务器处理时间+传回数据的网络时间)
90%的响应:总请求量中,有90%的请求量小于等于这个时间;
3、tps
tps:服务器美秒处理事务数
事务:
jmeter中的事务:可以是一个接口的1次完整请求就是一个事务——默认的;
jmeter中,也可以把多个接口合并到一起,一起完成多个接口的完整请求,当做一个事务;————用到jmeter中的事务控制器的合并取样器功能;
性能测试中,先做单接口的性能测试,再做多接口的合并事务性能测试;
tps是衡量服务器综合能力的最主要的指标;
4、吞吐量
吞吐量:网络中每秒传输的事务数;
a、如果网络没有瓶颈,事务数值与tps数值相等;
b、网络有瓶颈,则不相等;
5、吞吐率
吞吐率:单位时间内,在网络传输的数据量的平均速率(kB/s)
6、服务器利用率
cpu
IO
硬盘
网络
服务器资源的使用程度,比如服务器(应用、服务器)的CPU利用率,内存利用率,磁盘利用率,网络带宽利用率
一般不超过80%
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2022-04-18 spring——Spring自动装配(基于注解)(转载)
2021-04-18 自动化——测试开发进阶——flask——flask-session会话
2021-04-18 自动化——测试开发进阶——flask——flask-cookie
2021-04-18 自动化——测试开发进阶——flask——flask响应报文
2021-04-18 自动化——测试开发进阶——flask——flask文件上传和下载