装箱百万奖金,第六届全国工业互联网数据创新应用大赛火热报名中! 了解详情
写点什么

可用、全集成、定制化,蚂蚁金服自动化测试如何演进

  • 2019-08-29
  • 本文字数:2389 字

    阅读完需:约 8 分钟

可用、全集成、定制化,蚂蚁金服自动化测试如何演进

小蚂蚁说:

11 月 16 日,在首届安卓绿色联盟开发者大会上,蚂蚁金服工程技术部的开发工程师裴炀针对无线实验集群在蚂蚁金服内部的发展与实践做了总结分享。

关于自动化测试在具体业务场景下的应用,全行业已经沉淀了众多实践。而随着 DevOps,自动化测试,手工测试的进一步融合,多种多样的开发框架和设计理念频繁地被创造出来。如何支撑业务快速迭代,如何面对各种客户端动态化组件化的新技术方案,如何支持新的 IOT、人机交互等业务场景的自动化测试,如何在业务逻辑下进行测试用例的深度思考与设计,已然成为焦点。

蚂蚁金服又是如何在一款年活跃用户 8.7 亿的应用中通过无线实验集群来打造自动化测试架构,在这期间沉淀了哪些具体的优化方案?



1、高可用

高可用性是支撑业务的必要条件。


移动云测平台作为承托自动化测试必备的基础服务设施,现在在各个厂家都有相应的实现方案。目前蚂蚁内部云测平台的定位即需要具备高可用以及高效灵活的执行控制能力。只有具备足够灵活、高效的高可用服务能力,才能真正有效地提高研发效率,降低研发成本。


1.1 设备集群

移动终端与传统服务器主要的区别之一,即设备可靠性差距很大。通过一定程度的冗余结合合理的调度策略,能够保证高可用的服务 SLA。蚂蚁内部云测服务对关键业务的 SLA 要求是需要达到 4 个 9 的标准,而这个目标是通过基于设备任务双向选择的竞争机制配合实时异常检测和动态任务切换的机制完成的,因为自动化任务粒度远大于传统基础服务(Nginx,MySQL 等) 的请求粒度,所以需要一些特殊的调度策略来进行保证。



1.2 数据分析

为了确保高可用,一方面要对全局各类资源进行统一监控,另一方面要对埋点数据持续分析挖掘,并针对发现的问题进行不断的改进。蚂蚁云测服务对设备和任务执行建立了上百类不同的埋点数据上报,覆盖设备健康,任务执行效率,关键场景的耗时等多角度数据,自动化任务在执行过程中还可以通过标准扩展接口动态添加业务维度的埋点分析数据。


1.3 持续改进

通过对数据的持续分析,我们发现了大量的问题,其中包含了很多 NREP 的困难问题,配合调用栈的记录都很快进行了修复。一直到今天,蚂蚁云测服务始终保持着每周至少一个版本的迭代速度。可以说云测服务从建立第一天起就完全沿袭了敏捷开发小步快跑的模式,这是平台能够始终支撑业务快速迭代的重要保证。


2、全集成

服务如何能更好的和业务结合落地,是评价服务价值的最好标准。


2.1 服务标准化

蚂蚁实验集群在实际应用场景上,充分思考了如何与业务结合落地的策略。从服务方式来看,对内部域提供标准 RPC 服务接口,对其他网络隔离的业务域提供了安全可靠的标准服务接口,通过统一的网关服务层,一方面让业务接入特别简单,另一方面能够根据不同业务的场景和需求充分进行相应的业务隔离和限流。在保障业务需求被充分满足的前提下,还可以随时对异常问题进行控制隔离,目前每天平台服务的各类请求超过 20 万次。


2.2 服务个性化

从服务内容角度,蚂蚁云测为通用的业务需求提供了标准化的技术方案和入口;针对特殊场景的业务诉求允许用户快速组装个性化的任务构建模式,目前在内部已经有超过 200 个业务线的专项服务在云测平台上长期运行,满足了 40+个应用开发的自动化需求。


服务个性化的另一个角度,即能够支撑越来越多的新业务场景,如人机交互(脸部识别),IoT(扫码,投屏)等。传统的自动化方案关注于终端设备本身,一般无法将验证的物理场景囊括进来,而新的业务场景对设备所依赖的外部环境同样有很高的要求。在这方面,蚂蚁实验平台技术的工程师们充分利用的软硬件结合的能力,通过大量自研的 MCU 设备,配合高精度的工业级机器人,构建出业务所需要各类复杂环境,例如用户进店扫码模拟全流程模拟,包含了可能的光照条件;用户掏出手机设备时的位移,加速度,角度以及各种终端设备的自由组合。


通过这些自动化测试场景的构建,支付宝钱包能够不断地优化用户的使用体验。


3、AIO(All in One 一站式解决方案)

通过高可用服务降低运维成本,助力研发效能提升。


伴随着实验集群不断扩大服务范围,对资源管理运维的要求和投入成本也越来越高。为了控制运维成本,确保服务可靠性,蚂蚁实验平台技术的同学们设计了基于 AIO 智能机柜一站式的集成解决方案。


