性能测试整体流程分为以下几部分:
本次分享一下第一部分:需求评估
i. 目的:评估是否需要做性能测试。
1. 需要做性能测试
a) 新产品要上线,预估单台机器QPS峰值超过100。
b) 已经上线过的产品,由于接入了新的业务或者用户量增加,预估单台机器QPS峰值超过100。
2. 不需要做性能测试
a) 单台机器QPS峰值低于50的需求。
b) 有相同产品实现逻辑的产品,且已经做过性能测试。
例如:假如一个请求,每次用户开启应用时都会发送到服务器,服务器则会返回给客户端本账号在好友中的积分排名情况。从产品的角度认为,每次应用启动,都会触发服务器查询一次数据库。这样会数据库会造成很大压力。而测试再了解了具体实现后发现:针对每个用户机器码的排序数据是从redis服务器返回的,而redis服务器会每隔一小时请求存储的mysql服务器来更新账号排名信息,这样看来mysql服务器请求频率很低,没有任何压力。由于redis服务器的性能之前已经测试过类似的,没有性能问题,所以这次并不需要对mysql服务器做压力测试。
3. QPS评估方法:
a) 产品已经灰度或者上过线,可直接参考灰度数据来推算全量用户的QPS峰值。
b) 产品未上过线,可通过类似已上线的产品来评估线上QPS
c) 以上两种都不符合,可通过通用算法来推算QPS。
计算模型:
i. 每台服务器每秒处理请求的数量=((80%*总PV量)/(24小时*60分*60秒*40%)) / 服务器数量 。
ii. 其中关键的参数是80%、40%。表示一天中有80%的请求发生在一天的40%的时间内。24小时的40%是9.6小时,有80%的请求发生一天的9.6个小时当中(很适合互联网的应用,白天请求多,晚上请求少)。
简单计算的结果:
iii. ((80%*500万)/(24小时*60分*60秒*40%))/1 = 115.7个请求/秒
{测试窝原创文章,作者:曹承臻}
作者简介:曹承臻,06届大学本科毕业,数学专业,6年软件测试行业经验。