关于互联网金融平台性能测试的过程经历分享

2022-09-30 16:37发布

项目角色


性能测试专家,负责互金平台以及5个关联外围系统性能测试方案制定、测试策略制定,测试前期配合架构组,某某云根据平台内各模块的目标处理能力流量统计来计算调用占比并估算机器设备配置。端对端脚本开发。


测试过程中协助项目组进行问题分析定位优化建议。测试后期负责测试报告编制,问题类型整理。


测试范围


本次测试范围包括互联网金融平台自身7个模块,7个关联改造的外围系统。


测试策略


  • 整个测试计划分为公有云测试和私有云测试、端对端单模块测试和全链路测试;


  • 单模块测试主要是模拟消费者向sofa-life框架发起服务请求,由sofa-life从注册中心RPC调用相应系统模块的服务进行压测;


  • 后台各个应用服务通过蚂蚁分布式数据源(DBP)中间件与数据库(OceanBean)各个分片连接。


全链路测试主要从外联网关发起,经过产品等模块一直到互联网核心。


部分互联网金融区的自身模块通过内联网关和ESB总线交互从而调用传统区的服务,包括联机服务、联机批处理和日终批处理三大部分,包括性能测试和高可用性测试。


一期的测试重点主要在分布式核心系统,测试覆盖直接间接涉及的内容也挺多的,包括分布式事务支持力度、分库分表方法数据拆分策略的合理性、通信链路调用跟踪是否方便。


日志打印输出在虚拟环境下是否存在IO瓶颈,消息中间是否存在大并发下消息堆积问题,缓存命中率、缓存失效是否会引起雪崩。系统处理能力是否稳定,是否存在异常捕获不完整导致问题定位跟踪困难。


重复性交易(幂等性控制包括但不限于:用户重复提交、网络层报文重发、消息中心消息重发、调度中心多次调度、第三方合作机构报文重发场景)是否满足幂等性。


由于数据库分片策略是根据客户账号的倒数2、3位进行的,因此铺底数据,脚本参数化设置,使请求分布均衡,避免测试引入热点写问题。


测试过程中发现的一系列典型问题:

  • 数据库连接池信号量泄露问题;


  • 下游交易服务未满足幂等性出现上游放款请求多次重发导致的实际放款资金和日终批处理后清算资金不符重大功能性缺陷;


  • 消息堵塞导致交易超时问题;


  • IO日志非异步写入导致在虚拟环境下出现IO瓶颈导致服务响应时间超标问题。