需求分析前期准备
- 采集性能需求:包括业务交易情况、业务量、业务量趋势、用户信息、系统架构、业务指标、系统硬件指标等;
- 分析采集的性能需求:确定性能测试的范围,哪些能测,哪些该测、测试的指标是什么;分析用户使用的情况,业务量的分布情况,业务量的情况;估算TPS和并发用户数等;
性能测试的指标
- 业务方面的指标:包括TPS、RT、事务成功率等;
- 硬件性能指标:CPU使用率、内存利用率、磁盘利用率等;
性能测试采集的主要内容
- 系统架构:中间件配置、数据库配置等;
- 业务量的信息
- 业务量的扩展趋势
- 系统是否有归档机制
- 业务量发生的高峰时间段
- 系统在线用户数、活动用户数、业务的分布情况;
- 系统是否与第三方系统有关联;
- 系统业务性能指标
- 系统硬件指标
举个栗子
以jforun论坛为例进行性能测试;
1)采集的需求信息如下表格:
论坛的主要功能信息可以通过需求文档给出,例如论坛能干什么,其他的信息需要通过统计工具给出,以百度统计为例统计工具
以上是采集的数据信息,通过这个数据我们开始分析性能需求,包括对吞吐量TPS、并发用户数进行推测;
2)分析性能测试需求(TPS、并发用户数等)
- 业务量:通过统计得出日PV量是2万,系统扩展趋势是3年增长30%,所以3年后的日PV≈2*(1+30%)*(1+30%)≈3.38万
- TPS:每秒平均事务数。按照论坛系统而言,发一次新帖即为一个事务,回一个新帖即为一个事务;
而pv则代表页面一次请求,只是请求的内容可能包括图片、JS等,在计算时把PV≈TPS;
计算TPS通常按照高峰时期的数据进行计算,由高峰数据表可以看出上午9点到10点下午14点到15点是高等时间段,按照上午十点来计算。从表中的数据可以看出,10时的PV数为1300+2706+526+676=5208PV,那TPS=5208PV÷3600s≈1.45,这个计算出的结果是一个大概的值,一般来说如果能得到每分钟的业务量数值就更精确,通常在计算TPS的时候还采用28原则(即用20%的时间完成80%的事务)所以另一种更好的计算方式为下表格:
- 并发用户数:常用 计算并发数的方法1)由TPS数来估算并发数;2)由在线用户数来估算并发数;3)根据经验来估算并发用户数;
大多数情况下使用: 并发用户数=TPS (Runtime+Thinktime)其中Thinktime为3;Runtime是测试程序运行一次所需的时间;
此论坛系统的并发用户数估算为76=5.813;择每个业务的并发用户数如下表:
PS:
平均并发用户数如下
1)平均并发用户数为 C = nL/T
2)并发用户数峰值 C‘ = C + 3*根号C
C是平均并发用户数,n是login session的数量,L是login session的平均长度,T是值考察的时间长度;C’是并发用户数峰值
大多数情况下使用: 并发用户数=TPS *(Runtime+Thinktime)其中Thinktime为3;Runtime是测试程序运行一次所需的时间;或者还有把Runtime、Thinktime归为响应时间