移动端自动化解决方案

发布时间:2025-01-07 07:29

主动寻求反馈,不断优化解决方案 #生活常识# #职场技巧# #解决问题#

转载:https://geeknote.net/wick/posts/2179

UIAutoMator2

uiautomator2 是一个可以使用Python对Android设备进行UI自动化的库。其底层基于Google uiautomator,Google提供的uiautomator库可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作。 github: https://github.com/openatx/uiautomator2

优点:

设备和开发机可以脱离数据线,通过WiFi互联(基于atx-agent) 集成了openstf/minicap达到实时屏幕投频,以及实时截图 集成了openstf/minitouch达到精确实时控制设备 修复了xiaocong/uiautomator经常性退出的问题 代码进行了重构和精简,方便维护 实现了一个设备管理平台(也支持iOS) atxserver2 扩充了toast获取和展示的功能

缺点:

需要手动元素定位,对于非webview页面支持不好 需要使用者熟悉python 不支持IOS平台

Appium

Appium 是一个开源工具,用于自动化 iOS 手机、 Android 手机和 Windows 桌面平台上的原生、移动 Web 和混合应用。**「原生应用」指那些用 iOS、 Android 或者 Windows SDKs 编写的应用。「移动 Web 应用」是用移动端浏览器访问的应用( Appium 支持 iOS 上的 Safari 、Chrome 和 Android 上的内置浏览器)。「混合应用」**带有一个「webview」的包装器——用来和 Web 内容交互的原生控件。类似于 Apache Cordova 项目,创建一个混合应用使得用 Web 技术开发然后打包进原生包装器创建一个混合应用变得容易了。重要的是,Appium 是跨平台的:它允许你用同样的 API 对多平台(iOS、Android、Windows)写测试。做到在 iOS、Android 和 Windows 测试套件之间复用代码。 github: https://github.com/appium/appium

优点:

支持IOS,Android,Windows平台上的原生,移动web和混合应用 基于webdriver协议开发,支持跨平台,允许使用相同的api对多平台应用编写测试 支持的语言种类多 功能强大,可以替代uiautomator2

缺点:

IOS应用测试只支持在mac平台上运行 执行效率相对于uiautomator较慢 中文输入必须使用appium自带的中文输入法 API较多,学习成本高,而且新版本不太稳定

AirTest

AitTest是由网易公司开发的用于移动端游戏和app自动化测试的工具,现已在github上开源 AirtestProject是由网易游戏推出的UI自动化测试解决方案,项目构成如下:

1)Airtest框架¶

Airtest 是一个跨平台的、 基于图像识别 的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和iOS:

Airtest源码 Airtest API文档 2)Poco框架¶

Poco 是一款 基于UI控件识别 的自动化测试框架,目前支持Android原生、iOS原生、Unity3D、cocos2dx、UE4和Egret等平台,也可以在其他引擎中自行接入poco-sdk来使用。

Poco 源码 Poco API文档 3)AirtestIDE¶

AirtestIDE 是一款跨平台的 UI自动化测试编辑器 ,内置了Airtest和Poco的相关插件功能,能够使用它快速简单地编写 Airtest 和 Poco 代码。

官方下载网址 AirtestIDE使用文档 4)手机集群解决方案-DeviceFarm¶

DeviceFarm 是网易推出的自动化测试集群解决方案,它是软硬件一体化方案,包含设备集群建设、集群设备批量维护管理、监控报警和云端真机等功能,可以为您在企业内部搭建稳定高效的设备管理平台, 提升设备利用率,赋能自动化测试流程搭建:

DeviceFarm集群解决方案 5)Airlab云测试平台¶

Airlab云测试平台支持用例管理、脚本管理、任务预约、任务调度、云端报告等功能,可以快速构建企业自动化测试全流程,支持ios和安卓的回归测试及兼容测试。

Airlab云测试平台

github:https://github.com/AirtestProject/Airtest

优点:

跨平台 元素定位基于图像识别,无需编写复杂的元素定位代码 提供IDE,可以辅助测试人员编写自动化用例 官方文档提供了较多的实用教程,方便测试人员上手 提供移动端自动化测试平台的私有化部署,但是收费 提供了丰富的API,方便在其他框架中整合

缺点:

由于图像识别算法是基于open-cv,对于复杂的页面,图像识别的准确性不高 运行环境搭建比较复杂,需要安装比较多的依赖 用例执行效率较低,也是图像识别的锅,因为这玩意儿本身效率就不高

Flybirds

Flybirds是基于BDD模式和AirTest开发的移动端UI自动化测试工具

基于BDD模式,类自然语言语法 支持自动化APP操作、表单提交、UI元素校验、键盘输入、Deeplink跳转等 默认支持英文、中文两种语言,支持更多语言扩展 插件式设计,支持用户自定义自动化扩展 提供cli脚手架,快速搭建项目 提供html报告

github: https://github.com/ctripcorp/flybirds

优点:

使用BDD模式,类自然语言语法,编写的用例直观易懂,默认支持中文和英文两种Feature编写方式 底层基于AirTest开发,具备AirTest的优势 支持自定义插件,扩展性强 自带step模板,支持绝大多数页面操作,也支持自定义step模板 有cli模式,支持持续集成

缺点:

由于使用了BDD模式,测试人员需要了解Gherkin语法 跟AirTest一样,执行效率不高 对于没有text的页面,元素定位会比较麻烦 刚开源不久,没啥人用,相关的社区和文档不多

总结

通过以上4种移动端UI自动化的对比,可以得出以下结论:

对于原生Android平台应用,使用UIAutomator2是比较方便的选择。 对于跨平台应用,Appium和AirTest还有Flybirds都是可以考虑的。 Appium基于webdriver协议,使用统一的API来实现跨平台操作,但是对于APP内嵌的h5页面,支持不好。 AirTest是基于图像识别来操作,存在效率低和准确率不高的问题,尤其是一个页面元素图标很相似的时候,可能会出现无法识别的问题,但是airtest提供了方便实用的IDE,能大大减轻元素定位的负担,并且支持将自动化脚本打包成apk,可以通过adb shell来执行自动化测试。 Flybirds的创新在于使用了BDD模式,测试人员无需编写复杂的测试代码即可完成测试,但是此工具目前并不流行,网上也缺少相关的讨论和技术文档,出了问题都不好排查。

建议使用优先级

AirTest > Flybirds> Appium > UIAutomator

参考文档

开源 | 携程机票BDD UI Testing框架 - Flybirds Github-flybirds 携程机票BDD-UI-Testing框架Flybirds airtest behave multiple-cucumber-html-reporter uiautomator2源码解析 UIAutomator2的使用 about-appium airtest-doc

网址:移动端自动化解决方案 https://www.yuejiaxmz.com/news/view/661079

相关内容

自动化解决方案
全自动化解决方案
【解决方案】智能UI自动化测试
360金钟罩移动司法安全解决方案
自动化系统解决方案
新物流自动化解决方案
机器人自动化解决方案
锂电池行业自动化解决方案.pdf
移动智能营销解决方案
意法半导体:工厂自动化解决方案

随便看看