Testing - 软件测试知识梳理 - 软件性能测试
2016-11-30 12:39
323 查看
软件性能测试的基本概念
软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是软件在完成该功能时展示出来的及时性。软件性能的指标
响应时间:是指系统对请求作出响应的时间,并且这个时间被人们的接收程度是随着需求的不同而不同。
系统相应时间和应用延迟时间:前面的响应时间主要是指用户感受到的响应时间,其中还可以具体分为系统响应时间和呈现时间,性能测试比较关注系统响应时间
系统响应时间又可以具体分为网络传输时间和应用延迟时间,性能测试比较关注应用延迟时间。
吞吐量:吞吐量是指系统在单位时间内处理请求的数量,但是并不是访问人数越多吞吐量越高,因为随着访问人数的增多系统的可分配的资源会减少造成吞吐量下降等。
并发用户数:是指系统可以同时承载的正常使用系统功能的用户数,与1秒钟几十万吞吐量相比上千用户的并发量是一个更直观但也更笼统的性能指标。
资源利用率:反映在一段时间内资源平均被占用的情况。
软件性能的角度
用户视角:对于用户而言,性能就是响应时间,对于大量的数据,如果一边返回数据一边呈现对于用户而言响应时间也是很快的
管理员视角:管理员可以通过使用软件提供的管理功能等手段来对系统性能进行优化,但是一般不涉及到源代码的修改
开发人员视角:开发人员的角度和管理员的角度基本是一致的,但是开发人员更需要深入的关注软件的性能
性能测试的目标
发现缺陷
性能调优
能力检验与规划
性能测试的分类
性能测试
并发测试
压力测试
可靠性测试
负载测试
配置测试
失效恢复测试
软件性能测试的执行
与功能测试相比,性能测试更复杂,执行难度更大,对测试工具的依赖也更强,更需要过程模型的指导,例如:PPTGM(Performance Testing General Model)性能测试通用模型。
PTGM模型主要包括6个步骤:
测试前期准备,通常要求软件已经通过功能测试并修正了缺陷
引入测试工具
指定测试计划,需要明确性能测试的目标
测试设计和开发,准备好软件运行的软硬件环境,用户并发使用软件的测试场景,每个用户具体如何使用该软件
测试执行和管理
测试结果分析
SEI负载测试计划过程主要考虑六个方面:
目标,指的是商业目标而不是技术目标,明确软件达到什么样的负载能力才能满足项目的商业目标
用户,是指可能产生负载或使用资源的人和软件过程
用例,是指用户对软件的不同使用方式
使用环境,软件在实际交付的运行环境中
测试环境,在测试中的环境
使用场景
LoadRunner的性能测试过程总体上是满足PTGM:
指定测试计划
设计测试用例
设计测试脚本(将测试用例转换成可以执行的测试脚本)
创建测试环境(测试脚本运行的测试环境)
运行测试脚本
分析测试结果
性能分析
性能下降曲线的分析。主要包括三个区间:性能平坦区,性能轻微下降区,性能急剧下降区
快速性能瓶颈识别:优先考虑吞吐量,优先考虑简单的测试用例,优先考虑基础系统的性能
性能计数器的分析:内存,处理器,I/O磁盘,进程等分析
性能测试的自动化
创建进程或者线程来模拟用户产生压力
对性能进行监控
对结果进行分析
依赖一些性能测试工具
小结
性能测试软件性能测试包括三个目标:发现缺陷;性能调优;能力检验与规划
软件性能的主要指标有:响应时间、系统响应时间和应用延迟时间、吞吐量、并发用户数、资源利用率
系统的响应时间通常是指该系统所有功能的平均响应时间或者所有功能的最大响应时间
对于无并发的应用系统而言,吞吐量与响应时间成严格的反比关系
吞吐量不能无限的增大,关键原因在于资源利用率不能无限的提高
资源利用率可以为性能调优提供很大帮助
在压力测试时,软件通常会处于性能下降曲线的哪个区间:性能轻微下降区
担任软件性能测试中最核心的技术力量的角色是设计人员
通常分析性能下降曲线时,会首先将其分为几个区间:性能平坦区、性能轻微下降区、性能急剧下降区。
性能平坦区是软件运行的正常状态,因此人们往往希望该区间越长越好;
性能轻微下降区是软件承受高负载的缓冲区,该区间也是越长越好;
性能急剧下降区不是软件的正常运行区间,这一阶段响应时间会急剧增加至用户不能忍受,吞吐量会急剧下降甚至低于单用户时的吞吐量,但该区间对于分析性能瓶颈却有很大作用,
通常说来,性能急剧下降区的起始点(也称性能拐点)就是性能瓶颈出现的地方,此时进一步分析资源利用率就可以找到性能瓶颈的原因。
参考信息
Software performance testing百科 - 软件性能测试
虫师 - 性能测试思想
性能测试应该怎么做?
相关文章推荐
- Testing - 软件测试知识梳理 - 测试流程
- Testing - 软件测试知识梳理 - 相关词汇
- Testing - 软件测试基础知识梳理
- Testing - 软件测试知识梳理 - 基础概念
- Testing - 软件测试知识梳理 - 测试模型
- Testing - 软件测试知识梳理 - 比较质量保证(QA)与质量控制(QC)
- Testing - 软件测试知识梳理 - 测试用例
- Testing - 软件测试知识梳理 - 测试阶段
- Testing - 软件测试知识梳理 - 测试方法
- Testing - 软件测试知识梳理 - 探索性测试
- Testing - 软件测试知识梳理 - 测试分类
- Testing - 软件测试知识梳理 - 理解测试
- Testing - 软件测试知识梳理 - 自动化测试
- 软件测试知识框架图-偏web性能测试
- [Testing] 软件测试工程师需要掌握的知识.
- Java软件开发基础知识梳理之(3)------JDCB操作数据库性能优化策略
- Testing - 软件测试知识汇总
- HP软件测试前七章基础知识梳理总结
- 最全,最强的软件测试资料汇总 (性能测试,性能调优,功能测试,自动化测试,测试管理,测试工具,测试用例设计,缺陷分析预防,前沿测试技术...)
- 如何写软件性能测试用例