3.1 弹性扩容,按需组合

每个 AIO 机柜都是一个小型化的设备集群,提供了以下这些能力:


  • 自定义 MCU, 封装 9 类 67 个自定义控制指令,覆盖数据,电压,电流,温度,功耗控制

  • 可控的执行环境(光线,电磁屏蔽)

  • 高精度功耗采集度量能力(±0.01 库仑)

  • 各种链路的模拟 (WLAN/4G/弱网)

  • 设备特殊状态模拟和保护(低电量维持/充放电保护)


这些控制能力可以被高效地整合在一个智能机柜之中,也可以根据业务需求采用其中的能力子集,在成本控制和产品化定制方面具备成熟的能力。


3.2 服务插件化,硬件模块化

配合 AIO 机柜内部有相应的宿主服务,服务能力都是以插件化方式进行组合。用户如果有特殊类型的设备或者业务上特殊的诉求,可以快速根据插件规范自行定义新的服务插件,对 AIO 的能力进行扩展。同时,AIO 核心的主控板也是全模块化设计,丰富的扩展 GPIO 可以方便进行新的模块化硬件能力的扩展,满足未来 IoT 复杂场景的诉求。




截止目前,AIO 无线实验集群已在支付宝体系内完成 50w+ 自动化任务,用例执行 400w 余次,捕获闪退 5w+ 次。


在降低人工测试成本,帮助人工测试的能力扩展到更多的应用场景方面,目前已经成功支持 40+ 阿里集团 App 的测试任务,巡检发现 250w+ 异常项目,完成 15w+ 小程序准入审核,设备远程共享达到 4 千小时。


AIO 无线实验集群,目前已成为蚂蚁金服 mPaaS 一部分,以“MTP 移动测试平台”对外输出能力,提供覆盖 App 开发、测试、上线等各个阶段的有效测试方案,有效帮助产品测试的环节资源投入的节省及测试效率与质量的提升。


本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)。


原文链接:


https://mp.weixin.qq.com/s/zPFJsWA1i4pSEHu-WbY8uw


2019-08-29 19:38922
用户头像

发布了 150 篇内容, 共 28.3 次阅读, 收获喜欢 29 次。

关注

评论

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

来自阿里P7的兄弟给我说:赶紧掌握这项技术太吃香了

android 程序员 移动开发

是面试官放水,还是公司太缺人?这都没挂,2021的字节跳动也太好进了吧

android 程序员 移动开发

未来大趋势!Flutter-VS-Kotlin-跨平台开发市场的最终霸主究竟花落谁家?你看好谁呢?

android 程序员 移动开发

搞懂钩子方法和模板方法,看完这篇就够了

Tom弹架构

Java 架构 设计模式

来聊聊 Android Jetpack

android 程序员 移动开发

架构师知识分享:架构设计基础之——设计模式

android 程序员 移动开发

深入Android系统Binder-1-导读与简介

android 程序员 移动开发

某二次元App签名算法解析(一)

android 程序员 移动开发

毕业不到一年的Android 开发陷于迷茫,请求前辈指点一二

android 程序员 移动开发

流媒体协议之WebRTC实现p2p视频通话(二)

android 程序员 移动开发

深入Android系统Binder-1-导读与简介(1)

android 程序员 移动开发

构建yum库

android 程序员 移动开发

模块化开发一:架构搭建

android 程序员 移动开发

深入浅出协程、线程和并发问题

android 程序员 移动开发

深入理解HTTPS协议

android 程序员 移动开发

王者荣耀异地多活架构

小智

架构训练营

模块化开发一:架构搭建(1)

android 程序员 移动开发

最后再说一次!!不要在你的App启动界面设置SingleTask-SingleInstance

android 程序员 移动开发

最接地气的Android面试总结心得

android 程序员 移动开发

最新Android面试题整理

android 程序员 移动开发

有人说这是2021字节跳动-初级Android工程师的面经?吓到我了!我还是去搬砖吧!

android 程序员 移动开发

某一线互联网大厂内部超高质量Flutter+Kotlin笔记!技术与实战篇!

android 程序员 移动开发

模板方法模式

android 程序员 移动开发

春招总结!大厂淘汰率80%,面试难度极高

android 程序员 移动开发

是时候丢掉 onActivityResult 了 !

android 程序员 移动开发

求面试别再问我HashMap原理了——史上最全源码解读,别再说你不知道HashMap 原理

android 程序员 移动开发

深入学习-Gradle-自动化构建技术(二)Groovy-筑基

android 程序员 移动开发

原来一个 Map 就能搞定注册表了

悟空聊架构

Eureka 源码剖析 注册中心 悟空聊架构 11月日更

深入理解JobScheduler与JobService的使用

android 程序员 移动开发

【LeetCode】范围求和 IIJava题解

Albert

算法 LeetCode 11月日更

查漏补缺:十个Handler面试最常见问题,带你全面理解Handler消息机制

android 程序员 移动开发

可用、全集成、定制化,蚂蚁金服自动化测试如何演进_文化 & 方法_Geek_cb7643_InfoQ精选文章