2023年7月11日发(作者:)
性能测试总结(⼀)---基础理论篇 随着软件⾏业的快速发展,现代的软件系统越来越复杂,功能越来越多,测试⼈员除了需要保证基本的功能测试质量,性能也随越来越受到⼈们的关注。但是⼀提到性能测试,很多⼈就直接连想到Loadrunner。认为LR就等于性能测试,其实这是不对的。LR只是性能测试的⼀个⼯具,但性能测试不仅仅是LR。本⽂会从以下⼏个⽅⾯介绍基础的性能测试理论,后续也会持续更新相关⽂章,尽量理论结合实践,让性能测试学习不在是⼯具的学习。
⽬录:⼀、 什么是软件性能⼆、不同群体眼中的性能三、性能测试类型四、性能测试应⽤场景五、性能测试基本概念六、理发店模型和地铁进站模型七、做好性能测试需要掌握的知识
正⽂:⼀、 什么是软件性能 定义:软件的性能是软件的⼀种⾮功能特性,它关注的不是软件是否能够完成特定的功能,⽽是在完成该功能时展⽰出来的及时性。 由定义可知性能关注的是软件的⾮功能特性,所以⼀般来说性能测试介⼊的时机是在功能测试完成之后。另外,由定义中的及时性可知性能也是⼀种指标,可以⽤时间或其它指标来衡量,通常我们会使⽤某些⼯具或⼿段来检测软件的某些指标是否达到了要求,这就是性能测试。
性能测试定义:指通过⾃动化的测试⼯具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进⾏测试。
⼆、不同群体眼中的性能 不同的⼈由于⼈⽣观、世界观、价值观以及教育背景、知识体系、⼈⽣阅历的不同,对于同⼀事物或问题的看法可能不同。对于软件性能也是如此,不同的⼈由于视⾓的不同,所关注的点也可能不同。下⾯来看看在不同的⼈群眼中性能分别是什么样的。⽤户眼中的性能 开发眼中的性能 系统管理员眼中的性能
测试眼中的性能是什么样的呢?
测试⼈员通常是做为软件质量控制的⼀个⾓⾊,不仅仅是找bug,需要对整个软件的质量负责,性能也属于质量的⼀部分,因此测试⼈员眼中的性能应该是全⾯的,考虑的东西也需要全⾯: 1、测试⼈员需要考虑全⾯的性能,包括⽤户、开发、管理员等各个视⾓的性能。 2、测试⼈员在做性能测试时除开要关注表⾯的现象如响应时间,也需要关注本质,⽐如⽤户看不到的服务器资料利⽤率,架构设计是否合理?代码是否合理等⾔⽅⽅⾯⾯。
三、性能测试类型1. 基准测试:在给系统施加较低压⼒时,查看系统的运⾏状况并记录相关数做为基础参考2. 负载测试:是指对系统不断地增加压⼒或增加⼀定压⼒下的持续时间,直到系统的某项或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等 。3. 压⼒测试:压⼒测试是评估系统处于或超过预期负载时系统的运⾏情况,关注点在于系统在峰值负载或超出最⼤载荷情况下的处理能⼒。4. 稳定性测试:在给系统加载⼀定业务压⼒的情况下,使系统运⾏⼀段时间,以此检测系统是否稳定。5. 并发测试:测试多个⽤户同时访问同⼀个应⽤、同⼀个模块或者数据记录时是否存在死锁或者其他性能问题, 四、性能测试应⽤场景(领域) 1、性能测试应⽤场景(领域)主要有:能⼒验证、规划能⼒、性能调优、缺陷发现、性能基准⽐较,下表简单介绍和对⽐了这⼏个场景的各⾃⽤途和特点:
常⽤性能 主要⽤途典型场景特点测试⽅法a)要求在已确定的环境下运在要求平均响应时间⼩于⾏关注在给定的软硬件a)负载测试2秒的前提下,如何判断b)需要根据典型场景设计测能⼒验证条件下,系统能否具b)压⼒测试系统是否能够⽀持50万试⽅案和⽤例,包括操作序有预期的能⼒表现c)稳定性能测试⽤户/天的访问量?列和并发⽤户量,需要明确的性能⽬标。某某系统计划在⼀年内获关注如何使系统具有客量在到xxx万,系统到a) 它是⼀种探索性的测试a) 负载测试规划能⼒我们要求的性能能⼒时候是否能⽀持这么多⽤b) 常⽤于了解系统性能和b) 压⼒测试户量?如果不能需要如何获得扩展性能的⽅法c) 配置测试调整系统的配置?某某系统上线运⾏⼀段时a) 并发测试主要⽤于对系统性能每次只改变⼀个配置,切忌性能调优间后响应速度越来越慢,b) 压⼒测试进⾏调优⽆ 休⽌的调优此时应该如何办?c) 配置测试某些缺陷只有在⾼负载的做为系统测试的补充,⽤来a) 并发测试发现缺陷或问题重情况下才能暴露出来,如发现并发问题,或是对系统缺陷发现b) 压⼒测试现、定位⼿段线程锁、资源竞争或内存已经出现的问题进⾏重现和泄露。定位 常⽤于敏捷开发过程中,敏捷开发流程的特点是⼩步快⾛,快速试错,迭代周期性能基准⽐短,需求变化频繁。很难定义完善的性能测试⽬标,也没有时间在每个迭代开展详细的性较能测试,可以通过建⽴性能基线,通过⽐较每次迭代中的性能表现变化,判断迭代是否达到了⽬标。2、通常在某个性能场景(领域)中需要联合使⽤多种性能测试⽅法⼀起进⾏性能测试,下表为性能测试应⽤领域与测试⽅法关联:
基准测试负载测试压⼒测试并发测试稳定性测试
五、性能测试基本概念 1、响应时间 a)定义:从⽤户发送⼀个请求到⽤户接收到服务器返回的响应数据这段时间就是响应时间 b) 关键路径:下图为⼀次http请求经过的路径,请求会经过⽹络发送到web服务器进⾏处理,如果需要操作DB,再由⽹络转发到数据库进⾏处理,然后返回值给web服务器,web服务器最后把结果数据通过⽹络返回给客户端。能⼒验证√ √√
√规划能⼒
√√
性能调优 √√√
缺陷发现
√√
性能基准⽐较
√√
c) 计算⽅法:Response time = (N1+N2+N3+N4)+ (A1+A2+a3),即:(⽹络时间 + 应⽤程序处理时间) d) 响应时间-负载对应关系:
图中拐点说明: 1、响应时间突然增加 2、意味着系统的⼀种或多种资源利⽤达到的极限 3、通常可以利⽤拐点来进⾏性能测试分析与定位 2、吞吐量 a)定义:单位时间内系统处理的客户端请求的数量 b)计算单位:⼀般使⽤请求数/秒做为吞吐量的单位,出可以使⽤ 页⾯数/秒表表⽰。 另外,从业务⾓度来说也可以使⽤ 访问⼈数 /天 或 页⾯访问量/天 做为单位。 c)计算⽅法:Throughput = (number of requests) / (total time). d)吞吐量-负载对应关系: 图中拐点说明: 1、吞吐量逐渐达到饱和 2、意味着系统的⼀种或多种资源利⽤达到的极限 3、通常可以利⽤拐点来进⾏性能测试分析与定位
3、并发数: 并发⽤户数:某⼀物理时刻同时向系统提交请求的⽤户数,提交的请求可能是同⼀个场景或功能,也可以是不同场景或功能。 在线⽤户数:某段时间内访问系统的⽤户数,这些⽤户并不⼀定同时向系统提交请求 系统⽤户数:系统注册的总⽤户数据 三者之间的关系:系统⽤户数 >= 在线⽤户数 >= 并发⽤户数 4、资源利⽤率 a) 定义:指的是对不同系统资源的使⽤程度,通常以占⽤最⼤值的百分⽐来衡量 b) 通常需要关注的服务器资源如下: 1、CPU:就像⼈的⼤脑,主要负责相关事情的判断以及实际处理的机制 2、内存:⼤脑中的记忆块区,将眼睛,⽪肤等收集到的信息记录起来的地⽅,以供cpu进⾏判断,但是是临时的,访问速度快,如果关机或断电这⾥的数据会消失。 3、磁盘IO:⼤脑中的记忆区块,将重要的数据保存起来(永久保存,关机或断电不会丢失,速度慢),以便将来再次使⽤这些数据。 4、⽹络: c)资源利⽤-负载对应关系: 图中拐点说明: 1、服务器某荐资源使⽤逐渐达到饱和 2、通常可以利⽤拐点来进⾏性能测试分析与定位 5、其它常⽤概念: a) TPS:Transactions Per Second,每秒事务数 b) 思考时间:⽤户每个操作后的暂停时间,或者叫操作之间的间隔时间,此时间内是不对服务器产⽣压⼒的 c) 点击数:每秒钟⽤户向WEB服务器提交的HTTP请求数。这个指标是WEB应⽤特有的⼀个指标:WEB应⽤是"请求-响应"模式,⽤户发出⼀次申请,服务器就要处理⼀次,所以点击是WEB应⽤能够处理的交易的最⼩单位。如果把每次点击定义为⼀个交易,点击率和TPS就是⼀个概念。容易看出,点击率越⼤,对服务器的压⼒越⼤。点击率只是⼀个性能参考指标,重要的是分析点击时产⽣的影响。需要注意的是,这⾥的点击并⾮指⿏标的⼀次单击操作,因为在⼀次单击操作中,客户端可能向服务器发出多个HTTP请求. d)PV:访问⼀个URL,产⽣⼀个PV(Page View,页⾯访问量),每⽇每个⽹站的总PV量是形容⼀个 ⽹站规模的重要指标。 UV:作为⼀个独⽴的⽤户,访问站点的所有页⾯均算作⼀个UV(Unique Visitor,⽤户访问)
六、理发店模型和曲线拐点模型 上⾯介绍了很多性能测试中的基本概念,⽐较抽象,可以通过 或 来帮忙我们更好的理解这些概念。这⾥不做详细介绍了,需要的可直接查看原⽂。
七、做好性能测试需要掌握的知识:掌握⼀门编程语⾔掌握计算机原理和操作系统知识良好的⽹络基础掌握数据库知识中间件(apache,tomcat)常⽤抓包⼯具性能测试⼯具
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689028456a197327.html
评论列表(0条)