写点什么

支付宝分层与端到端回归平台建设实践

  • 2014-09-22
  • 本文字数:2771 字

    阅读完需:约 9 分钟

一、方案特色

  1. 一体化:统一技术体系、统一管控模式、统一调度模式、统一用户体验,有效地提升了平台本身的可维护性,极大地提升了平台的用户体验,降低了使用成本;
  2. 分层回归:支持分层自动化(单元测试、接口测试、WebUI 自动化、前端测试)和端到端(全链路 WebUI 自动化)持续回归;
  3. 集成性:提供丰富的 API,便于与其他平台(如研发协作平台等)的集成;
  4. 原子性:方案的运作具备独立的使用周期,不依赖于其他平台或系统;
  5. 扩展性:自主研发,可快速进行方案扩展,如代码质量度量体系、覆盖率、持续集成等;
  6. 业务解耦:自动化管控模块 AQC-Auto 与手动用例管控模块 AQC-Case 解耦,自动化用例和手动用例将进行有机结合,为用例管控带来了新的模式;
  7. 平台规划:为开发自测、开发对产品质量负责、持续集成奠定基石;
  8. 质量 2.0:沿袭小微产品质量团队质量 2.0,着力探索和落地技术助力效率提升理念。

二、方案解读

整个平台主要涵盖四大功能模块,Web 管控、调度中心、心跳中心、资源管控,具体请参见图 1。方案架构图请参见图 2,在后面将逐一进行解读。

图 1

图 2

1. 工程管理

1) 测试工程:众所周知,支付宝自动化测试用例(单元测试、接口测试、Web UI 自动化测试)都是在标准的 Java 工程中;

2) 自动化用例:对于 Java 工程,测试 class 中的 method,我们定义为平台的自动化用例;

3) 用例同步:通过 parse 器对 SVN 的 Java 工程解析,确保实时的同步或增量同步到我们的自动化用例库中,见图 3。

图 3

2. 实验室管理

1) 测试实验室:用户可以基于测试工程,选择待测用例集,新建测试实验室,并配置相关的运行时候所必备的参数;

2) 调度模式:实验室支持 3 种运行方式(OnEvent:提供 API 供其他平台调用执行,有效提升平台的集成性;OnManual:通过人工触发,便于随时执行;OnTime:无人值守定时触发模式。), 调度设置见图 4。

图 4

3) 执行粒度:为了提升用例执行的便捷性,本平台还支持通过 Web 页面,人工手动运行单个用例或多个用例的方式;

4) 通知机制:支持邮件、邮件组、旺旺等通知机制;

5) 调度记录:可以查看不同实验室的不同运行记录以及运行明细,图 5 与图 6。

图 5

图 6

3. 回归管理

1) 回归实验室:一个回归实验室,对应多个测试实验室,见图 7;

图 7

2) 调度模式:可以批量执行多个同类型实验室,以适应 sit 回归、端到端回归、资损用例回归等业务需求,见图 8。

图 8

4. 报告管理

1) 报告粒度:提供测试实验室和回归实验室的执行报告,用户可以快速的定位到特定实验室在特定的轮次中的特定用例的运行情况,见图 9。

图 9

2) 透明化:透明化了用例的整个执行过程,可以动态查看到测试工程编译失败日志等,见图 10。

图 10

3) 趋势分析:透明化各个测试实验室运行趋势信息,为用例维护推动提供便捷,见图 11。

5. 调度中心

1) 服务注册:不同类型的实验室调度模式是不一样的,需要将不同的调度模式的接口注册到调度中心,实现业务的解耦和调度中心的通用性;

2) 任务管控:不同的测试运行,都会形成任务队列中的一个任务,任务的执行与触发,是通过执行调度中心的任务模块去完成的。

6. 心跳中心

1) 适配中心:本平台是一体化平台,但是针对不同测试类型的实验室,需要不同的 runner 去适配;

2) 环境治理:不同类型的用例对环境的要求不一样,可以通过一些通用脚本的执行,完成环境的初始化和清理工作;

