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

阅读量:

背景介绍

系统重构、拆分、底层依赖变更,变更影响范围大,测试回归冗余而繁杂,测试如何进行高效率的回归测试?
为了解决上述问题,我们结合了公司内部资源及一些优秀的开源工具,开发了kudiffy平台。
首先,先来介绍一下两个开源工具。

1. Diffy

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

2

2. Goreplay

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

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

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

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

kudiffy平台

一.系统介绍

diffy平台:

6

整体架构:

13

流程图

4

定时任务流程图
5

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

二.使用方法

diffy服务创建:

1.接入零成本,对接公司内部服务权限,筛选登录用户可操作的服务器及ip

5--1-

2.接入后平台状态展示,判断diffy服务存活状态,如果被kill,可手动重启
8

3.页面直接查看运行结果

10

4.将diffy与接口自动化框架结合,返回结果自动校验,无需手动编码对比

goreplay与diffy的结合

1.导流服务接入,支持特定接口筛选
11

2.接入页面展示
12

3.开始导流后,会将目标服务器上的流量录制,并发送到对应的diffy服务上,自动对比运行结果,无需手动发送请求

后续计划

目前kudiffy平台已经在多个业务组实践,很好的提高了大家的回归效率。但仍然还有可以优化的部分,例如:

1.mock功能,对于调用链路很长的请求,上下游服务的稳定性会影响diffy对比的结果,mock请求可支持diffy结果更稳定和准确;数据库mock功能,也可解决post接口回放数据污染问题

2.根据业务特性,支持定制化改造

3.流程优化,如推动研发利用工具自测,将diffy运行结果加入质量卡点等

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

关注我们

酷家乐质量效能团队热衷于技术的成长和分享,几乎每个月都会举办技术分享活动(海星日),每半年举办一次技术专题竞赛分享(火星日),并将优秀内容写成技术文章。

我们尽可能保障分享到社区的内容,是我们用心编写、精心挑选的优质文章。如果您想更全面地阅读我们的文章,请您关注我们的微信公众号"酷家乐技术质量"。


comments powered by Disqus