【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

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

评论

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

oeasy教您玩转linux 010216 随机诗词 fortunezh

o

正则表达式

菜鸟小sailor 🐕

爬虫

GrowingIO 智能运营产品微前端实践

GrowingIO技术专栏

大前端 智能运营

架构师训练营大作业一

子豪sirius

物流系统架构设计文档

莫莫大人

极客大学架构师训练营

共享内存原理与VCS监控采集实战

vivo互联网技术

监控 中间件 架构设计 数据采集 埋点

全屋智能2020第十三届(南京)国际智能家居展览会

InfoQ_caf7dbb9aa8a

JDK15正式发布,新增功能预览!

王磊

Java

我擦~字符串转字节切片后,切片的容量竟然千奇百怪

Gopher指北

后端 Go 语言

JDK15正式发布,划时代的ZGC同时宣布转正

YourBatman

ZGC JDK15

Rust闭包的虫洞穿梭

袁承兴

rust 函数式编程 闭包

升级Php Curl扩展遇到的坑

心平气和

php curl php扩展

宁静的可贵

谷鱼

宁静

Code Like Sync, Works Like Async

滴滴普惠出行

餐卡系统设计文档

龙卷风

分布式系统:数据一致性解决方案

马迪奥

分布式事务 一致性

面试官:哪些场景会产生OOM?怎么解决?

艾小仙

Java 架构 面试 编程语言 JVM

Spring 5 中文解析数据存储篇-理解Spring事物抽象

青年IT男

Spring5 数据存储

关于java使用JDBC连接数据库

谷鱼

Java JDBC

学习笔记丨浮点数探究

Liuchengz.

C语言 基本数据类型

食堂就餐卡系统设计

Geek_Albert

食堂就餐卡系统设计

快讯2020第十三届亚洲国际物联网展览会-南京站

InfoQ_caf7dbb9aa8a

招商2020第十三届(南京)智慧城市技术与应用产品展览会

InfoQ_caf7dbb9aa8a

智能门禁的音视频技术应用

anyRTC开发者

音视频 WebRTC 直播 RTC

【高并发】面试官:说说缓存最关心的问题?有哪些类型?回收策略和算法?

冰河

缓存 面试 引用 offer 回收

架构师训练营 - 大作业(二)

张明森

手写一个抖音视频去水印工具,千万别刚一个程序员

程序员小富

Java springboot

Apache Pulsar 社区周报|09-05 ~ 09-11

Apache Pulsar

开源 云原生 Apache Pulsar 消息中间件

第一周学习总结

Geek_Albert

拓扑排序就这么回事

小齐本齐

数据结构 算法 数据结构和算法

Docker Swarm 集群管理利器核心概念扫盲

哈喽沃德先生

Docker Docker Swarm 容器

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