持续更新…
标记
1. 性能测试起步
1.1 不同的角度看性能
- 从黑盒测试的角度
- 数据请求经过网络发送
- 服务器前端接收处理
- 在数据库服务器获取相关数据
- 前端处理后返回数据
- 应用界接收到数据响应
- 从程序员的角度
- 结构合理性
- 数据库设计合理性
- 代码与算法
- 系统中资源的使用方式
- 系统运维角度
- 硬件资源利用率
- 何种硬件可以提高系统性能
- 系统能够支持7*24(一周的时长)的服务
- 扩展性、兼容性、最大容量、可能的瓶颈
1.2 影响性能的因素
- 硬件配置
CPU、内存、网络 - 操作系统
- 开发语言
- 用户量
- 操作方式
- 操作环境
- 使用时间
- 开发者技术水平
…
2. 性能测试概述
2.1 性能测试定义和分类
性能测试定义
性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样。中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测。
性能测试:是通过自动化测试工具模拟多种正常、峰值以及异常负载条件来对系统的各种性能指标进行测试。主要包含三层含义:
- 通常,性能测试需要借助工具来实现;
- 性能测试除了关注普通的正常的情况外,还重点关注空间和时间上的很多峰值或异常的系统运行情况;
- 性能测试借助所监控和收集的各项指标来分析系统性能
性能测试的分类
- 一般性能测试:验证软件在正常情况和系统条件下能够满足性能指标。
- 负载测试:验证系统在一定压力下延长系统运行时间,直到系统性能出现“拐点”。
- 压力测试:验证系统在已经处于极限负载下或者某指标已经处于饱和状态下系统性能的表现。
- 稳定性测试: 验证系统在连续运行的情况下,查看系统的各项性能指标。——MTBF(错误发生的平均时间间隔)
- 大数据量测试:验证系统在使用大批量数据对系统产生压力或影响的情况下系统各种指标是否正常。
- 配置测试:验证系统在不同的软件或硬件配置的情况下,找出系统各项资源的最优分配。
2.2 常用性能测试术语
- 虚拟用户(Virtual User,简称vu):在测试环境中,Loadrunner和一些性能测试工具在物理计算机上使用Vuser来“虚拟”实际用户的操作行为。
- 并发和并发用户数:
并发:强调“大量用户”的“同时性”操作,该操作要求对服务器(不是客户端)产生压力; 并发用户数:指的是在某一时刻同时进行了对服务器产生影响的操作的用户数量(并发用户数<在线用户数<系统用户数)。 注意:“系统用户数”与“在线用户数”之间的差异,“系统用户数”指的是某一个特定的系统的用户总量;“在线用户数”指的是登陆了系统或正在使用系统的用户人数。 - 响应时间:包含“请求响应时间”和“事务响应时间”。
请求响应时间:服务器收到用户请求到把响应内容发送出去,这段时间(运维考虑); 事务响应时间:处理请求对应事务的时间(开发考虑); 如果从用户的角度来说,响应的时间为:从请求发出到看到响应结果,这个响应时间的影响因素有很多,比如:用户的带宽,运营商,服务器,服务器的数据处理,返回的运营商,用户电脑的处理速度等。
- 思考时间:两次请求之间的间隔时间(loadrunner中默认情况下,思考时间是0)。
- 点击率:一般指每秒钟用户向服务器提交的请求数(Web测试中特指HTTP请求数)。
- 每秒事务数(Transaction Per Second,TPS):指每秒钟系统能够处理的交易或事务的数量(评判系统的处理能力)。
- 吞吐量与吞吐率:
吞吐量:在单次业务中,客户端和服务器进行的数据交互总量,受服务器性能和网络性能的影响; 吞吐率:吞吐量除以传输时间,衡量服务器性能和网络性能的重要指标之一,一般可以用“请求数/秒、页面数/秒、字节数/秒”等单位衡量。(“字节数/秒”最常用) - 性能计数器(操作系统层面,一般运维人员用的较多):性能计数器是一系列用于描述各类型服务器或者操作系统性能的指标,在进行资源监控和系统瓶颈分析中起着重要的作用。
并发的三个条件:大量的用户,同时性操作、操作要对服务器产生压力。 类似的,物理上的共振:是指一物理系统在特定频率和波长下,比其他频率和波长以更大的振幅做振动的情形;这些特定频率和波长称之为共振频率和共振波长。在共振频率和共振波长下,很小的周期振动便可产生很大的振动,因为系统储存了动能。当阻力很小时,共振频率和共振波长大约与系统自然频率和自然波长(或称固有频率和固有波长)相等,后者是自由振荡时的频率和波长。
3. 性能测试流程
3.1 性能测试流程
功能测试流程:功能需求分析—测试计划(功能)—测试环境的搭建—测试设计—测试执行—提bug—开发改bug—验证和关闭。 性能测试流程:性能需求分析—测试计划(性能)—测试环境的搭建(无限接近于实际运行环境)—测试工具的选择—测试执行—发现性能瓶颈(提Bug)—性能调整和优化(开发改bug)—验证和关闭
性能测试流程如下图:
- 性能需求分析
性能需求中要求有明确的指标,它是用来判断未来结果是否准确的依据(预期结果)。 性能测试需求提出的依据: 1)客户方提出 2)根据历史数据分析 3)需求分析与定位 4)参考历史项目或者其他同行业项目 5)参考其他数据资料 eg: 响应速度:API请求的平均响应时间应低于1s,WEB首页打开速度5s以下,web登录速度15s以下; 服务支持50万用户同时在线; 某个接口支持200个用户同时调用(平均3s调用一次); 计费请求成功率达到99.999%以上; 在100个并发用户的高峰期,邮箱的基本功能,处理能力至少达到10TPS; 系统能在高于实际系统运行压力1倍的情况下,稳定运行12h… - 测试场景设计
如下图所示: - 测试结果是否通过的标准(仅供参考)
如下表所示:
3.2 性能测试的专业分析
3.3 性能测试用例设计
4. 所需技能和要求
|