“真正的机器人测试” - 淘宝泛终端机器人自动化测试实践

  什么是UEE自动化测试:

通过IoT(如机械手、摄像头)等外部设备模拟真实用户操作,实现以外部真实用户视角对AUT(APP Under Test)进行的端到端黑盒自动化测试。以“真实”模拟为核心目的,具体包括两部分:

1)用户交互体验评测:通过IoT(如摄像头、传感器)等外部设备采集并将真实用户感受数字化,来获取最接近真实用户体感的性能及用户体验指标;软件绿色联盟在2020年3月份也发布了《软件绿色联盟智能终端性能流畅评测标准V2.0》,并以机械臂+摄像头的方式作为加载耗时的评测标准,我们在2019年初就开始使用这种模式。

2)多设备端到端功能自动化:通过机械手实现同时多设备的跨终端的自动化操作执行;通过AI算法实现IoT设备的调度控制、场景理解、测试步骤执行、测试路径探索、体验指标计算、异常处理等能力。

通过机器人对系统进行黑盒测试,类似的做法在国外Axiz机器人也有尝试。

  为什么要UEE设备端到端自动化测试

E:满足深度用户体验评测的诉求(Experience)

更高精度:随着深度用户体验提升的需求日益增加,端侧的性能和体验优化会精确到ms级别,因此需要找到进一步提升用户体验指标度量精度的方法。

多设备间交互测量:随着多端交互的场景越来越多。不光是APP之间,设备层面APP和PC乃至IoT之间交互的场景也不断出现,需要度量多APP多设备之间的交互性能及用户体验,需要度量多设备多系统间(从A手机到B手机,手机到PC/IoT 等)的交互式体验指标。

真实模拟:软件模拟点击和真实用户操作还是存在差异,要探索一种更模拟用户真实操作的方式。

E:对多设备端到端功能自动化测试的支持(End1 to End2)

业务客户端发版经常需要对Android/iOS/Pad甚至PC进行覆盖测试,同时APP之间的业务交互场景也逐渐增多,比如淘系的消费者-商家互通全流程,测试不仅仅只是单手淘、天猫或者千牛APP覆盖,还要能覆盖和串联起从消费者到商家的整个业务流程端到端自动化。此时,我们面临着新的挑战:

多机交互自动化:无法快速支持多手机 App 间、手机与PC/IoT之间交互的操作;

基于外部视角的对象识别:CV和AI算法的加持让UI自动化测试在对象识别上有了新的突破,但依然无法摆脱软件层API操作的局限,受所在操作系统限制,依旧存在部分特定场景下元素无法识别的问题(如系统内Push消息操作);

一套跨终端设备的通用脚本:还不是真正意义上的多设备多平台一套脚本驱动,Android/iOS/PC/IoT受系统版本或环境影响,可能仍需要多套自动化脚本,维护成本高;

一个脚本一次执行覆盖多个设备和系统:由于不同操作系统有不同的自动化执行引擎,一个脚本一次执行无法同时对Android/iOS/PC/IoT 完成回归。

RXT(Robot-XT)迎接挑战,应运而生

基于UEE自动化的理念,我们尝试使用机器人的方式获取用户体验指标以及开展UI自动化测试,设计并研发了RXT。它基于IoT架构,从“用户真实感受”出发,零侵入被测系统获取用户体验指标(加载耗时、跳闪白分析),同时支持图/文驱动跨设备交互的UEE自动化用例批量执行。如下是演示效果:

下图是RXT的能力介绍:

  深度用户体验指标

RXT立足“用户真实感受”获取用户体验指标,用机械臂手代替人手操作,用高速摄像头代替人眼记录操作过程,并具备体验指标算法(不需要目标对象的加载耗时分析、白屏分析)的大脑结构,RXT也可支持设备交互场景及竞品对比场景。

  多端自动化

RXT在传统的单机操作之上引入一层新的“主控大脑”,接管、调度跨设备的时序操作,完美支持了多端多设备、多App间交互场景的自动化能力;RXT使用原生Python程式化(基于unittest)组织用例,用户可灵活控制/增加定制逻辑,并基于Python module理念抽离公共逻辑,降低用例维护成本,此外,用例可通过任务组织批量执行;RXT上层用例基于图文方式1套脚本驱动,底层执行引擎支持机械臂引擎和UIAutomator/WDA自动化引擎,其中机械臂方案做到与平台、设备无关,打通手机和PC(平板)间自动化的壁垒,满足各种场景的测试需要;“非预期”弹窗(突如其来的红包Poplayer、首次安装需要的各种权限、过渡动画广告等等)是自动化测试的灾难性问题,RXT-ESP提供了相关的识别和处理机制;RXT提供真机用例调试能力,用户无需准备任何本地环境即可运行、调试用例。

  对象识别

多场景传感器融合下的对象识别,使用ROI截取、图像增强/去噪优化被测对象图片,坐标变换关联手机元素位置与机械臂操控位置,基于OCR获取目标图像文本信息,改进SURF/SIFT特征匹配算法提升图像识别准确率。

  异常处理

RXT具备非预期弹窗的检测与处理能力,例如可以检测首页Poplayer红包弹窗、权限弹窗等,并且使用NLP对互动按钮(如"我知道了",”允许“,”不再提醒“)进行语义理解、分类,然后加以处理。

  用例生成

RXT能从分散杂乱的用户埋点数据中,通过清洗、聚合、去重构建手淘消息用户行为访问路径及Top N热点路径,从而转变成具备业务语义的用例,后者正在进行中。

项目实战

  手淘消息场景用户体验升级项目

项目目标简介:手淘消息是世界上最大的商业沟通场景,该项目目标是大力提升手淘消息的加载体验、并进行跳、闪、白治理

策略&效果:下面是该项目优化前后,使用RXT观察到的用户使用前后版本打开消息业务的效果对比视频。

  手淘消息多通道升级项目

项目目标简介:该项目涉及到底层链路新/老切换,与上层客户端业务进行对接,为降低质量风险,上线期间兼容了新/老链路方案,对应的测试回归场景涉及到手淘消费者(Android/iOS)、千牛商家(Android/iOS/PC)双端的新老链路交互,按笛卡尔乘积增长,共有48种,每种场景都基本对应同一套测试用例。

策略&效果:上层业务上存在大量重复Case回归,我们的策略是将简单、重复的用例交给RXT,人工投入更多的时间在复杂场景的用例设计和回归上。

  大促态消费者-商家下单核心链路验收

项目目标简介:大促态下,消费者提交订单是核心链路。不仅需要保障手淘消费者(Android/iOS)提交订单成功,并且需要保障千牛商家侧(Android/iOS/PC)能够实时收到消费者提交的订单信息。

策略&效果:如下是实战效果(手淘-千牛移动端):

总结及未来展望

本文主要介绍了UEE自动化测试理念,并在此基础上设计并研发了RXT以及相关的一些项目实践结果。我们还将在“业务先赢”、“极致体验”的道路上继续前行。未来我们将继续优化RXT产品,继续提升产品稳定性、智能化能力。同时也希望我们的能力可以更多对行业开放,让智能化测试服务行业,实现真正的测试智能。欢迎大家提供合作机会!!

先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以扫码领取!

img

最后

各位读者,由于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了

于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了

[外链图片转存中…(img-dJkka8n1-1711464277838)]

[外链图片转存中…(img-YXGAHu4M-1711464277838)]

[外链图片转存中…(img-iyYVjNXX-1711464277839)]

[外链图片转存中…(img-AR63CPjK-1711464277839)]

需要更多Java资料的小伙伴可以帮忙点赞+关注,点击传送门,即可免费领取!

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值