1.常见的性能问题有哪些
如图所示
系统内部以及软件的代码实现
1,资源泄漏,包括内存泄漏。
2,CPU使用率达到100%,系统被锁定等。
3,线程死锁,阻塞等造成系统越来越慢。
4,查询速度慢,或者列表的效率低。
5,受外部系统影响越来越大
6.软件的服务器崩溃,导致用户无法使用
2.性能测试是什么
性能测试是一项综合性的工作,致力于暴露性能问题,评估系统性能趋势。性能测试工作实质上是利用工具去模拟大量用户操作来验证系统能够承受的负载情况,找出潜在的性能问题分析并解决;找出系统性能变化趋势,为后续的扩展做准备。
一般地,它主要是针对系统的性能指标制定性能测试方案,执行测试用例,得出测试结果来验证系统的性能指标是否满足既定值。性能指标里包括系统各个方面的能力,如系统并发处理能力,系统响应时间,批量业务处理能力等等
3.性能测试和功能测试之间的区别
功能测试:人工来完成,保证程序能运行就可以,不管在什么场景下,能运行就ok
性能测试:借助工具来完成,在一些极端的情况下,需要保障软件能够正常工作
4.什么样的系统/软件表现属于性能好,什么样软件表现属性性能不好
当两个软件都有同样的功能,软件1使用此功能的响应时间是1秒 软件2使用此功能的响应时间是1ms 说明软件2表现属于性能好 软件1表现不好
5.为什么要进行性能测试
获取系统性能的指标,作为性能指标的基准
验证系统的性能指标是否达到要求(性能需求)
应用程序是否能够满足系统要求的各中性能指标
应用程序是否能处理预期的用户负载并有盈余能力
应用程序是否能处理业务所需要的事务数量
在预期和非预期的用户负载下,应用程序是否稳定是否能确保用户在真正使用软件 时获得舒服的体验
发现系统的性能瓶颈,内存泄漏等问题。系统正常工作的情况下的最大容量。
帮助系统运维部门能更好的规划硬件配置
6.常见的性能指标以及性能测试专用的术语
1. 我们衡量性能指标常见的有以下几个
2.专业术语
并发用户数
假如在双十一的时候,有一百万的用户,同时操作淘宝系统,此时淘宝系统的承载 压力特别大,这里我们就可以看到
并发的条件:大量用户,同时操作 并发数:此时大朗用户数并发数
并发用户会对系统造成压力,首先对系统用户数,在线用户数,并发用 户数做一个区分
系统用户数:数据库中保存的用户数量,
在线用户数:登录成功后的用户数量
并发用户数:当系统达到并发的时候,用户的数量即为并发用户数
业务层面的并发用户数:指的是同时向服务器发送请求的用户数量。
后端服务器层面的并发用户数:指的是同时向服务器发送请求的请求数量
响应时间/平均响应时间(RT/ART)
从用户视角来考虑,响应时间反映了完成某个操作所需要的时间,标准定义是,应用系统从发出请求开始,到客户端接收完所有的字节数据所消耗的时间
用户响应时间:(N1+A1+N2+A2+N3+A3+N4)用户从发起请求到用户看到响应中间经历的这段时间
请求响应时间:(A1+N2+A2+N3+A3)服务器接受请求到发出响应这段时间
事务响应时间 (Transaction Reponse Time)
每秒完成的事务数,通常指每秒成功的事务数,性能测试中重要的综合性性能指标
这里的一个事务是一个业务度量单位,是指一组密切相关的子操作的组合。比如,一笔电 子付操作,后台处理的时候可能需要经过会员系统,账务系统,支付系统,银行系统等,这 就是是一个关于支付事务里面包含的操作。而对于用户,往往也只关注整个支付花费了多 长时间
每秒事务通过数(Transaction Per Second)
TPS 是指每秒系统能够处理的事务数。它是衡量系统处理能力的重要指标。如果每秒事务数通过越大,代表系统处理能力越高
当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了。如果环境没有发生大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的增减而改变。
点击率(Hit Per Second)
每秒点击数代表用户每秒向Web 服务器提交的HTTP请求数。点击率越大,服务器压力越大。这里的点击并不是鼠标的一次点击,一次点击可能有多次HTTP请求
吞吐量(Throughput)
这里的吞吐量以单位时间为度量衡量;time
单位时间内系统处理的客户请求的数量,直接体现软件系统的性能承载能力,一般来说用Requests/second,Pages/Second,Bytes/Second,从业务的角度,也可以用访问人数/天或是处理的业务数/小时来衡量,从网络设置的的角度来说,也可以用字节数/天来衡量
吞吐率
思考时间(Think Time)
指模拟正式用户在实际操作时的停顿间隔时间,从业务的角度来讲,思考时间指的是用户在进行操作时,每个请求之间的间隔时间
资源利用率
不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。
7.性能测试的分类
1.基准性能测试
让系统在正常情况下运行,观察各种性能指标
应用场景:软件性能摸底
2.负载性能测试
让系统背负一定的压力,观察性能指标是否出现拐点
3.压力测试
让系统处于饱和状态,观察系统性能指标
压力测试,通常指的是后端压力测试,一般采用后端性能测试的方法,不断对系统施加压力,验证系统长期处于临界饱和阶段的稳定性以及性能指标的变化。试图找到系统处于临界状态时的主要瓶颈点。
要更快的找出系统的性能瓶颈,一般会加大负载,甚至将负载一直增加上去,达到极限负载。这时候内存等处于极限状态,测试系统在极限状态下长时间运行是否稳定。确定系统是否稳定的指标包括TPS, RT ,CPU Using,Mem Using等。
在不断地加压过程中,一旦系统出现拐点(从量变到质变),系统可能就会出现崩溃,揭露高负载下系统的问题,例如资源竞争、同步问题、内存泄漏等;然后逐渐较少压力,观察瘫痪的系统是否可以自愈
4.可靠性测试
验证系统在常规负载模式下长期运行的稳定性。
在一定的软硬件环境下,长时间运行一定的负载,确定系统在满足性能指标的前提下是 否运行稳定。与压力测试不同的是系统的负载并不是处于极限的状态下。重点是满足 性能要求的情况下,系统的稳定性,比如响应时间,TPS是否稳定
例如(让系统在一个月/一年/一周内)持续运行,观察其指标是否稳定