软件崩了eg.淘宝崩了,抖音崩了【服务器崩了】
测试人员借助性能测试工具,模拟系统在不同场景下,对应的性能指标是否达到预期。
对于一个产品,我们一般考虑它的功能,界面,易用,兼容,性能,安全,网络,中断几个维度,其中功能和界面相关我们一般使用手工测试,也可以使用自动化测试,而性能测试一般是使用工具完成。
自动化测试(UI自动化测试,接口自动化,单元自动化)一般都是指功能的自动化测试。
DAU:day active user,日活跃用户数
12306(并发量太大):减少并发数,软件算法优化,服务器升级
性能测试工作实质上是利用工具去模拟大量用户操作来验证系统能够承受的负载情况,找出潜在的性能问题分析并解决;找出系统性能变化趋势,为后续的扩展做准备 。
并发用户数&在线用户数&系统用户数区别:
系统用户数:即系统注册用户数。可以是活跃用户也可以是僵尸用户数
在线用户数:成功登录系统的用户数
并发用户数:大量用户访问系统,区分业务层面和后端服务器层间
业务层面的并发用户数:指的是同时向服务器发送请求的用户数量。
后端服务器层面的并发用户数:指的是同时向服务器发送请求的请求数量一般来说,一个业务的完成可能会向服务器发送好几个请求
并发用户数即大量用户同时访问系统。并发用户对系统造成压力。
rt:response time art:average response time
1.用户响应时间(前端性能评估)
N1+A1+N2+A2+A3+N3+N4
即应用系统从发起请求开始,到客户端接收完所有字节数据,并渲染前端页面所耗费的时间
2.请求响应时间(服务器端性能评估)
A1+N2+A2+A3+N3
即web服务器,应用服务器,数据库服务器等各种服务器之间通信和处理请求的时间。
3.影响软件响应时间因素
358定律:
每秒事务通过数:每秒系统能够处理的事务数
点击率:Hit Per Second ,用户每秒向web服务器提交的HTTP请求数点击率越大,服务器压力越大。(不是点击量)
注:这里的点击不是鼠标的一次点击,一次点击可能有多次HTTP请求。
吞吐量:Throughput ,用户一次请求和服务器之间的数据交互量(network size)
资源利用率:cpu、内存、硬盘、网络等不同系统资源的使用情况。
思考时间:用户在进行操作时,每个请求之间的间隔时间
以下为常见性能测试
即让系统在正常情况下运行,观察软件性能指标。
应用场景:软件刚上线时进行性能摸底
即验证软件在一定压力情况下运行,观察性能指标是否出现了拐点
即系统处于饱和情况下,观察系统性能指标。
往往会把系统搞崩溃。
验证系统在一个持续时间段内运行,观察系统各项性能指标是否正常。(4个9,5个9)
(通常会使用工具)在一定压力下。
持续1天—>持续运行1周—>持续运行1个月—>一个季度—>1年
若崩溃了,会不会影响后边的业务。
功能测试执行流程:需求分析–>测试计划–>测试设计–>测试执行–>测试评估(测试报告)–>上线
性能测试执行流程:需求分析–>测试计划–>选择一款性能测试工具–>性能测试脚本编写–>产出一个性能测试报告
性能测试中出现了不符合预期的情况,不叫它bug,叫性能瓶颈
性能测试中,出现性能瓶颈,开发修复的过程,叫优化
性能测试是在功能测试完全通过的前提下进行的。
1.关键性能指标分析
需要明确而量化的性能指标,只有这样才具备可测试性,可验证性。
一组清晰定义的预期性能指标量,是性能测试的基本要素。
如果是一个全新的应用系统,无法确定具体的性能指标怎么办?
(1)可以通过“基时准测试”,获取性能指标数据 (2)从业务,用户体验,竞品的的性能指标信息来定义性能指标的数据 。
2.关键业务分析
如果在某一些业务功能上不出现性能问题,那么系统就不会出现性能问题,而
这些业务功能就是系统性能测试的关键业务所在。 根据帕雷托法则(pareto Principle),系统中各个功能的使用频率是不相同的,有20%的功能是常用的
功能,用户80%以上的时间都在使用这些功能,这些功能就是性能测试当中我们测试人员需要关注的。
所以,要确定性能测试的关键业务要从业务功能的使用频率,功能的计算量和资源的消耗程度来决定,确定好关键业务之后,我们在进行性能测试的时候只要对关键的业务进行测试用例的设计,系统的性能测试脚本就会基于这些关键的业务进行开发 。