阿里创新自动化测试工具平台阿里创新自动化测试工具平台--Doom
摘要
阿里内部诞生一了个依赖真实流量用于自动回归的自动化测试平台,通过创新的自动mock机制不仅支持读接口的回归验证,
同时支持了写接口验证,在内部产生了极大价值,有价值的东西就应该分享,目前该工具已经作为云服务对外开放。
背景
信息系统上线后通常会需要迭代升级甚至重构,如何保证被修改后系统原有业务的正确性非常重要。不复杂的业务系统通过一
些常规的自动化测试工具加上人工测试可以解决,但对于业务十分复杂的系统,回归测试将变成一项浩大的工程。 一个实际
的例子:阿里巴巴作为一家以电商为核心的集团公司,交易系统和稳定性的重要性不言而喻。整个交易系统在多年的发展过程
中,经历了很多业务的上下线,维护的人员也换了一波又一波,几乎没有人能梳理清楚其中的业务和代码。当它不得不面临一
次全面升级的时候,其回归测试的困难度难以想象。因为常规的自动化测试工具需要准备测试数据、编写脚本,因此覆盖率不
高,因此无法满足需求重构后的回归验证要求。 doom平台的出现解决了这一难题,它通过复制线上真实流量去做自动化回
归,通过它发现了很多重构带来的bug,同时加快交易重构项目的上线进程。同时通过录制流量作为用例来实现日常自动化回
归取代传统编写脚本的自动化回归大大提升了回归效率和覆盖率。 因为其解决方案的通用性,我们把这它拿出来给大家分
享,同时也开放了云服务希望能支持到有需要的用户。
平台介绍
什么是doom平台
doom自动回归平台是一个将一部分线上真实流量复制并用于自动回归测试的平台。 通过创新的自动mock机制不仅支持读接
口的回归验证,同时支持了写接口(例如用户下单接口、付款接口)的验证。它最底层借助了java的instrument实现aop因
此,目前仅支持java应用的接入使用。其原理图如下:
它与tcpcopy或者diffy的区别:tcpcopy、diffy是在应用外的网络层实现流量录制和回放的,它们只能实现一些只读页面的验
证。doom是在应用内部通过aop切面编程方式实现的流量录制和回放功能,因此可以做到应用内部接口级别的回归验证,当
然也支持服务级别或者http级别的回归验证。通过独创的中间件级mock以及内部自定义的mock,可实现写流量的回归验证以
及跨环境的回归验证(线上引流到测试环境)。
应用场景
系统重构时,复制真实线上环境流量到被测试环境进行回归,相当于在不影响业务的情况下提前上线检测系统潜在的问题。可
以将录制的流量作为用例管理起来进行日常自动化归回。
评论0