01
压力测试基础
什么是交易系统压力测试、为什么需要压力测试、核心指标(TPS、延迟、错误率)
TPS延迟错误率
02
测试环境搭建
硬件选型建议、操作系统调优(Linux内核参数)、网络配置(零拷贝、网卡多队列)
Linux零拷贝网卡多队列
03
压测工具选型
wrk、JMeter、Locust、自研工具对比,如何选择适合交易系统的工具
wrkJMeterLocust
04
测试脚本编写
基于Python + Locust编写基础压测脚本,模拟下单、撤单、查询等请求
PythonLocust下单
05
参数化与数据准备
如何生成海量模拟订单数据,避免数据热点,保证测试真实性
海量数据热点真实性
06
并发模型设计
线程模型 vs 协程模型,交易系统为什么更适合协程?
线程协程并发
07
连接池与复用
TCP连接池配置、HTTP Keep-Alive、长连接在压测中的重要性
TCPKeep-Alive长连接
08
请求构造技巧
如何构造符合交易所协议的请求(FIX/简易JSON),签名与时间戳处理
FIXJSON签名
09
响应时间分析
平均延迟、P50/P95/P99延迟、最大延迟,如何解读这些指标
P50P99延迟
10
吞吐量测试
如何测量系统最大TPS,找到系统的瓶颈点
TPS瓶颈吞吐量
11
错误率监控
HTTP 4xx/5xx、业务错误码、超时、连接重置,如何分类与统计
4xx5xx超时
12
资源监控
CPU、内存、磁盘IO、网络带宽、句柄数,压测时哪些指标必须盯
CPU内存IO
13
数据库压测
对MySQL/Redis进行读写压测,关注连接数、慢查询、主从延迟
MySQLRedis慢查询
14
消息队列压测
Kafka/RabbitMQ的生产与消费能力测试,积压与吞吐量
KafkaRabbitMQ积压
15
缓存层压测
Redis单机与集群的读写性能,缓存穿透、击穿、雪崩场景模拟
缓存穿透击穿雪崩
16
网关层压测
Nginx/OpenResty的限流、熔断、转发性能测试
Nginx限流熔断
17
全链路压测
从客户端 -> 网关 -> 业务服务 -> 数据库的全链路模拟
全链路端到端模拟
18
稳定性测试
长时间压测(8小时/24小时),观察内存泄漏、连接泄漏、GC问题
长时间内存泄漏GC
19
突发流量模拟
模拟秒杀、行情暴涨等极端场景,测试系统的弹性伸缩能力
秒杀弹性伸缩突发
20
降级与熔断测试
当依赖服务挂掉时,系统是否正常降级,熔断器是否生效
降级熔断容错
21
数据一致性校验
压测过程中如何验证订单状态、资金余额的一致性
一致性订单资金
22
日志与监控集成
压测时如何接入Prometheus + Grafana,实时看板搭建
PrometheusGrafana看板
23
结果报告生成
使用Python生成HTML/PDF压测报告,包含图表与趋势分析
报告图表PDF
24
瓶颈定位方法论
自上而下 vs 自下而上,如何快速定位CPU、IO、锁竞争等瓶颈
CPUIO锁竞争
25
代码级性能分析
使用cProfile、py-spy、火焰图分析Python代码热点
cProfilepy-spy火焰图
26
JVM调优(Java服务)
GC日志分析、堆内存设置、线程栈分析,针对交易系统的JVM参数
JVMGC堆内存
27
网络延迟模拟
使用tc命令模拟网络延迟、丢包、抖动,测试系统鲁棒性
tc延迟丢包
28
安全压测
DDoS模拟、SQL注入尝试、接口防重放测试,确保系统安全
DDoSSQL注入防重放
29
自动化压测流水线
将压测集成到CI/CD中,每次发布前自动执行回归压测
CI/CD自动化回归
30
实战案例复盘
某交易所上线前压测全过程复盘,从发现问题到优化再到最终上线
复盘交易所上线