kudiffy-一个很酷的自动化回归平台

背景介绍

系统重构、拆分、底层依赖变更,变更影响范围大,测试回归冗余而繁杂,测试如何进行高效率的回归测试?

为了解决上述问题,我们结合了公司内部资源及一些优秀的开源工具,开发了kudiffy平台。

首先,先来介绍一下两个开源工具。

1. Diffy

Twitter公司发布的自动化测试开源工具,可以将请求分发到不同版本的服务器上,通过对比运行结果来进行接口回归,不用再通过接口测试用例手动校验。详见: http://www.github.com/twitter/diffy

2. Goreplay

流量回放的开源工具,支持HTTP请求的录制和重放,详见: https://github.com/buger/goreplay/wiki。

使用这两种工具可以帮助我们提升一定的工作效率,但经过一段时间的使用,发现存在一些问题,如:

  1. 上手需要一定的时间成本,需要手动下载并安装
  2. 服务杂乱无章,可维护性差

基于上述问题,我们开发了kudiffy平台用于统一管理diffy和goreplay服务,并且不用手动安装下载,无接入成本。接下来,我将详细介绍强大的kudiffy平台!

kudiffy平台

一.系统介绍

diffy平台:

整体架构:

流程图

实现功能:

  1. diffy服务管理平台化,统一管理
  2. goreplay和diffy结合,实现实时流量回放并对比结果
  3. 打通公司内部devops,获取SOA、接口等信息
  4. 权限控制,接入sso及cmdb,获取用户权限信息
  5. 打通公司部署系统,每次部署完成自动重启diffy服务
  6. 对接接口自动化平台,自动校验不同服务版本返回值

二.使用方法

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运行结果加入质量卡点等

共同参与开发者:肖邦,夏灵,三笠,惜寒,少安,思思

我来评几句
登录后评论

已发表评论数()

相关站点

热门文章