32

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

 4 years ago
source link: https://tech.kujiale.com/kudiffy-yi-ge-hen-ku-de-zi-dong-hua-hui-gui-ping-tai/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

背景介绍

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

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

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

1. Diffy

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

2.png?version=1&modificationDate=1576814357000&api=v2

2. Goreplay

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

3.png?version=1&modificationDate=1576814357000&api=v2

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

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

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

kudiffy平台

一.系统介绍

diffy平台:

6.png?version=1&modificationDate=1576814358000&api=v2

整体架构:

13.png?version=1&modificationDate=1576814358000&api=v2

流程图

kudiffy%E6%B5%81%E7%A8%8B%E5%9B%BE.png?version=3&modificationDate=1577085375000&api=v2

实现功能:

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

二.使用方法

diffy服务创建:

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

5.png?version=1&modificationDate=1576814358000&api=v2

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

8.png?version=1&modificationDate=1576814358000&api=v2

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

10.png?version=1&modificationDate=1576814358000&api=v2

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

goreplay与diffy的结合

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

11.png?version=1&modificationDate=1576814358000&api=v2

2.接入页面展示

12.png?version=1&modificationDate=1576814358000&api=v2

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

后续计划

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

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

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK