场景编排解决"怎么把多个业务场景串起来跑",数据驱动解决"每次跑的数据不一样"——两者共同决定了性能测试的逼真度和可重复性。银行业务中,混合场景和峰值叠加是最容易被低估的复杂设计。
每种交易类型独立执行,互不影响。适合单交易性能基准测试——验证某个接口在不同并发下的表现。
多种交易类型按生产占比同时执行。适合综合性能评估——验证系统在多业务并行下的整体表现。银行典型混合比例可从生产日志提取,例如:查询类40%+转账类25%+缴费类15%+开户类10%+其他10%。
模拟联机交易与批量处理同时发生的场景,这是银行业最典型的性能风险点。例如:白天联机高峰期,后台同时进行报表生成或批量文件传输。测试时需在联机加压的同时启动批量任务线程。
将多个关联步骤组合成一个完整业务流程。例如:登录→查询余额→转账→查询转账记录→退出。场景编排时需处理步骤间的参数传递(如转账金额、账户号的动态关联)。
| 方式 | 实现 | 适用场景 | 注意 |
|---|---|---|---|
| CSV文件 | 从CSV读取账号、金额等 | 大量唯一数据场景 | 文件IO可能成为压测机瓶颈 |
| 随机生成 | 运行时动态生成参数 | 数据不需要唯一性 | 需确保随机范围覆盖真实分布 |
| 数据库读取 | 从测试库实时查询数据 | 数据需与生产完全一致 | 数据库连接可能成为瓶颈 |
| 函数生成 | UUID/时间戳/序列号 | 唯一标识类数据 | 确保不产生脏数据 |
操作:选取过去12个月中TPS最高的一天,提取该日的交易时间分布曲线。在压测中复现24小时负载曲线,同时在凌晨窗口叠加批处理任务。观察联机响应时间是否因批量任务而劣化。
操作:用JMeter CSV Data Set Config实现参数化,准备至少10万条测试数据确保压测期间不重复。设置Recycle on EOF=True和Stop thread on EOF=False实现数据循环使用。