作者简介:康猛,携程网站运营中心资深技术支持工程师。在互联网系统架构设计、后端开发、性能测试领域有多年实战经验。喜欢钻研新技术,善于转化研究成果,提升工作效率。
背景
众所周知,在产品迭代过程中,功能测试与性能测试是必不可少的两个环节。在产品上线的过程中,做容量预估离不开性能测试,在产品迭代过程中,测试 Case 覆盖率是功能测试必须要关注重要指标,甚至是一行代码的修改,没有经历过严格的功能与性能测试,都有可能导致大的生产故障。
近年来,携程生产环境应用改造项目逐渐增多,快速构造贴近生产的测试用例,压力可调的功能与性能测试场景,显得越来越不可或缺。
如何输出较大的压力源?
也许你心里已经涌现了很多现成方案,也许是 ApacheBench,可是想要用 ab 模拟生产的上下文顺序会不会有点痛苦?也许你想到了 JMeter,或者 LoadRunner?暂且不说 JMeter 和 LoadRunner 二次开发封装上下文逻辑的复杂度,单就想想需要人工构造海量贴近真实生产场景的测试 Case,就够让人头疼的了。
使用生产环境流量回放系统,可以使用生产环境的海量真实场景作为测试 Case,天然解决了海量测试 Case 的构造问题;系统支持录制多倍的生产流量,在回放过程中支持加压多倍进行回放,解决了较大压力源构造的问题;此外,系统天然支持 4 层与 7 层协议,可以快速支持各种特殊应用需求;最后,系统跨平台的特性,也决定了系统具有较好的场景适配能力。
一、方案
流量回放系统,