方案
业内现在比较火的方案有很多,因为很多大厂都已经逐渐的倾向于基于流量回放的自动化测试、回归测试了。接下来我这里涉及几个开源方案来分析一下接下来的实现,主要参考Repeater。
JVM-SandBox-Repeater
这个是阿里团队开源的一个测试组件,基于JVM-SandBox,也就是字节码增强技术,大家也称之为插桩。
repeater具备哪些能力呢
通用的录制、回放能力:无侵入的录制HTTP、Java、Dubbo入参和返回值的能力,因为基于插桩方式,所以业务无感知。
调用追踪能力:基于TTL提供多线程的调用追踪的能力,可以追踪一次请求的调用路径
Mock能力:可以对请求设置Mock
扩展性:可以扩展很多种插件,进行链路关联、录制回放
使用场景
业务快速回归:基于线上流量的录制、回放,无需人肉准备自动化脚本、构造测试数据
线上问题排查:录制线上数据,线下回访,协助定位排查问题
压测流量准备:可以录制HTTP接口、Dubbo接口流量,作为压测流量的模型进行压测。
实时业务监控:动态业务监控,对接口返回数据正确性进行校验和监控
工作原理简析
流量录制
流量录制很简单,前面说了,repeater是基于JVM-SandBox搞的,原理就是Java Agent插桩,跟Pinpoint等工具很类似,所以可以在执行的方法前后做拦截,然后在方法执行前,记录下入参,在方法执行后记录下出参,入参、出参组成一条记录,保存。
流量回放
流量已经录制完毕并且已经存储,那么这时候我们就可以读取入口,然后构造数据,发起调用。可以在调用完毕后,对比前次结果和本次结果,实现回归测试。
注意:这里主要是搞读请求接口,或者做了幂等写入的接口,其他的写场景需要考虑数据安全,避免产生脏数据影响业务。当然我们也可以自己通过Mock服务进行数据Mock。
当前支持的插件
http、plugin、ibatis、mybatis、java、redis、hibernate、spring-data-jpa。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/82622.html