3) 回调管理:主要是将运行的结果、日志、运行情况写入平台。

7. 设备管控

1) 设备管理:平台提供分门别类的设备管理和开放的 OpenApi,承载着回归体系所需要的硬件资源,进行统筹和调配;

2) 透明化:为了透明化测试资源的使用情况,这里会提供相应的报警机制,让用户可以实时查看到机器设备的使用状况,便于即可对硬件资源做相应的处理;提供 OpenApi,因为本平台不单单承载在 PC 自动化回归体系所需要的设备,目前工具研发团队所研发的安全产品测试平台的硬件资源也来源于此;

3) 资源池:提出资源池的概念,源于特定测试回归实验室对硬件资源的配置性要求的不同,确保回归实验室的原子性和隔离性,在平台资源管控中,我们也设定了相应的公共资源池,有效提升资源利用率;

4) 快捷操作:提供一些便捷的操作,如重启 tomcat、安装 jdk、安装 maven 等;

5) 统一资源池:本设备管理模块即将成为小微回归体系平台的资源池,为业务的扩展做好充分的准备,见图 12。

图 12

三、案例启示

笔者认为,工具平台不是目的,只是助力效率提升的手段,不论是工具平台建设的本身,还是工具平台的服务化能力,高质高量研发出高效的效率工具,助力业务成长,提升研发效率,才是根本,在自动化回归体系建设中,工具平台构建起三套回归体系(无线、全站、CRO),走出去,引进来,打造互联网金融测试之回归体系标杆,和业界同仁一起共促自动化回归体系建设。

附录一:笔者主导研发的支付宝自动化回归体系盘点:

  1. 无线 - 自动化回归体系:针对快捷支付、钱包、商户 APP 特点,无缝支持自主研发框架(TRobot)和开源框架(如 Robotium);支持性能监测、安装卸载启动测试的无缝接入;
  2. 全站 -PC 端分层与端到端回归体系:无缝支持从分层(单元测试、接口测试、WebUI 自动化、前端测试)回归和端到端(全链路 WebUI 自动化)回归;
  3. 安全部 - 安全产品回归体系:支持无线客户端产品的回归,支持 Python、Ruby 等语言用例。

附录二:笔者自动化建设和工具平台建设感悟:

  1. 自动化不是万能的,但自动化必将越来越受重视,将作为手动测试的必要补充;
  2. 自动化回归体系也许将成为开发自测、开发对产品质量负责的必备武器;
  3. 提升自动化回归体系服务化能力,将成为自动化建设的核心之一;
  4. 自动化价值最大化,才能提升全员对自动化的信心;
  5. 工具平台建设,不同于传统的研发,我们每个同学都需要具备 PD+DEV+TESTER 能力;
  6. 作为工具研发团队,我们不仅仅要输出我们的工具平台,还要提升工具服务化能力;
  7. 作为工具研发团队,我们更要输出我们的技术,提升技术服务化能力,促进构建线下工具平台建设生态体系,让工具去驱动未来,让工具去为研发保驾护航。

作者简介

王超,花名于龙,现任支付宝高级技术专家。2007 年计算机软件与理论专业硕士毕业,先后在微软、SAP、淘宝网从事自动化测试用例开发、自动化框架研发、测试平台建设、信息系统研发、测试工具研发团队管理等工作,主导研发淘宝网 PC 自动化测试框架 AutomanX、支付宝质量风险防控平台 AQC、支付宝无线测试平台、资损防控 T+1 核对平台等产品,目前负责支付宝产品质量部工具研发团队,专注于支付宝线下工具平台建设,业务涉及持续集成、自动化回归体系、数据平台、资损防控、技术风险防控、性能评测中心、测试管控等平台或工具建设。作者邮箱:chaowang2008@qq.com。


感谢侯伯薇对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-09-22 03:494247

评论

发布
暂无评论
发现更多内容

JMeter笔记10 | JMeter检查点

测试 Jmeter 性能测试 自动化测试 接口测试

