说明:
本文是基于虚拟机环境配置设计的
性能测试需求
核心业务接口:查询礼品、兑换礼品、查询订单
通过efk统计:https://www.cnblogs.com/uncleyong/p/15527484.html
(其它参考,基于ELK实现性能测试业务模型及tps提取:https://www.cnblogs.com/uncleyong/p/15179752.html)
业务模型是,查询礼品:兑换礼品:查询订单 = 2:1:1
总tps≥100
每个业务的rt<500ms
成功率≥99.5%
持续稳定跑50万业务量
单场景
目的:找到单场景的性能问题,为容量场景提供参考,如果低于容量场景中此接口的目标tps,那肯定要先优化
根据性能需求,单场景中:
查询礼品tps≥50
兑换礼品tps≥25
查询订单tps≥25
数据库存量数据设计
礼品:10000
库存:10000
订单:100000
参数化数据设计
查询礼品:10000
查询订单:10000
其它要求:
查询不超过50ms
开启慢查询及设置阈值
vim my.cnf
开启慢查询
slow_query_log=1 slow_query_log_file=/mysql/logs/slow.log
long_query_time=0.05
查询礼品
兑换礼品
查询订单
混合场景
目的:通过业务模型模拟线上的真实业务场景
如果混合场景设计不合理,导致的结果就是测试无参考价值
本次控制业务比例是通过吞吐量控制器,由于涉及关联,所以将业务比例转换成了压测业务比例
补充:
性能测试中混合场景设计举例:https://www.cnblogs.com/uncleyong/p/12667392.html
【答疑】几个关于性能测试混合场景中比例控制的问题:https://www.cnblogs.com/uncleyong/p/16950853.html
对应的混合场景设计如下:
业务1
业务2
稳定性场景
目的:系统长时间运行,业务数据积累对系统的影响
暂时假设最大混合tps是100,那么最少需要跑的时间是:50万/100=5000秒
可以适当多加10%-20%的时间
异常场景
暂未考虑
脚本其它设置
【性能项目实战:jmeter+k8s+微服务+skywalking+efk】汇总
详见:https://www.cnblogs.com/uncleyong/p/15475614.html