火龙果-第1章性能测试基本概念
- 格式:ppt
- 大小:463.00 KB
- 文档页数:40


性能测试概述性能测试概述软件性能:软件质量属性中的“效率”特性,如时间特性(请求响应时间)、资源特性(消耗服务器资源)等⼀、性能测试概念1、性能测试:通过⾃动化的测试⼯具模拟不同的场景(正常、负载等)来对系统的各项性能指标进⾏测试。
2、性能测试⽬的:评估当前系统能⼒寻找性能瓶颈,优化性能评估软件是否能够满⾜未来需要3、性能与功能的差异从⽬标来看:功能关注产品是否符合功能需求规格,性能关注产品是否满⾜业务需求场景从关系上看:功能与性能相辅相成;在项⽬中,先进⾏功能测试,再进⾏性能测试⼆、性能测试指标1、响应时间:指⽤户从客户端发起⼀个请求开始,到服务端响应的整个过程所耗费的时间2、并发量:系统同时接收的请求数3、吞吐量:单位时间内处理的请求数量,直接体现系统的承载能⼒(TPS:每秒事务数,事务对应⼀个或多个接⼝请求 QPS:每秒查询数,查询对应单个接⼝请求)4、错误率:系统在负载情况下,业务失败的概率。
5、资源利⽤率:客户机系统各种硬件资源的使⽤情况三、性能测试策略1、基准测试针对单⽤户进⾏的业务场景测试,⽬标是获取单⽤户运⾏时的各项性能指标,从⽽建⽴起⼀个已知的性能⽔平⽤于对之后软硬件变化后的性能进⾏对⽐。
为多⽤户并发测试和复杂综合场景测试等性能分析提供依据识别系统或环境变更对于性能响应带来的影响为评价系统优化前后的性能提供参考指标2、负载测试通过不断提⾼系统负载,测试系统性能的变化,并最终确定在满⾜系统性能指标的前提下,系统所能承受的最⼤负载量。
负载:服务器接收的请求数量,请求越多,负载越⾼。
最优负载:对外最⼤负载:对内注意:负载测试的关注重点是逐步增加压⼒3、稳定性测试服务器稳定运⾏时(正常负载)进⾏的长时间测试(⼀天、⼀周等),确保服务器能满⾜线上业务需求。
四、性能测试流程1、性能需求分析:关注系统对特定业务场景的满⾜程度熟悉被测系统:业务功能、技术架构明确性能测试内容:从业务⾓度:确定关键业务(使⽤频率较⾼的业务)从技术⾓度:确定占⽤CPU、内存等资源较多的业务确定测试策略确定性能测试指标⽆明确指标:和类似系统进⾏对⽐有明确指标:平均响应时间⼩于100ms等2、性能测试计划及⽅案项⽬背景:项⽬的基本描述测试⽬的:项⽬需要满⾜的性能指标测试范围:确定需要测试的业务测试策略:基准-负载-稳定性风险控制:测试过程出现问题时的响应办法交付清单:测试计划、脚本,缺陷统计和性能测试报告进度与分⼯:各阶段的事务安排3、性能测试⽤例设计参考功能,区别在于期望,由⽬标功能点改为性能指标4、建⽴测试环境包括软、硬件及⽹络环境5、执⾏测试脚本6、性能测试监控执⾏测试脚本同时对各性能指标进⾏监控7、性能分析和调优8、性能测试报告。
性能测试包含了哪些测试(至少举出3种)压力测试、负载测试、并发测试、可靠测试、失效恢复测试。
一、性能测试概念系统的性能是个很大的概念,覆盖面非常广泛,对于一个软件系统而言包括了执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等等。
性能测试用来保证产品发布后,系统的性能满足用户的需求,性能测试在软件质量保证过程中起重要的作用1. 响应时间(response time)响应时间,是指系统对用户操作的反馈时间。
举例:显然,我们应该从按下“登录”按钮的那一瞬间开始计时,到登录后页面完全显示出来为止,这才是真正的用户登录时间,而不包括用户输入用户名和密码的时间以及思考停顿的时间(think time)登录响应时间其实包括3个部分:网络传输时间,服务器处理时间,浏览器显示时间即登录响应时间=网络传输时间*2+服务器处理时间+客户端显示时间网络传输是双向的,所以要乘以2。
网络传输时间又可以包括接入网的传输时间和互联网中的传输时间,它的大小和你所使用的上网方式有关,比如光纤一般要比adsl要快。
2. 吞吐量(throughput)(更加倾向web网站)吞吐量,是指单位时间内流经被测系统的数据流量,一般单位为b/s,即每秒钟流经的字节数。
吞吐量是大型门户网站以及各种电子商务网站衡量自身负载能力的一个很重要的指标,一般吞吐量越大,系统单位时间内处理的数据越多,系统的负载能力也越强。
吞吐量和很多因素有关,比如服务器的硬件配置,网络的拓扑结构,软件的技术架构等。
3. 稳定性测试(reliability testing)稳定性测试,也叫可靠性测试(reliability testing),是指连续运行被测系统,检查系统运行时的稳定程度。
我们通常用mtbf(mean time between failure,即错误发生的平均时间间隔)来衡量系统的稳定性,mtbf 越大,系统的稳定性越强4. 负载测试(load testing)负载测试,是性能测试的一种,通常是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。
1.性能测试的概念:为了描述测试对象与性能相关的特征,并对其进行评价而实施和执行的一类测试。
它主要通过自动化测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
通常大家把负载测试和压力测试统称为性能测试。
2.性能测试的分类:负载测试、压力测试、配置测试、并发测试、容量测试、可靠性测试和失败测试。
3.负载测试:通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统的性能指标情况下,系统所能够承受的最大负载量。
4.压力测试:通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并获得系统能够提供的最大服务级别。
5.配置测试:主要是通过对被测软件的软、硬件配置的测试,找到系统各项资源的最优分配原则。
6.并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,几乎所有的性能测试都会涉及一些并发测试。
7.容量测试:测试系统能够处理的最大回话能力,确定系统可处理同时在线的最大用户数,通常和数据库有关。
8.可靠性测试:通过给系统加载一定的业务压力的情况下,运行一段时间,检查系统是否稳定,因为运行时间较长,通常可以测出系统是否有内存泄漏等问题。
9.失败测试:对于有冗余备份和负载均衡的系统,通过这样的测试来检验如果系统局部发生故障,用户是否能够继续使用系统,用户受到多大的影响。
10.Loadrunner主要由VuGen、Controller和Analysis三个部分组成。
VuGen称为脚本生成器,用于开发Vuser脚本的主要工具。
Controller模拟一个多用户并行工作的环境来对应用程序进行负载测试。
Analysis对测试的结果数据进行分析。
11.集合点:用以虚拟用户恰好在同一时刻执行任务。
12.集合点的添加方式有两种:可以通过手工和菜单两种方式添加。
手工添加是用集合点函数lr_rendezvous();在菜单中添加选择菜单项中的Insert->rendezvous 进行添加。