kudiffy-一个很酷的自动化回归平台
背景介绍系统重构、拆分、底层依赖变更,变更影响范围大,测试回归冗余而繁杂,测试如何进行高效率的回归测试?为了解决上述问题,我们结合了公司内部资源及一些优秀的开源工具,开发了kudiffy平台。首先,先来介绍一下两个开源工具。1.DiffyTwitter公司发布的自动化测试开源工具,可以将请求分发到不同版本的服务器上,通过对比运行结果来进行接口回归,不用再通过接口测试用例手动校验。详见:http:/
背景介绍
系统重构、拆分、底层依赖变更,变更影响范围大,测试回归冗余而繁杂,测试如何进行高效率的回归测试?
为了解决上述问题,我们结合了公司内部资源及一些优秀的开源工具,开发了kudiffy平台。
首先,先来介绍一下两个开源工具。
1.Diffy
Twitter公司发布的自动化测试开源工具,可以将请求分发到不同版本的服务器上,通过对比运行结果来进行接口回归,不用再通过接口测试用例手动校验。详见:http://www.github.com/twitter/diffy
2. Goreplay
流量回放的开源工具,支持HTTP请求的录制和重放,详见:https://github.com/buger/goreplay/wiki。
使用这两种工具可以帮助我们提升一定的工作效率,但经过一段时间的使用,发现存在一些问题,如:
-
上手需要一定的时间成本,需要手动下载并安装
-
服务杂乱无章,可维护性差
基于上述问题,我们开发了kudiffy平台用于统一管理diffy和goreplay服务,并且不用手动安装下载,无接入成本。接下来,我将详细介绍强大的kudiffy平台!
kudiffy平台
系统介绍
diffy平台:
整体架构:
流程图
实现功能:
-
diffy服务管理平台化,统一管理
-
goreplay和diffy结合,实现实时流量回放并对比结果
-
打通公司内部devops,获取SOA、接口等信息
-
权限控制,接入sso及cmdb,获取用户权限信息
-
打通公司部署系统,每次部署完成自动重启diffy服务
-
对接接口自动化平台,自动校验不同服务版本返回值
使用方法
一.diffy服务创建:
1.接入零成本,对接公司内部服务权限,筛选登录用户可操作的服务器及ip
2.接入后平台状态展示,判断diffy服务存活状态,如果被kill,可手动重启
3.页面直接查看运行结果
4.将diffy与接口自动化框架结合,返回结果自动校验,无需手动编码对比
二.goreplay与diffy的结合
1.导流服务接入,支持特定接口筛选
2.接入页面展示
3.开始导流后,会将目标服务器上的流量录制,并发送到对应的diffy服务上,自动对比运行结果,无需手动发送请求
后续计划
目前kudiffy平台已经在多个业务组实践,很好的提高了大家的回归效率。但仍然还有可以优化的部分,例如:
1.mock功能,对于调用链路很长的请求,上下游服务的稳定性会影响diffy对比的结果,mock请求可支持diffy结果更稳定和准确;数据库mock功能,也可解决post接口回放数据污染问题
2.根据业务特性,支持定制化改造
3.流程优化,如推动研发利用工具自测,将diffy运行结果加入质量卡点等
共同参与开发者:肖邦,夏灵,三笠,惜寒,少安,思思
服务推荐
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)