小蚂蚁说:

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 开发、测试、上线等各个阶段的有效测试方案,有效帮助产品测试的环节资源投入的节省及测试效率与质量的提升。

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

  1. 蚂蚁金服数据分析平台演进及数据分析方法应用.pdf(附PPT下载链接)

    今天给大家带来蚂蚁金服数据平台部杨军先生所做的分享<蚂蚁金服数据分析平台演进及数据分析方法应用.pdf>,本次分享PPT共48页,包含如下四大部分: 1.蚂蚁金服数据平台部简介: 2.数据 ...

  2. 蚂蚁金服终端实验室演进之路

    0. 背景 作为国民级 App,支付宝客户端需要为亿级用户提供多元化的服务,因此应用的稳定性与可靠性面临巨大的挑战,需要不断地完善和优化. 今天,让我们站在服务质量的全方位监控与优化的角度,从蚂蚁终端 ...

  3. 云原生时代,蚂蚁金服公开了新的金融混合云架构

    蚂蚁金服在过去十五年重塑支付改变生活,为全球超过十二亿人提供服务,这些背后离不开技术的支撑.在 2019 杭州云栖大会上,蚂蚁金服将十五年来的技术沉淀,以及面向未来的金融技术创新和参会者分享.我们将其 ...

  4. 云原生时代,什么是蚂蚁金服推荐的金融架构?

    蚂蚁金服在过去十五年重塑支付改变生活,为全球超过十二亿人提供服务,这些背后离不开技术的支撑.在 2019 杭州云栖大会上,蚂蚁金服将十五年来的技术沉淀,以及面向未来的金融技术创新和参会者分享.我们将其 ...

  5. 移动测试架构演进 | 蚂蚁金服自动化用例管理探索

    作者:周力(问瑾),蚂蚁金服技术专家.本文围绕支付宝面向移动应用日志复杂的测试工作,如何思考演进出成熟稳定的测试用例管理展开讨论和总结. 相比普通测试用例,自动化用例在形式.实现方式及内容上有一定的特 ...

  6. 蚂蚁金服烈元:蚂蚁网络代理演进之路

    2019 年 10 月 27 日,又拍云联合 Apache APISIX 社区举办 API 网关与高性能服务最佳实践丨Open Talk 杭州站活动,蚂蚁金服技术专家烈元做了题为<蚂蚁金服网络代 ...

  7. 蚂蚁金服 Service Mesh 落地实践与挑战|成都Service Mesh沙龙预告

    本文整理自 GIAC(GLOBAL INTERNET ARCHITECTURE CONFERENCE)全球互联网架构大会,蚂蚁金服平台数据技术事业群技术专家石建伟(花名:卓与)的分享.分享基于 Ser ...

  8. 蚂蚁金服研发的金融级分布式中间件SOFA背后的故事

    导读:GIAC大会期间,蚂蚁金服杨冰,黄挺等讲师面向华南技术社区做了<数字金融时代的云原生架构转型路径>和<从传统服务化走向Service Mesh>等演讲,就此机会,高可用架 ...

  9. #脱贫攻坚#彭蕾卸任蚂蚁金服后首次现身:女性脱贫亮三招

    4月11日,在陕西宁陕海棠园村的女性脱贫交流会上,阿里脱贫基金副主席彭蕾透露,脱贫基金将为村子里的女人们做三件事:提供小额贷款保障生计.提供专项保险保障生活.协助农村母亲抚育孩子. 春雨贵如油,春雨沁 ...

  10. 蚂蚁金服的“开放联盟链”如何影响现有公链

    昨晚区块链有两条重要新闻,1是央行数字货币DC/EP在多个城市试点测试.2是蚂蚁金服推出"开放联盟链",面向中小企业开放技术和应用.关于央行数字货币已经聊过不少,可以参考往期文章. ...

最新文章

  1. python求无序列表中位数_python 实现在无序数组中找到中位数方法
  2. arraylist从大到小排序_JAVA零基础入门课程笔记----数组排序
  3. Android Studio系列教程三:快捷键
  4. datav本地部署 java,Spring Boot对Spring Data JPA的自动配置
  5. 电脑测速软件_联通你我【宽带提速】让网速飞!超实用的宽带测速提速攻略来啦!...
  6. GC算法-标记清除算法
  7. 微服务架构 性能提升_如何通过无服务器架构提高性能
  8. tshark/wireshark/tcpdump实战笔记(更新中...)
  9. Unity Behaviors for Interception
  10. centos rm -rf 恢复删除的文件
  11. java表白我爱你代码_微信翻译代码我爱你怎么写 微信翻译表白代码大全
  12. 如何将nupkg文件安装到VS2017
  13. 7 轮面试后,还是挂了 | Google 中国面经分享
  14. sql将日期格式化特定的字符串格式
  15. [程序设计]前端Web页面使用原生JavaScript实现校验身份证号码在算法层面是否合法
  16. 慕课网SSMOA办公系统
  17. 超详细的--STP理论
  18. kl压缩 matlab,KL 变换实习matlab代码
  19. 客户服务专员认证考试
  20. 【Python画图】Matplotlib中fig、ax、plt的区别及其用法(入门)

热门文章

  1. python交通标志识别_利用pytorch实现交通标志识别
  2. python如何读取dbf文件_python2.7读取dbf文件的正确姿势
  3. 事务的隔离级别2 (TRANSACTION ISOLATION LEVEL)
  4. 调侃大学生[太有才了]
  5. AWSome Day简介
  6. TAP流量复制器在网络流量采集中的应用
  7. 使用计算机辅助翻译,计算机辅助翻译方法
  8. 成分句法分析与依存句法分析
  9. 英语语法学习 第一章 句子的形成之 结论
  10. Bumped!详解—(Dijkstra堆优化,优先队列实现,结构体重载运算符)