JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

自动化测试、回归测试平台调研,基于流量回放

wys521 2024-11-04 15:37:49 精选教程 25 ℃ 0 评论


方案

业内现在比较火的方案有很多,因为很多大厂都已经逐渐的倾向于基于流量回放的自动化测试、回归测试了。接下来我这里涉及几个开源方案来分析一下接下来的实现,主要参考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。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表