背景介绍

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

为了解决上述问题,我们结合了公司内部资源及一些优秀的开源工具,开发了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运行结果加入质量卡点等

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

服务推荐

  • 蜻蜓代理
  • ip代理
  • 代理ip
  • ip代理服务器
  • 国内ip代理
  • 代理服务ip
  • 最新代理服务器
  • 代理ip网
  • 中国代理服务器
  • 付费代理
  • 企业级ip
  • 企业级代理ip
  • 中国代理ip
  • 最新代理ip

kudiffy-一个很酷的自动化回归平台相关推荐

  1. 自动化体系平台建设 —— 全流程质量保证及改进措施

    质量保证及持续改进从来不是一个单纯地只提升测试阶段或测试人员能力的过程,更切实的说法应该是 -- 在有限投入(时间或人力资源约束)的情况下,如何在保证整个产品/平台质量达标的条件下,最终缩短每次需求从 ...

  2. AI之AutoML:Google AutoML(Google Cloud自动化机器学习平台库)的简介、安装、使用方法

    AI之AutoML:Google AutoML(Google Cloud自动化机器学习平台库)的简介.安装.使用方法 目录 Google AutoML(Google Cloud自动化机器学习平台库)的 ...

  3. 找靓机 App 埋点 Case 自动化回归

    找靓机埋点 Case 自动化回归 一.背景和目的 ​ 线上存在埋点数量总数大于 1000 个,主流程 case 大于 300 个,在对功能迭代过程中经常会有对已有的埋点进行回归的述求,以往都是消耗大量 ...

  4. 如何构建一个通用的垂直爬虫平台?

    阅读本文大约需要15~20分钟. 本文章内容较多,非常干货!如果手机阅读体验不好,建议先收藏后到 PC 端阅读. 之前做爬虫时,在公司设计开发了一个通用的垂直爬虫平台,后来在公司做了内部的技术分享,这 ...

  5. 基于Gitlab Jenkins Docker集群 微服务搭建自动化部署平台

    随着公司应用系统的不断增多,原有手工部署流程越来越不满足上线的需求.为了各个系统能快速迭代与测试,减少上线流程时间和人为出错,迫切需要一套自动化部署系统. 转载原文:https://luoji.liv ...

  6. 推荐一个开源低代码开发平台 Corteza

    Corteza 低代码开发平台 Corteza低代码开发平台,官网: https://cortezaproject.org/ 截至目前,是我找到的,唯一一个100%免费的开源平台了.我查了将近十多个开 ...

  7. 详解 Jenkins 自动化部署平台

    详解 Jenkins 自动化部署平台 原文来源:Jenkins自动化部署 Jenkins介绍 Jenkins是一个开源的.可扩展的持续集成.交付.部署(软件/代码的编译.打包.部署)的基于web界面的 ...

  8. 【python自动化】基于Splinter的自动化回归/测试脚本

    总结来说就是用一种自动化回归脚本的方式,可以重复性的回归现有功能,并给出回归测试报告 基于这个想法,我开发了这个脚本,定义了一套开发模式,基于这个模式,只要针对每个case添加如下的脚本代码: cas ...

  9. 自动化打包平台系列(一):自动化打平台建设概览

    前言 在上家公司,由于业务要求,需要频繁的出APP包来为业务引流量:当时发现人工方式去打包成为我们开发的主要瓶颈,于是拉通APP端,运维端,测试端设计一套自动化打包平台,使得效率提升N倍(由1个包/3 ...

最新文章

  1. null?对象?异常?到底应该如何返回错误信息
  2. SICP学习笔记(1.1.4~1.1.5)
  3. python画皇冠_用Python画小女孩放风筝的示例
  4. 模拟实现priority_queue优先级队列
  5. 15.2. important
  6. Python基础----字符串
  7. 全国计算机二级雷同卷怎么处理,信息系统项目管理师考试结束后,雷同卷怎么判定你知道吗?...
  8. 2017 年十大网页设计趋势
  9. ylbtech-Unitity-CS:AnonymousDelegates
  10. Centos 6.2 快速配置vsftpd虚拟用户
  11. 在人工智能中对TSP问题的求解
  12. UE4官方插件下载地址,完全免费
  13. 废掉一个人最隐蔽的方式,是让他忙到没时间成长
  14. 关于seo优化实用篇
  15. python爬虫采集财经数据
  16. UbuntuX11VNC教程
  17. Hive sql : 查询连续登录天数
  18. Java实现 LeetCode 558 四叉树交集(四叉树,第一次遇到,研究了半天)
  19. 聚类算法之K-means
  20. pycharm自定义模板代码

热门文章

  1. 鼠标选中后会自动删除文件的现状及解决方案
  2. 通过root手机获得微信小游戏源码
  3. 个人微信api接口调用-微信群管理
  4. 实现一个安卓学习助手app
  5. IE6、IE7、IE8、IE9兼容性问题解决办法
  6. 网络攻防第一次实验——搜索引擎和扫描器的使用
  7. 深度学习模型训练的时候,一般把epoch设置多大?深度模型中的超参数要如何调整?模型训练的诸多问题?
  8. Python爬虫数据入库
  9. Java获取12306余票信息(二)
  10. jQuery deferred 使用方式的歪解