一、性能需求:
1、性能测试点的选取
1)发生频率非常高的(例如:某邮箱核心业务系统中的登录、收发邮件等业务,它们在每天的业务总量中占到90%以上)
2)关键程度非常高的(产品经理认为绝对不能出现问题的,如登录等)
3)资源占用非常严重的(导致磁盘I/O非常大的,例如某个业务进行结果提交时需要向数十个表存取数据,或者一个查询提交请求时会检索出大量的数据记录)
下面看来分析某邮箱系统的需求:
按照某某邮箱20000万注册用户,其中日活跃用户数为1.5%的规模计算:日活跃用户=20000*1.5%=300万日活跃用户人均每天发6封邮件,用户使用客户端收发邮件比例20%,则:每天发邮件投递量=300万*6*20%=360万封
1、如何得到每秒的邮件数?
方式一:
严格的根据2/8原则,80%的邮件集中在20%的时间发送。
集中发邮件数:
3600000*80%=28800000封
集中发送的时间:
24*20%=4.8小时=17280秒
每秒发送邮件数:
2880000/17280=166.7封/秒
方式二,根据
某某邮箱业务模型表,每天忙时集中邮件系数0.15,邮件平均峰值系数2,则:峰值邮件量=3600000*0.15*2/3600=300封/秒
注:忙时集中系数=忙时业务量/全天业务量
在两种方式的分析中,方法二得出的结果是方法一的将近一倍,我们不要根据经验理所当然的去分析,要深入的了解系统,我们要对行业指标及计算方式。如果按照第一种方式,性能测试达标了,但系统真正上线后可能远远超出了我们的评估。
2008年北京奥运运门票系统就是一个典型的案例。
再来分析系统的登录:
去年全年处理“WEB登录”交易约100万笔,考虑到3年后交易量递增到每年200万笔。
假设每年交易量集中在8个月,每个月20个工作日,每个工作日8小时,试采用80~20原理估算系统服务器高峰期“WEB登录”的交易吞吐量应达到怎样的一个处理能力200万/8=25万/月25万/20=1.25万/日1.25万*80%/(8*20%*3600)=1.74TPS
二:二八原则:
业务场景分析是为了在测试中尽可能的模拟实际业务发生时的真实负载,并制定服务性能指标。假设我们设置成100个Vuser并发访问存款服务,如果存款服务一天的业务量据统计有100万,每天员工工作时间为八小时,我们可根据二八原则,估算出服务的每秒通过数指标。(1000000*80%)/(100*8*3600*20%)=1.39
即每秒做1.39个服务就能满足实际要求,而服务的响应时间指标就是1/1.39=0.72,即服务响应时间是0.72秒就能满足要求了。合理的业务场景分析能够帮助我们更准确把握实际情况,避免测试负载不足或者测试负载过重