性能测试需求分析

性能测试需求分析要完成下面两项工作。
采集性能测试需求:采集对象包括业务交易、业务量、业务量趋势、用户信息、系统架构、业务指标、系统硬件指标等。
分析性能测试需求:确定性能测试范围,分析出哪些业务纳入性能测试范围及性能指标是什么,另外要分析用户使用行为,业务分布,分析业务量;估算出TPS与并发用户数等性能测试执行依据。
性能测试指标我们分为两类。
业务指标 :TPS、RT(ART)、事物成功率等
系统硬件指标 :CPU使用率、内存利用率、磁盘繁忙率、网络带宽占用率等
一、采集性能测试需求
1 性能测试需求从哪里获取呢?
1.1 一般的获取途径是从需求文档,在需求文档中有一部分描述的是非功能性需求,多数需求文档对于性能需求的说明都比较笼统抽象。
1.2 通常需要性能测试工程师主动向BA业务分析师了解性能需求。
2 性能测试需求的主要采集内容有哪些呢?
2.1 系统架构(物理架构与逻辑架构,包括中间件产品与配置、数据库配置),在测试环境建立时我们需要参考 物理架构规定了组成软件系统的物理元素(各种硬件设备)、这些物理元素之间的关系,以及它们部署到硬件上的策略。 逻辑架构让我们对系统的逻辑组成有所了解,进行测试时能够清楚地划分问题出现的区域。 逻辑架构展现的是软件系统中元件之间的关系,比如用户界面,数据库,外部系统接口等等。
2.2 采集业务并量化业务;我们在计算TPS及并发用户数时要用到。
2.3 了解业务扩展趋势,比如业务年增长率是多少?未来业务量是多少?比如系统的需求中说到要满足未来三年的业务增长需求,我们在测试时就可能需要生产三年的存量业务数据。对于关系性数据库来说,数据量大时对性能的影响还是比较明显的。
2.4 了解系统是否会有归档机制?大家知道数据库中数据量大时对性能是有影响的,如果有归档机制,可以把一些无用或者过时的信息移到归档库,这样就减少了当前库中的数据,有利于提高系统性能。
2.5 采集业务发生时段,比如一天产生20000订单,而高峰时1小时就能完成10000单,而不是平均到每小时。主要在估算TPS与并发用户数时用到。
2.6 采集在线用户数,活动用户数,业务分布。有些系统用户量特别大,会对系统造成性能瓶颈,可以通过分析活动用户数和业务分布来分析负载情况。
2.7 系统是否与第三方系统有关联关系?这决定在测试时我们是否要做挡板。
2.8 采集业务性能指标,比如RT、TPS等。
2.9 采集系统硬件指标,比如CPU利用率、内存利用率或者可用内存等。
业务需求 示例:
3 如何采集性能测试需求呢?
3.1 新应用类(全新立项系统,没有原型系统)。
对于新业务类系统我们从需求文档中采集性能需求,对于不完善的内容进行补充。
3.2 升级改成类(旧系统重构)。
对于升级类系统我们分析原型系统业务数据即可,最直接的办法就是分析原型系统的数据、同级业务量、业务分布等信息。
3.3 需求变动类(基于现有业务系统需求变更)。
需求变动类有可能存在于新应用中,也可能存在于升级改造类中,所以实际上我们只讨论新应用类与升级改造类两类。
4 举例:需求采集
4.1 物理架构
4.1.1 生产环境物理架构
4.1.2 WebServer负责反向代理,静态请求处理。例如:Nginx
4.1.3 Tomcat7负载动态请求处理。
4.1.4 Mysql5.6做双机热备。负载均衡
4.1.5 部署原则:为了更准确地模拟生产环境负载,在物理架构上建议尽量与生产同步。这样测试结果可比较性会较强,而比较时相对容易且可靠。而实际上往往测试环境不能够完全与生产环境匹配。
4.1.6 一方面是成本问题(生产环境机器众多),另一方面区域位置问题(比如生产环境面向全国或者全球)。这并不矛盾,我们建议是尽量架构同步,在机器配置及数量上,我们可以缩小比例。这就衍生出另外一个课题,如何由测试环境推算生产环境的性能。
4.2 逻辑架构
4.2.1  逻辑架构图
4.3 业务流程
4.4 业务相关性能需求
4.5 系统硬件指标
二、需求分析
需求分析的目的是确定性能测试范围,分析出哪些业务纳入性能测试范围及性能指标是什么?另外要分析用户使用行为,业务分布,分析业务量;估算TPS与并发用户数等性能测试执行依据。
1 圈定测试范围
关键业务、确定高频次的业务(日请求量)、逻辑复杂度、运营推广计划、确定此功能的可验证性(挡板)
2 明确性能指标
吞吐量(PV、TPS)、响应时间、成功率、稳定波动正常范围 、其他各项硬件等性能指标
3 分析业务量
3.1 需要做足一定数量的历史数据
3.2 关注业务量增长
例如:年业务增长率30%,可以理解成年PV也会增加30%
在测试时我们要以第三年的业务量为标准来测试,避免错过积累一定数据后性能变差的情况,把问题提前暴露出来
4 计算TPS
5 分析系统协议
三、并发数计算
1 由TPS来估算并发数;
2 由在线活动用户数来估算并发数
平均并发用户数为 C = nL/T 2)并发用户数峰值 C‘ = C + 3*根号C C是平均并发用户数,n是login session的数量,L是login session的平均长度,T是值考察的时间长度 C’是并发用户数峰值
3 据经验来估算并发数。
四、问答
大家需要准备以下答案内容:
1.性能测试范围怎么定,依据是什么?咱们jpress需要测试什么? 必答题
2.性能指标有哪些? 必答题
3.分析业务量
4.计算TPS必答题
5.计算并发用户数