✏️作者:银河罐头
📋系列专栏:JavaEE
🌲“种一棵树最好的时间是十年前,其次是现在”
目录
- 什么是性能测试?
- 为什么要做性能测试?
- 性能测试常见术语及性能测试衡量指标
- 并发用户数
- 响应时间/平均响应时间(RT/ART)
- 事务响应时间
- 每秒事务通过数量
- 点击量
- 点击率
- 吞吐量
- 吞吐率
- 思考时间
- 资源利用率
- 性能测试分类
- 基准性能测试
- 负载性能测试
- 压力性能测试
- 可靠性测试
- 性能测试执行流程
什么是性能测试?
-
生活中遇到的软件性能问题。
-
性能测试定义
测试人员借助性能测试工具(LoadRunner, JMeter),模拟系统在不同场景下,对应的性能指标是否达到预期。
- 性能测试和功能测试有什么区别:
功能测试:依靠人工执行。不管在任何场景下能够正常运行即可。
性能测试:依靠工具完成,软件在一些极端情况下, 是不是能够正常运行。
- 什么样的表现属于软件性能好的表现,什么样的表现属于软件性能不好的表现。
DAU是“Daily Active User”的缩写,意思是日活跃用户。通常是指一天之内使用某产品的独立用户数。
软件性能不好的情况下:
可以通过:
减少并发数
软件算法优化
服务器升级
等手段来改善。
- 影响一个软件性能好坏的因素有哪些。
硬件:服务器CPU利用率,内存,磁盘操作频率,CPU核心数,带宽
软件:算法,编程语言
用户:用户数量,用户使用时长,用户访问频率
为什么要做性能测试?
获取系统性能的指标,作为性能指标的基准。
验证系统的性能指标是否达到要求(性能需求)。
发现系统的性能瓶颈,内存泄漏等问题。
系统正常工作的情况下的最大容量。
帮助系统运维部门能更好的规划硬件配置。
性能测试常见术语及性能测试衡量指标
并发用户数
并发:大量用户,同时。
业务层面的并发用户数:指的是同时向服务器发送请求的用户数量。
后端服务器层面的并发用户数:指的是同时向服务器发送请求的请求数量。
系统用户数:系统注册的用户。
在线用户数:成功登录系统的用户数。
并发用户数:大量的访问系统,此时访问的用户数。
响应时间/平均响应时间(RT/ART)
1)用户响应时间
N1+A1+N2+A2+N3+A3+N4
2)请求响应时间
服务器收到用户的请求到发出响应这段时间。
A1+N2+A2+N3+A3
3)影响一个软件响应时间的因素有哪些
网络带宽
数据库性能
服务器处理性能
软件算法,逻辑
用户设备
事务响应时间
- 2-5-8原则
响应时间的“2-5-8原则”,简单说,就是当用户能够在2秒以内得到响应时,会感觉系统的响应很快;当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;当用户在5-8秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受;而当用户在超过8秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求。
每秒事务通过数量
处理事务的数量/事务花费的时间。
每秒事务通过数量 这个值越大,说明性能越好。
点击量
用户点击数量
点击率
点击量/时间。
每秒点击数代表用户每秒向Web 服务器提交的HTTP请求数。点击率越大,服务器压力越大。 这里的点击并不是鼠标的一次点击,一次点击可能有多次HTTP请求。
吞吐量
用户一次请求和服务器之间的数据交互量。
吞吐率
吞吐量/时间
思考时间
用户在进行操作时,每个请求之间的间隔时间。
资源利用率
不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。
性能测试分类
基准性能测试
让系统在正常情况下运行,观察软件性能指标。
应用场景:软件刚上线需要进行性能摸底。
负载性能测试
验证软件在一定的压力情况下运行,观察性能指标是否出现了拐点。
压力性能测试
系统处于饱和情况下,观察系统性能指标。
(往往会把系统搞崩溃)
可靠性测试
验证系统在一个持续的时间段内运行,在这个运行时间段,观察系统各项性能指标是否正常。
性能测试执行流程
功能测试执行流程:
需求分析 -> 测试计划 -> 测试设计 -> 测试执行 -> 测试评估(测试报告) ->上线
性能测试执行流程:
需求分析 -> 测试计划 -> 选择一款性能测试工具 -> 性能测试脚本编写 -> 执行性能测试脚本 -> 产出一个性能测试报告
性能测试中出现了不符合预期的情况,不叫 bug, 叫做性能瓶颈。
在性能测试中,出现了 性能瓶颈,开发人员修复的过程,叫做 优化。
性能测试是在功能测试通过之后才实施的。