瓴羊Quick BI报表分析工具,大幅提升企业经营效率

夜雨微澜

来自大佬的洗礼!全网独家的SpringBoot核心文档,讲的太清晰了

做梦都在改BUG

Java Spring Boot

深度学习应用篇-计算机视觉-目标检测[4]:综述、边界框bounding box、锚框(Anchor box)、交并比、非极大值抑制NMS、SoftNMS

汀丶人工智能

人工智能 深度学习 计算机视觉 目标检测 6 月 优质更文活动

2023世界人工智能大会“AI生成与垂直大语言模型”论坛重磅来袭!

NLP资深玩家

浅谈微服务异步解决方案

做梦都在改BUG

Java 微服务 异步

CoinList打新以太坊虚拟机Neon

币离海

以太坊虚拟机 neon Coinlist Solana

LeetCode:2695. 包装数组,详细解释

Lee Chen

JavaScript LeetCode

OpenHarmony 4.0 Beta1发布,邀您体验

OpenHarmony开发者

OpenHarmony

百度离线资源治理

百度Geek说

数据库 大数据 离线 企业号 6 月 PK 榜 6 月 优质更文活动

最强AIGC实战应用速成指南来了!14天掌握核心技术

飞桨PaddlePaddle

人工智能 深度学习 百度飞桨

Flink实例:Flink流处理程序编程模型

TiAmo

scala 数据流 Flink 平台 6 月 优质更文活动

Web 界面开发指南,持续更新

南城FE

CSS 前端 交互设计

首款搭载OpenHarmony 3.2的智能POS终端通过“开源鸿蒙”兼容性测评

科技热闻

Jogger慢跑者链游系统开发NFT技术

薇電13242772558

NFT 链游

打造高可用的微服务架构:Spring Cloud 的优化与实践

xfgg

Java 微服务 SpringCloud 6 月 优质更文活动

等待还是转行?GitHub爆赞的10W字Java八股文,你没得选择

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

ESP8266获取天气预报信息,并使用CJSON解析天气预报数据

DS小龙哥

6 月 优质更文活动

开源赋能 工业铸魂 | 2023开放原子全球开源峰会开源工业软件分论坛即将启幕

开放原子开源基金会

开源 开放原子全球开源峰会 开源工业软件

阿里P8现身说法,解密“架构”原理与实战笔记:从分布式到微服务

做梦都在改BUG

Java 架构 分布式 微服务

“变脸的秘密”!直播源码app开发技术特效功能的实现

山东布谷科技

源码剖析 APP开发 软件开发、 源码搭建 直播源码

深度学习应用篇-计算机视觉-图像分类[3]:ResNeXt、Res2Net、Swin Transformer、Vision Transformer等模型结构、实现、模型特点详细介绍

汀丶人工智能

人工智能 深度学习 计算机视觉 图像分类 6 月 优质更文活动

探究核心技术&最佳实践,云原生OLAP论坛火热开启!

阿里云大数据AI技术

云原生

【Netty】「NIO」(四)消息边界与可写事件

sidiot

Java 后端 Netty 6 月 优质更文活动

架构模块一作业

sandywrh

问道价值互联网,区块链的下一个十年 | 2023开放原子全球开源峰会区块链分论坛即将启幕

开放原子开源基金会

区块链 开源 开放原子全球开源峰会

大厂面试必备!字节大佬刷Leetcode总结的算法笔记

做梦都在改BUG

Java 数据结构 算法 LeetCode

Amazon CodeWhisperer代码提示体验本文带你了解

我叫于豆豆吖.

云计算 亚马逊 亚马逊云

什么是双机热备技术?华为和思科如何实现双机热备?

做梦都在改BUG

Java 网络 双机热备

【体验有奖】玩转 AIGC,函数计算 x 通义千问预体验,一键部署AI应用赢Airpods

Serverless Devs

函数计算FC AIGC

支付宝分层与端到端回归平台建设实践_语言 & 开发_王超_InfoQ精选文章