作者简介
Tony Liu,携程高级测试经理,专注性能测试分析和辅助测试工具的开发。
一 、前言
性能测试在整个软件/互联网行业中占据着非常重要的位置,自身应用的性能好坏,不仅影响客户体验和用户粘度,也是公司品牌的一部分,如何高效率地完成性能测试就显得格外重要。
性能测试从流程上划分,可简单分为压测和分析两个阶段,其中更容易工具化的是压测。从所针对的环境,可以分为线下压测和线上压测。本次我们要解决的问题就是,怎样高效地进行线上应用的压测。
高效要具备三个特点:
1)方便,任何人都可以快速地发起一个线上的性能压测;
2)安全,不会因为线上性能操作的方便而引起事故;
3)简单,压测结果简单明了,直观可追溯;
基于Mirror集群的自助性能测试,它的压测核心是容器流量转发,如图1所示。
图1 Mirror回放示意图
为什么选择mirror回放作为线上的压测手段?
对比ES回放和流量包回放,mirror回放:
1)场景丰富度高,因为其引流的是整个集群的流量,可长时间不间断回放;
2)回放服务器的维护简单,只需要在用的时候创建,不用时销毁即可,有利于提高服务器利用率,节省成本;
3)配置使用简单,只需配置要引流的接口和引流比例即可;
4)开发和业务测试都可以方便的操作,有利于把性能测试人员解放出来;
5)和线下自助性能平台一起,覆盖线上线下自助性能测试的工作;
6)提高项目支持度,增加性能分析比重和分析率。
mirror回放使得2~3个性能测试人员,就能够支持携程酒店上千应用的性能压测工作。也使酒店性能项目分析率从2019年初的20%-30%提高到现在的50%-60%,同时提高了性能测试人员自身的自我认可度和核心价值。
二、技术背景
随着公司应用部署方式的不断演进,从最初的传统物理机部署方式,到后来的虚拟化部署方式,再到现在的容器化部署,公司整体的服务器运维和效率大大提高。而伴随着容器化部署的不断完善&