性能测试概念(一)
一,性能测试:
1,当软件功能满足后,我们还要考虑大数据量的用户或者用户长时间使用软件等情况,并监控服务器的资源消耗等,这个过程我们就可以称之为性能测试
2,对于软件性能测试来说:每一个角色看到的都不一样:
用户:响应速度,易用,稳定,安全,可扩展
管理员:cpu,内存,磁盘和网络带宽,数据库使用
开发:架构,业务逻辑,数据表设计,线程,进程数,SQL语句执行耗时
3,性能测试的目的:
评估系统的处理能力
发现系统性能瓶颈
为未来扩容提供有效的数据依据
4,性能测试指标:并发用户数,交易成功率,响应时间,TPS和HPS,吞吐量,资源利用率
响应时间:客户端发起一个请求开始,到客户端接收到从服务器返回的响应结束,这个过程所消耗的时间,一般关注平均响应时间,90%响应时间和最大响应时间
交易成功率:一段时间内成功的交易数在总交易数中所占的比例,不同的行业对交易成功率的要求不同,我们也可以叫做事务成功率
TPS和HPS:TPS为每秒钟处理的交易(事物)数量,估算应用系统性能的重要依据,HPS(Hit per second)为每秒钟处理的请求(点击)数,技术层面
吞吐量:性能测试过程网络传输的数据总量,反映服务器承受的压力
资源利用率:服务器cpu,内存,磁盘和网络使用率,一般介意CPU持续占用不高于80%,超过90%认为构成性能瓶颈,内存和网络带宽介意有剩余,磁盘I/O不能长时间100%
5,网络传输协议:HTTP协议
HTTP:即超文本传输协议,应用层通讯协议:两个主要应用场景(传输网页以及图片等资源),主要组成(请求request,响应response,处理),网络7层模型这里要知道,HTTP属于哪一层?,每一层都有什么?
6,http协议:请求request--->请求方法(Method)请求要做什么操作
URL:请求的服务器以及接口地址以及查询参数
请求头(Headers):请求数据辅助信息(内容类型,Cookie等)
请求体(Request Body):请求数据
Get与Post请求:
get请求没有请求体,只有请求行和请求头,Post有请求行,请求体,请求头
7,性能测试的类型:基准测试,负载测试,疲劳测试,稳定性测试,一般项目,这四种类型的测试全部做完
基准测试:一般用1个用户去跑一遍,查看业务能不能跑通,各项指标是否正确,另外10个用户跑一遍,如果各项指标超标,就没有必要进行下面的测试了,其次如果参数化中有100用户,那么循环100次,检查参数化的数据是否正确
负载测试:在不知道系统的处理极限的时候,就是阶梯性的增加用户,找到系统的拐点
疲劳测试:长时间的去压,不断增加用户,长达8小时,12小时,72小时等,看系统的处理能力,一般和负载测试结合
稳定性测试:这个一般是模拟真实的产生环境,如果这个系统没有上线并且生产环境是单独的,那么可以直接在生产环境压,如果已经上线的,那么就要模拟生产环境,一般模拟的比例是1/4或者1/2,一般1/2比较好点,压力一般不是很大,但是持续时间很长,12小时,或者7*72小时,只要能支撑正常的用户数量用就行
并发用户数=在线用户数*在线时间/8小时
【推荐】中国电信天翼云云端翼购节,2核2G云服务器一口价38元/年
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 时间轮在 Netty , Kafka 中的设计与实现
· MySQL 优化利器 SHOW PROFILE 的实现原理
· 在.NET Core中使用异步多线程高效率的处理大量数据
· 聊一聊 C#前台线程 如何阻塞程序退出
· 几种数据库优化技巧
· 跟着 8.6k Star 的开源数据库,搞 RAG!
· .NET 9 中的 多级缓存 HybridCache
· 夜莺 v8 第一个版本来了,开始做有意思的功能了
· 推荐一个C#轻量级矢量图形库
· .NET 9 增强 OpenAPI 规范,不再内置swagger