前言
系统微服务化后,传统的自测/测试方式都变得比较困难:
- 依赖的服务可能不稳定。
- 服务无法提供期望的响应数据。
- 缺少场景构造标准。
随着整体业务越来越复杂,微服务依赖的越来越多,测试方案必须相应的迭代。
利用线上流量进行测试
解决方案:
- MOCK
- 线上流量录制
Http
对于http请求,一般都有一个proxy作为流量转发,可以直接从proxy着手。 可以直接从proxy引入流量,也可以在下游机器做串型化接入。 可以基于nginx+lua实现,增加一段lua逻辑即可实现。
Thrift
thrift一般不会有一个中心的proxy负责流量转发,而是直接采用直连。 当然仍然可以采用proxy方式,增加一个proxy,但是在架构上改动会比较大,proxy还会带来性能损耗。 所以thrift一般采用串型方式。
thrift不像http有明确的content-length等可以判断包界限,有短链接也有长链接,所以建议在转发时,增加一个id。
TCPCopy
TCPCopy是一种请求复制(复制基于TCP的packets)工具,通过复制在线数据包,修改TCP/IP头部信息,发送给测试服务器,达到欺骗测试服务器的TCP程序的目的,从而为欺骗上层应用打下坚实基础。
参考wiki:http://www.cnblogs.com/zhengyun_ustc/p/tcpcopy.html