目录
🌟一、性能测试的基础概念
🌈1、生活中软件相关的性能问题?
🌈2、性能测试的概念
🌈3、性能测试与功能测试的区别?
🌈4、什么样的软件属于性能好?什么样的软件属于性能不好?
🌈5、哪些因素会影响到软件的性能?
🌈6、为什么要进行性能测试?
🌟二、性能测试常见专业术语以及衡量指标(重要)
🌈1、常见专业术语
🌈2、性能测试的分类
🌈3、性能测试如何展开?
🌟一、性能测试的基础概念
🌈1、生活中软件相关的性能问题?
比如:双十一预售活动淘宝服务器崩溃;抖音崩溃。
常见的性能问题:系统内部及软件的代码实现
(1)资源泄露,包括内存泄露;
(2)CPU使用率达到100%,系统被锁定;
(3)线程死锁,阻塞等造成系统越来越慢;
(4)查询速度慢,或者列表的效率低;
(5)受外部系统影响越来越大。
🌈2、性能测试的概念
性能测试:测试人员借助性能测试工具,模拟系统在不同情况下性能指标是否正常。
🌈3、性能测试与功能测试的区别?
(1)功能测试:只是是验证软件的特性是否实现;
(2)性能测试:保证在一些极其恶劣的环境下能否正常使用:比如用户人太多,流量使用大的情况下。
性能测试是在功能测试完成后执行。
🌈4、什么样的软件属于性能好?什么样的软件属于性能不好?
🌈5、哪些因素会影响到软件的性能?
(1)硬件方面:服务器CPU,服务器内核数量,内存,磁盘,网络带宽;
(2)软件方面:编程语言(C++,Java),算法;
(3)用户:用户数量,用户操作频率(比如1s,向服务器发送10w个HTTP请求,服务器可能会崩溃)
🌈6、为什么要进行性能测试?
(1)获取系统性能的指标,作为性能指标的基准;
(2)验证系统的性能指标是否达到要求(性能需求)
- 应用程序能否能够满足系统要求中的各项性能指标;
- 应用程序是否能处理预期的用户负载并有 盈余能力;
- 应用程序能否处理业务所需要的事务数量;
- 在预期和非预期的用户负载下,应用程序是否稳定;
- 是否能确保与用户在真正使用软件的时候获取舒服的体验。
(3)发现系统的性能瓶颈,内存泄露等问题;
(4)系统正常工作的情况下的最大容量;
(5)帮助系统运维部门更好的规划硬件配置。
🌟二、性能测试常见专业术语以及衡量指标(重要)
🌈1、常见专业术语
(1)并发:软件在运行过程中,有大量的用户同时访问。
(2)并发用户数:大量用户,请求系统,此时的用户数量就是并发用户数量。
(3)并发请求数:大量用户,请求系统,此时服务器接收的请求数量。
(4)用户数
- 系统用户数:简单地说就是该系统的注册用户数;
- 在线用户数:登录系统的用户数量;
- 并发用户数:同时对系统发起请求对应的用户数量。
系统用户数>在线用户数>并发用户数(在系统限制用户登录成功才能访问系统的条件下)
(5)响应时间:越短越好
- 用户响应时间:从N1+A1+N2+A2+N3+A3+N4的过程时间。用户从发起请求到接收到响应花费的时间。
- 请求响应时间:服务器接收到请求到服务器发出相应的时间段:A1+N2+A2+N3+A3
(6)事务
- 事务:此时的事务是针对一个业务单位来定义的。
- 事务响应时间:服务处理一个事务花费的时间。每秒完成的事务数,通常指每秒成功的事务数,性能测试中重要的综合性性能指标。这里的一个事务是一个业务度量单位,是指一组密切相关的子操作的组合。比如,一笔电子支付操作,后台处理的时候可能需要经过会员系统,账务系统,支付系统,银行系统等,这就是是一个关于支付事务里面包含的操作。而对于用户,往往也只关注整个支付花费了多长时间。
- 每秒事务通过数:TPS 是指每秒系统能够处理的事务数。当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了。如果环境没有发生大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的增减而改变。
(7)点击率:每秒点击数代表用户每秒向Web 服务器提交的HTTP请求数。点击率越大,服务器压力越大。这里的点击并不是鼠标的一次点击,一次点击可能有多次HTTP请求。
(8)吞吐量:指一次请求,用户和服务器之间的数据传输量。直接体现软件系统的性能承载能力。
程序1:10s处理数据10M;
程序2: 1h处理数据100M;
不能说明程序1快。因此吞吐量并不能衡量一系列的问题。
吞吐率:size/time。数据的吞吐量/时间。
吞吐率越低表示软件性能越好,吞吐率越大证明软件性能越不好。
(9)思考时间:指模拟正式用户在实际操作时的停顿间隔时间,从业务的角度来讲,思考时间指的是用户在进行操作时,每个请求之间的间隔时间。
(10)资源利用率:不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。
🌈2、性能测试的分类
(1)基准性能测试:让系统在正常情况下运行,观察系统的性能指标是否正常。
为什么要进行性能测试?因为要拿着前一个版本的性能指标和当前软件的性能指标进行对比。
(2)负载测试
让系统背负一定的压力,让系统运行一定时间,观察系统是否存在性能拐点。
(3)压力测试
让系统处于极限或者饱和状态,观察系统的性能指标(压力测试会将系统搞崩溃)。
(4)可靠性测试
将系统进行持续运行,观察系统性能是否出现异常。比如系统先运行1天,看有没有异常现象,再看一周观察,再看一个月,最后看一年。用4个9或者5个9来表示系统的可靠性高。
🌈3、性能测试如何展开?
(1)功能测试流程:
需求分析——>测试计划——>测试开发——>测试设计——>测试执行——>测试评估
(2)性能测试流程:
需求分析(分析的是性能需求)——>测试计划(确定一个性能测试工具)——>测试开发(性能测试脚本的编写)——>测试执行(跑脚本)——>测试评估(产生一个测试报告,将性能问题写在测试报告中,优化方案是什么)
性能测试的时候发现的问题不叫bug,叫做性能瓶颈;
性能测试的时候,开发进行的修复不叫修复,叫优化。