如何进行性能测试前期需求调研

一.基础信息

系统名称:核心系统、ESB、手机银行、某中台等;

系统类型:新建,迭代优化,重构等;

测试目的:进行性能测试的目的:容量规划,性能验证或其它原因;

测试范围:单系统全链路系统,单系统是否涉及外呼等;

测试计划:编写此次性能测试的计划,即不同阶段达成以什么为结束标志,比如测试方案,环境准备,测试实施等,以及人员与机器等资源分配;

影响因素:要实施此次性能测试,有哪些潜在的问题,影响因素;

系统架构图/网络拓扑图:通过系统架构图/网络拓扑图,可以了解到系统的结构,数据流、交易路径等;

部署方式/部署层级:集群,分布式,微服务/web,ap,db层等;

性能测试环境:性能,UAT,SIT不同环境对测试结果的影响不同;

被测系统环境的软硬件配置:比如服务器是几核几G,有多少台;数据库是几核几G,有多少台,比如8C32G12台等;

关键参数:线程池,最大连接数,消费者数量,内存分配等;

网络:负载机和被测系统的网段,防火墙策略,带宽,CDN等,除了进行线上性能测试,单独的性能测试环境应在局域网进行;

业务模型:比如账务类业务,支付类业务,批量审核或提交,秒杀库存业务,查询业务等;

业务场景:什么时间什么用户做什么操作;

协议/接口:http,socket,tuxedo...;

连接方式:长连接,短连接;

通信策略:同步,异步;

变更策略:参数的加解密,拼接,动态变化,依赖关系等;

压力发起策略:性能测试工具选型以及发压策略;

测试环境:性能测试环境是否和生产环境保持一致的配置?如不能,如何解决或等比例换算?

操作系统:操作系统的版本,内存空间等;

软硬件版本:尽可能保证和生产环境一致的版本;

中间件:比如JVM的内存分配/GC算法,tomcat连接数/超时时间,MQ的消费者数量等;

数据库:哪种数据库(mysql、oracle、tidb、mongdb、hbase等),数据库参数(sga、连接数等);

应用程序:启动参数(-Xms、-Xmx、最大连接数等)。

二.性能指标

用户数:包括注册用户数,在线用户数,并发用户数等;

Tps:每秒事务数,包括服务端和数据库;

响应时间:包括平均响应时间,最大响应时间,最小响应时间等;

吞吐量:吞吐量在一定程度上可以用来衡量系统的容量;

交易量:日/月/某个时段内的交易量,可更好地衡量系统的容量和存在的压力;

交易成功率:即事务成功率,请求成功率,根据具体需求设定阈值,一般要求99.99%,甚至更细的粒度;

资源使用率:包括CPU%,MEM%,I/O读写速率等;

内存回收:是否能够正常回收内存;

波动率:通常建议不超过5%。

三.测试数据

限制条件:用户操作权限,数据引用次数,数据过期设定(次数,绝对时间);

数据量:摸查生产环境的数据量级,性能测试环境应保持同一量级,除了铺底数据还有测试脚本的参数化数据量;

数据类型:基础数据,测试数据,特殊数据;

数据特点:是否可以复用,是否具有唯一性,自增,加密,拼接,转义等;

准备方式:Copy真实环境数据,预埋铺底数据,脚本脱敏生成数据;

隔离方案:如何避免测试数据的污染?如何清理?建立影子库与影子表?环境隔离?如何标记区分?

四.测试模型

交易占比:确定典型交易和配置比例,完成业务模型分析;

选取思路:根据不同的常见选取交易量最高的时段,每种交易进行单独的数据统计;

场景选择:根据不同的场景(如高峰运营日、普通运营日、秒杀场景等)选择时段内的交易比例统计;

交易配比:单交易统计后,基于混合各交易的RT,结合并发用户数与平均响应时间,使总交易数符合测试模型中各交易的占比数;

思考时间:根据各交易类型和具体场景,选择思考时间是统一设定/随机设定/按实际场景设定。

更多内容请去公众号“测试小号等闲之辈”获取~

.监控搭建

搭建监控:针对不同操作系统、中间件、数据库部署相应的监控,监控可以在开源工具、商业化工具以及Shell 脚本进行选择。

.挡板配置

配置挡板:对于单系统涉及的外呼交易,通常需要设置挡板,可搭建独立的挡板系统,也可直接在代码中改造。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值