1.为什么进行性能测试?
误区:提高一下硬件配置就可以提高软件的性能了,因此性能测试不重要?
答:错误,例如软件本身的问题内存泄露。①内存泄漏就会导致没有使用的内存无法被程序正常释放,很多的内存泄漏最终将造成内存溢出,然后让机器的性能下降 ②数据结构中有很多算法,我们选择一些算法的时候就要考虑它的时间复杂度,空间复杂度,因此算法的好坏,也决定了系统的性能响应时间等等,因此不仅仅提高一下硬件配置就可以提高性能了,要从多个方面去考虑。
2.性能测试关注什么?
3.谁关注性能测试?
(1)开发人员(算法复杂度,内存泄漏,线程安全(高并发场景),资源占用问题)
(2)系统管理人员(操作系统、网络、服务器等等)(注重系统稳定性)
(3)用户(注重响应时间)
对于一般的 web 网站来说,在欧美国家普遍的标准为原则 3/5/8(2/5/10):
3 秒钟用户会觉得是一个很好的体验
5 秒钟用户可能会觉得差了一点,还行,比较好
8 秒钟是用户所能承受的最大极限
系统稳定性:出现 HTTP500 错误或数据库崩溃会让用户对系统失去信心
(4)业务人员
(5)测试人员
3.什么时候进行性能测试?
开发时就要测试:白盒测试,开发人员关注系统的性能方面
开发完成后测试:黑盒测试,在功能测试中后期进行测试
4.总结
性能测试主要关注:响应时间,可靠性,可扩展性,并发处理的事务数量,负载盈余,软硬件配置,资源的利用率
1.性能测试
性能测试是通过自动化的测试工具,模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
系统的性能是一个很大的概念,对一个软件系统而言包括执行效率、资源占用率、稳定性、安全性、兼容性、可扩展性、可靠性等等。
性能测试主要用来保证产品上线或发布后系统的性能满足用户需求,性能测试在软件质量保证中起重要作用。
广义:在同一个时间段内,不同的用户使用系统不同的功能,给系统造成的压力。
狭义:在同一个时间段内,不同的用户使用系统相同的功能,给系统造成的压力( LR 就是采用这种狭义的概念)。
2.并发数
严格意义的并发用户数:同一时间进行同一操作的用户数。
3.响应时间
又叫请求响应时间:TTLB(time to last byte),对请求作出响应所需要的时间。
用户的反应时间+网络传输(请求)时间+服务器处理(一层或多层)的时间+数据库处理(一层或多层)的时间+网络传输(响应)时间+用户反应时间
3.事务响应时间(Transaction Reponse Time)
事务是指一组紧密相关的操作集合。例如一次登录可能包含了多次 HTTP 请求,如:判断用户是否存在?密码是否正确?是否已登录?登录?等多个 HTTP 请求。
4.每秒事务通过数(Transaction Per Second)
TPS 是指系统每秒能够处理的事务数,它是衡量系统处理能力的重要指标。
当压力加大时,TPS 曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了。
地铁检票机:
只有十台进站检票的机器,一台机器一秒能进一个人
并发用户数为5,则TPS 为 5 (每秒系统可以处理5个事务)
并发用户数为10,则TPS 为 10 (每秒系统可以处理10个事务)
并发用户数为100,则TPS 任然为 10 (每秒系统可以处理10个事务)
5.点击率(Hit Per Second)
每秒点击数代表用户每秒向 Web 服务器提交的 HTTP 请求数。点击率越大,服务器压力越大。这里的点击并不是鼠标的一次点击,一次点击可能有多次 HTTP 请求。
6.吞吐量(Throughput)
单位时间内系统处理的客户请求的数量,直接体现软件系统的性能承载能力,一般来说吞吐率用 请求数/秒 或是 页面数/秒 来衡量,从业务的角度,也可以用访问人数/天或是处理的业务数/小时来衡量,从网络的角度来说,也可以用字节数/天来衡量。
7.思考时间(Think Time)
思考时间就是用户进行操作时,每个请求或者操作之间的间隔时间,是为了更加真实地模拟用户的操作场景。
8.资源利用率(=资源实际利用量 / 总的资源量)
不同系统资源的使用情况,例如 CPU, Memory,磁盘,网络。
1)X轴代表并发用户数,Y轴代表资源利用率、吞吐率、响应时间。X轴与Y轴区域从左往右分别是轻压力区、重压力区、拐点区。
2)随着并发用户数的增加,在轻压力区的响应时间变化不大,比较平缓,进入重压力区后呈现增长的趋势,最后进入拐点区后倾斜率增大,响应时间急剧增加。
3)接着看吞吐率,随着并发用户数的增加,吞吐率增加,进入重压力区后逐步平稳,说明系统已经达到了处理极限。
4)同理,随着并发用户数的增加,资源利用率逐步上升,最后达到饱和状态。
5)最后,把所有指标融合到一起来分析,随着并发用户数的增加,吞吐率与资源利用率增加,说明系统在积极处理,所以响应时间增加的并不明显,处于比较好的状态。但随着并发用户数的持续增加,压力也在持续加大,吞吐
率与资源利用率都达到了饱和状态,造成响应时间急剧增长。轻压力区与重压力区的交界点是系统的最佳并发用户数,因为各种资源都得到充分利用,响应也很快,而重压力区与拐点区的交界点就是系统的最大并发用户数,因为超过这个点,系统性能将会急剧下降甚至崩溃。
有基础的标准,这样能通过对比发现系统的不同点与变化。
应用于以下场景:
1)可以在制定的标准下通过基准测试建立一个性能基准,这样以后当系统的环境、参数发生变化之后,再进行一次相同标准下的测试,即可看出(系统环境、参数)变化对性能的影响。
2)系统进行基准测试可以在较早的阶段发现性能问题。
3)某系统若从来没有进行过任何性能测试,需要对该系统做一次性能评估(基准测试)作为后续开发调优的参考。
①并发测试:可以得到系统可以承受的最大用户数
②容量测试:可以得到数据库的最大容量
负载测试是在被测系统上不断增加压力,直到各项指标达到饱和,例如 “响应时间” 超过预定指标,或者某种资源使用已经达到饱和状态。这种测试方法可以找到系统的处理极限,为系统调优提供数据。
压力测试就是在系统的拐点(例如:最大用户数,数据库的最大容量)之上进行的一种测试,测试系统是否会出现错误,测试系统运行是否稳定。
压力测试是测试系统在一定的饱和状态下,例如 cpu、内存 等在饱和使用状态下,系统能够处理的会话能力,以及系统是否会出现错误。压力测试与负载测试有些类似,经常把负载测试描述成压力测试的一种场景,例如增加用户数对系统进行压力测试。压力测试的目的是为了揭露高负载下的问题,例如资源竞争、同步问题、内存泄漏等。
并发测试是通过模拟用户的并发访问,测试多用户并发访问同一个应用,同一个模块或者数据记录时,是否存在死锁或者其他性能问题。
配置测试是通过被测系统的软/硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到各项资源的最优分配原则。例如在测试执行时更换、扩充硬件设备,调整网络环境、调整应用服务器和数据库服务器的参数设置,比较每次测试结果,从而确定各个因素对系统性能的影响。
可靠性测试是通过给系统加载一定的业务压力(例如资源在70%-90%的使用率)的情况下,让应用系统持续运行一段时间,测试系统在这种条件下是否可以稳定运行。(又叫疲劳测试,运行时间比较长)
主要针对数据库的一种测试。
本文地址:https://blog.csdn.net/HU1656/article/details/107575099
如对本文有疑问, 点击进行留言回复!!
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
vue-cli或vue项目利用HBuilder打包成移动端app操作
网友评论