自动化测试在美团外卖的实践与落地

美团外卖为解决测试难题,自研自动化测试平台AlphaTest,以录制回放方式降低上手成本,提升用例可维护性。通过数据一致性、操作一致性确保测试准确性,支持跨App回放,降低维护成本。AlphaTest还提供环境模拟、埋点录制回放等功能,助力自动化测试在美团外卖落地实施。
摘要由CSDN通过智能技术生成

1. 项目背景

美团外卖的业务场景比较多元化,除了外卖自身的业务,还作为平台承接了闪购、团好货、医药、跑腿等其他业务。除此之外,在全链路动态化的大基调下,外卖各个页面的技术形态也变得越来越复杂,除了Native代码,还包括Mach(外卖自研动态化框架)、React Native、美团小程序、H5等,不同技术栈的底层技术实现不同,渲染机制不同,进而对测试方式要求也有所不同,这也在无形中增加了测试的难度。下图汇总了美团多业务、多技术、多App的一些典型场景。

图1 多业务、多技术栈、多App

图1 多业务、多技术栈、多App

在产品交付上线的过程中,测试的占比也是非常大的,甚至大于总时长的30%。如下图所示,整个测试包括了冒烟测试、新功能测试、二轮回归测试、三轮测试。然而,现在需求测试绝大部分还是采用非自动化的方式,这就使得人力成本变得非常之高。

图2 外卖迭代模型

图2 外卖迭代模型

另一方面,相比于2018年,2022年的测试用例数量增长近3倍,已经超过1万2千条(如下图所示)。同时,外卖的业务是“三端复用”,除了外卖App,还需要集成到美团App和大众点评App上,这样一来,测试工作量就翻了3倍,业务测试压力之大可想而知。如果按照当前的增长趋势持续下去,要保障外卖业务的稳定,就必须持续不断地投入大量的人力成本,所以引入能够支持外卖“多业务场景”、“多App复用”、“多技术栈” 特点的自动化测试工具来提升人效和质量,势在必行。

图3 近几年用例增长变化

图3 近几年用例增长变化

2. 项目目标

为了解决外卖面临的测试困境,我们尝试去探索一种零学习成本、低维护、高可用的自动化测试方案,能够支持外卖复杂多变的测试场景,它必须同时满足下面几点要求:

  • 易用性:工具/平台的上手难度,使用复杂度应该尽可能的低,因为自动化测试的目的是提效人力,而不是增加人力负担。
  • 平台支持:移动端至少需要覆盖iOS和Android双平台,同时基于外卖的业务特点,不仅需要对Native支持,也需要支持Mach(自研局部动态化框架)、H5、React Native、美团小程序等技术栈。
  • 稳定性:自动化测试用例的执行需要有足够的稳定性和准确性,测试过程中不应因测试工具本身的不稳定而出现稳定性问题。
  • 维护成本:维护成本很大程度上决定了测试工作量的大小,因需求产生变动或架构重构等问题时,用例的维护成本应该尽可能的小。
  • 可扩展性:当测试方案不能满足测试需求时,工具/平台应具备可扩展的能力。

3. 方案选型

自动化测试工具那么多,自研是重复造轮子吗?

针对终端的UI自动化测试工具/平台可谓“屡见不鲜”,市面上也有很多相对成熟的方案,相信大家都有用过,或者至少有所耳闻,但这些方案是否能真的满足我们提效的诉求呢?以下我们挑选了三类非常具有代表性的自动化测试工具/平台 - Appium、Airtest Project、SoloPi进行了分析,来帮助大家对自动化测试技术建立一个认知:

Appium Airtest Project SoloPi
脚本语言 支持Python,Java,JavaScript,PHP,C#,Ruby,OC等 Python /
数据记录(网络/本地) 不支持 不支持 不支持
环境模拟 不支持 不支持 不支持
上手难度 高,需要各种环境支持和语言学习 一般,不熟悉编程语言,也可以一定程度使用 低,用例即操作,不展示
问题溯源成本
维护成本
视图检索 基于UI控件的检索,支持10多种UI控件查找方式 基于图像识别和基于UI控件检索两种方式 基于图像识别和基于UI控件检索两种方式
源码集成 无需 可选 无需
WebView支持 支持 支持 支持
用例编辑 支持 支持 支持
平台支持 iOS、Android、Windows iOS、Android、Windows、游戏测试 Android
  • Appium是一个开源工具,用于自动化测试iOS手机、Android手机和Windows桌面平台上的原生、移动 Web和混合应用。它使用了各系统自带的自动化框架,无需SDK集成,Appium把这些系统本身提供的框架包装进一套API——WebDriver API中,可以使用任何语言编写Client脚本向服务器发送适当的HTTP请求。这让不同技术栈的人员都能快速上手编写测试用例,可以选择自己最为熟悉的语言,但是对于没有语言开发基础的人来说,还是有一定学习成本,而且这种方式在多人协作时并没有太大作用,为了保证自动化用例的可维护性,团队内部应该需要统一脚本语言。值得一提的是:Appium在iOS、Android和 Windows 测试套件之间可做的一定程度的复用代码。但是由于不同端界面及元素定位的差异,这往往是不现实的,更无法保证测试的准确性,所以这种所谓的“跨端”就变得毫无意义。
  • Airtest Project是由网易游戏推出的一款自动化测试平台,除了支持通过系统自带的自动化测试框架,还支持了通过图像识别的方式,对于非基于原生UI系统的一些游戏引擎提供了SDK的支持。其上手难度稍低,可以一定程度上通过IDE进行相关操作来生成简单的
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值