产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

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

  • 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:494232

评论

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

传统企业数字化转型,到底难在哪里?

SoFlu软件机器人

手慢无!‘’阿里爸爸‘’6月最新开源新版Spring Cloud Alibaba全体系10w字全彩笔记

Java全栈架构师

Java 程序员 面试题 架构师 SpringCloud

认识一下什么是JSP

华为云开发者联盟

Java jsp 网页 前段

天人合一物我相融,站点升级渐进式Web应用PWA(Progressive Web Apps)实践

刘悦的技术博客

前端 App 应用 Web JS SDK PWA

Charles 工具如何做断点测试

伤心的辣条

Python 程序人生 软件测试 自动化测试 接口测试

详解GPU虚拟化技术

Finovy Cloud

人工智能 云渲染 GPU服务器

测试基础之:自动化测试

甜甜的白桃

软件测试 自动化测试 6月月更

ScheduledThreadPoolExecutor

急需上岸的小谢

6月月更

直播场景音频降噪,传统算法 VS AI 算法对比和实践

融云 RongCloud

Nydus —— 下一代容器镜像的探索实践

SOFAStack

开源 云原生 dragonfly 容器镜像

什么是真正的敏捷开发?敏捷开发与瀑布开发有何不同

阿里云云效

云计算 阿里云 敏捷开发 研发 开发模式

使用GeekCode在开发中分离计算和存储

王泰

CloudIDE 云 IDE

窃取证书的攻击流程及抓包分析

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

SOL staking质押现已在 AscendEX Earn 上线

鳄鱼视界

从概念到安全实践:软件供应链基础指南

SEAL安全

DevOps 安全 DevSecOps 软件供应链

基于EasyCV复现ViTDet:单层特征超越FPN

阿里云大数据AI技术

自然语言处理 异构计算 深度学习/机器学习 编译码

一个算子在深度学习框架中的旅程

OneFlow

深度学习 算法 框架设计

用 docker 创建 jmeter 容器,实现性能测试

伤心的辣条

Python 程序员 软件测试 自动化测试 程序员‘

小程序容器技术,加速工业互联网平台建设

Geek_99967b

小程序 工业互联网 小程序容器

2022,云上开发新纪元

Heighliner

云原生 #k8s 开发者, 远程开发

好的产品帮助文档可以留住一个用户的心

小炮

vue-class与style绑定

小恺

6月月更

Java—线程安全

武师叔

6月月更

改变世界的开发者丨以梦为码,华工小哥的致青春

华为云开发者联盟

数据库 华为云

力扣每日一练之二分查找Day10

京与旧铺

6月月更

如何玩转“听到头疼用了爱”的函数计算

明道云

【协程】ViewModelScope源码解析

yechaoa

android 协程 6月月更 ViewModelScope

Elux-从"微前端"到“微模块”

hiisea

前端框架 微前端 微模块 elux

教你搭建一个Telegraf+Influxdb+Grafana 监控系统

华为云开发者联盟

云计算 华为云

始于架构,精于治理|阿里云中间件开发者大会火热报名中

阿里巴巴中间件

阿里云 开发者 中间件

【题解】剑指 Offer 05. 替换空格(C语言)

未见花闻

6月月更

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