一、性能测试场景设计方式(如何判断产生多少tps)
1、在毫无任何数据的情况下(只能拍脑袋)
(1)拍脑袋
(2)根据竟品
(3)根据业务模型计算
2、如果知道一天的总访问量(pv)
(1)24小时平均,但这不符合正常的访问逻辑
(2)二八原则:原理来自百分之80的财富掌握在百分之20的人手里,即,百分之80的请求量,都会集中在一天内20%的时间里,当然这要看一整天的访问量走势,可以是二八原则,也可以是一九原则
比如说pv是1000 则tps是 (1000*0.8)/ (24*3600*0.2)
3、如果只知道UV
比如说1000个用户在线,并发度3% -%5
tps = 1000*5%
二、性能测试的流程
1、单接口测试
(1):对一个接口做简单基础测试,大约三到五个线程,跑十分钟,拿到平均响应时间和静默状态下资源大体的使用情况
(2)对一个接口做预热测试,取日常tps的平均值,相当于对新版本做一个冒烟压力测试
(3)梯度加压,观察系统到目标tps情况下的系统的各种表现
(4)再继续加压,获取系统的最大tps,即容量测试
2、混合接口测试
3、稳定性测试: 运行较长时间 ,一般8-24小时,看是否有tps有较大波动,有错误和异常,内存溢其中最重要的是TPS的稳定,一般最大处理能力的70%-80%
4、异常性能测试,比如说压两台服务器,突然挂了一台,整个服务是不是不会受影响
三、性能场景设计举例
举个例子,从一个月每天访问量的统计来看,我们应当抽下以下四个天数的数据
第一个:因为业务二当天访问量最大
第二个:因为业务三当天访问量最大
第三个:因为业务一当天访问量最大
第四个:因为总体业务访问量最大
例如我们做一个基础测试,测试每个接口的RT都是0.2秒
则针对单场景如下
例如:业务一 (只有天的数据的情况下)
最大交易量10月25日 交易量 7341022 用28原则TPS是7341022*0.8/24*60*60*0.2=340 平均响应时间0.2S 开启线程数 68
例如 : 业务二 (有小时数据)
最大交易量10月26日9点 交易量 530693 用28原则TPS是 530693*0.8/60*60*0.2=589 平均响应时间0.2S 开启线程数 118
混合场景(第四天):例如
总业务量 14682044 业务1占50% 业务2占30% 业务3占20%
使用预热测试方式,用五个线程压测混合场影,得到平均响应时间是0.2
二八原则,一天的tps是 14682044*0.8/24*60*60*0.2 =680 开启线程数是 136
如果能拿到交易峰值日当中,按小时的交易峰值,也应当测试交易峰值日中的业务1 业务2 业务3 峰值时间段的混合场景,因为在其他单场景测试过,但其他单场景的其他业务量并不大