盘点:App 移动自动化测试工具

news2024/9/27 20:26:07

App移动端测试工具非常多,首先 区分 Android 和 iOS,以及 harmonyos 平台,每个平台下都有自己的自动化测试工具。自动化工具又区分 调试工具、monkey 工具、UI自动化工具。

本文就来盘点以下,当下主流的app自动化测试工具。

AndroidX Test

AndroidX Test 是一组 Jetpack 库,可让您针对 Android 应用运行测试。AndroidX Test 提供 JUnit4 规则来启动 Activity 并在 JUnit4 测试中与它们交互。它还包含 UI 测试框架,例如 Espresso、UI Automator 和 Robolectric 模拟器。

Robolectric

Robolectric 会模拟 Android 4.1(API 级别 16)或更高版本的运行时环境,并提供由社区维护的虚假对象(称为“影子”)。通过此功能,您可以测试依赖于框架的代码,而无需使用模拟器或模拟对象。Robolectric 支持 Android 平台的以下几个方面:

  • 组件生命周期

  • 事件循环

  • 所有资源

官方文档:https://robolectric.org/

Espresso

Espresso 来编写简洁、美观且可靠的 Android 界面测试。Espresso 适用于编写Android中型测试 和 大型测试。

Espresso 还支持在大型测试中完成以下任务时实现同步:

  • 完成跨应用的进程界限的工作流。仅适用于 Android 8.0(API 级别 26)及更高版本。

  • 跟踪应用中长时间运行的后台操作。

  • 执行设备外测试。

在线文档:https://developer.android.com/training/testing/espresso

UI Automator

UI Automator 是一个 UI 测试框架,适用于跨系统和的跨应用程序功能 UI 测试。它适用于大型测试,把Android和应用当成一个黑盒来测试。

UI Automator 测试框架的主要特性包括:

  • 用于检索状态信息并在目标设备上执行操作的API。

  • 支持跨应用UI测试的API。

在线文档:https://developer.android.com/training/testing/other-components/ui-automator

adb

Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。

它是一种客户端-服务器程序,包括以下三个组件:

  • 客户端:用于发送命令。客户端在开发机器上运行。您可以通过发出 adb 命令从命令行终端调用客户端。

  • 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。

  • 服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。

在线文档:https://developer.android.com/studio/command-line/adb

iOS 测试库
XCTest

XCTest 用于iOS 移动应用程序测试,为Xcode项目创建并运行单元测试、性能测试和UI测试。兼容 XCode 5.0+。

XCTest的主要特性:

  • XCTest是一个强大的iOS测试框架,可用于单元测试、性能测试和UI测试

  • 无需安装:Xcode提供了使用XCTest开始移动自动化测试的环境。

  • XCTest提供了对持续集成设施的良好控制

  • XCTest允许用户界面记录和增强。

在线文档:https://developer.apple.com/documentation/xctest

XCUITest

XCUITest 是一个用于执行 iOS 自动化测试的自动化 UI 测试框架。它集成在 XCTest(Apple 的 Xcode 集成测试框架)工具中。

https://developer.apple.com/documentation/xctest/user_interface_tests


iOS db(iOS debug bridge)

faceback idb

idb(iOS Development Bridge)是一个灵活的命令行界面,用于自动化 iOS 模拟器和设备。

官方地址:https://fbidb.io/

go-iOS

go-iOS是 iOS 设备功能的操作系统独立实现。可以使用它运行 UI 测试、启动或终止应用程序、安装应用程序等。

项目地址:https://github.com/danielpaulus/go-ios

sib

sib (Sonic iOS Bridge) 基于usbmuxd的iOS调试工具。

项目地址:https://github.com/SonicCloudOrg/sonic-ios-bridge

项目地址:

tidevice

tidevice(taobao iOS device)工具能够用于与iOS设备进行通信.

项目地址:https://github.com/alibaba/taobao-iphone-device


appium

Appium 是一个开源项目和相关软件生态系统,旨在促进许多应用程序平台的 UI 自动化,包括移动(iOS、Android、Tizen)、浏览器(Chrome、Firefox、Safari)、桌面(macOS、Windows)、电视 (Roku、tvOS、Android TV、三星)等等。

appium

适用于基于 W3C WebDriver 协议构建的各种应用程序的跨平台自动化框架

项目地址:https://github.com/appium/appium

appium inspector

appium inspector 是由appium提供的移动应用程序的GUI检查器,帮助用户查看 app元素属性。

项目地址:https://github.com/appium/appium-inspector

python/java/ruby/c# client

appium 支持基于多种语言编写 appium 自动化测试脚本,为此,appium 推出了不同版本的 client 端口。

python-client: https://github.com/appium/python-client java-client: https://github.com/appium/java-client ruby-client: https://github.com/appium/ruby_lib c#-client: https://github.com/appium/dotnet-client

WebDriverAgent

WebDriverAgent 是适用于 iOS 的 WebDriver 服务器实现,可用于远程控制 iOS 设备。它通过链接XCTest.framework并调用Apple的API直接在设备上执行命令来工作。

该项目由 facebook 开源,目前,facebook已经停止了对该项目的维护,appium fork 了分支,WebDriverAgent在appium得到了很好的持续维护。

项目地址:https://github.com/appium/WebDriverAgent


AirtestProject

AirtestProject是网易游戏推出的自动化测试框架。

airtest

Airtest基于图像识别的跨平台UI自动化测试框架。适用于游戏和应用程序,支持的平台是Windows, Android和iOS。

项目地址:https://github.com/AirtestProject/Airtest

Poco

Poco是一个基于UI控件识别的自动化测试框架。目前支持Unity3D/cocos2dx-/Android原生应用/iOS原生应用/微信applet。在其他引擎中,你也可以通过访问poco-sdk来使用poco。

项目地址:https://github.com/AirtestProject/poco

AirtestIDE

Airtest IDE是一个跨平台的UI自动化测试编辑器,它有内置的Airtest和Poco插件功能,可以让你快速轻松地编写AirtestPoco代码。

下载地址:http://airtest.netease.com/changelog.html

iOS-Tagent

iOS-Tagent是一个基于facebook WebDriverAgent的项目的分支,用于适配 Airtest 支持 iOS App 自动化测试。

项目地址:https://github.com/AirtestProject/iOS-Tagent


openatx

openatx 提供了一组工具来支持移动自动化测试。

uiauotmator2

uiautomator2 是基于 Android 的 UI Automator库实现的 Python测试库。

UI Automator 是Google提供的用来做安卓自动化测试的一个Java库,基于Accessibility服务。原理是在手机上运行了一个http rpc服务,将UI Automator中的功能开放出来,然后再将这些http接口封装成Python库。

项目地址:https://github.com/openatx/uiautomator2

facebook-wda / wdapy

facebook-wda 是基于 facebook WebDriverAgent 实现的python 测试库。

由于facebook-wda 存在一些无法修复的历史遗留问题,作者重新创建了 wdapy 项目,希望在这个项目中解决遗留的问题。

项目地址:https://github.com/openatx/facebook-wda 项目地址:https://github.com/openatx/wdapy

注:facebook-wda/wdapy 需要借助 WebDriverAgent 进行自动化测试。

adbutils

adbutils 用于实现 adb 工具的 python 库。adb 是Android 自带命令行工具,adbutils的命令的基础上包了一层,使用户可以通过python语言实现 adb的命令。

maestro

Maestro 是为您的移动应用程序自动化 UI 测试的最简单方法。

Maestro 建立在其前身(Appium、Espresso、UIAutomator、XCTest)的学习基础上。

  • 内置耐剥落性能。UI元素并不总是在你期望的地方,屏幕点击并不总是通过,等等。Maestro接受了移动应用程序和设备的不稳定性,并试图对抗它。

  • 内置的延迟容忍度。不需要在测试中添加sleep()调用。Maestro知道它可能需要时间来加载内容(即通过网络),并自动等待它(但不会超过所需的时间)。

  • 极其快速的迭代。测试是解释的,不需要编译任何东西。Maestro能够持续监视您的测试文件并重新运行它们

官方网站:https://maestro.mobile.dev/


app Monkey 测试工具

fastbot

Fastbot 是一种基于模型的测试工具,用于对 GUI 转换进行建模以发现应用程序稳定性问题。它结合了机器学习和强化学习技术,以更智能的方式帮助发现。

fastbot-android: https://github.com/bytedance/Fastbot_Android

fastbot-iOS: https://github.com/bytedance/Fastbot_iOS

App性能分析工作台

AnyTrace 是一款运行在PC桌面端的、用于线下分析移动端 Android/iOS 应用的性能、测评、专项分析的工具。目前主要提供了App 的性能指标评测、fastbot稳定性压测、内存、CPU、卡顿、启动等专项性能归因分析,以及一些常用的、实用的调试类工具集合。

在线文档:https://www.volcengine.com/docs/6431/82895

 

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2170952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文档信息提取系统源码分享

文档信息提取检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

客户服务升级指南:如何以细节赢得客户忠诚

在当今这个竞争激烈的市场环境中,客户忠诚度已成为企业生存与发展的关键所在。而要想赢得并维持客户的忠诚,仅凭优质的产品或服务已远远不够,更需要企业在客户服务上下足功夫,从每一个细节入手,打造超越客户期待的服务…

C++简单缓冲区类设计

目录 1.引言 2.静态缓冲区 3.动态缓冲区 4.数据引用类 5.自动数据引用类 6.几种缓冲区的类关系图 7.注意事项 8.完整代码 1.引言 在C中,设计静态和动态缓冲区类时,需要考虑的主要差异在于内存管理的方式。静态缓冲区类通常使用固定大小的内存区域…

【机器学习案列】基于随机森林和xgboost的二手车价格回归预测

一、项目分析 1.1 项目任务 kaggle二手车价格回归预测项目,目的根据各种属性预测二手车的价格。 1.2 评估准则 评估的标准是均方根误差: 1.3 数据介绍 数据连接https://www.kaggle.com/competitions/playground-series-s4e9/data?selecttrain.csv 其…

基于 Java Swing 实现的超级玛丽游戏

一、项目概述 > 这是一个基于 Java Swing 的游戏项目,旨在实现一个支持自定义地图的超级玛丽游戏。 > 游戏画面精美,包含多种功能和亮点,如地图编辑器、不同状态的马里奥、多种怪物和道具等。 二、项目演示 > 地图编辑器 > …

Mac写入U盘文件如何跨平台使用 Mac电脑怎么把U盘文件传送到电脑 mac怎么用u盘拷贝文件

不知道你在使用Mac电脑拷贝文件的时候有没有遇到过无法写入U盘的问题,这通常是由于Mac和Windows之间的兼容问题引起的。下面我将为大家详细介绍Mac写入U盘文件如何跨平台使用以及Mac如何将U盘文件复制到电脑。 一、Mac写入U盘文件如何跨平台使用 在Mac电脑上将文件…

MySQL第11讲--多表查询的介绍

文章目录 前言多表关系多表查询概述多表查询的分类连接查询内链接外链接自连接 联合查询子查询标量子查询列子查询行子查询表子查询 前言 在MySQL第10讲–约束的介绍中讲了数据库的几种约束条件:非空约束、唯一约束、主键约束、外键约束、检查约束、默认约束。下图对…

数字人实战第六天——DH_live 训练自己的数字人

一、简介 数字人是一种基于人工智能和数字化技术构建的虚拟人物或代理,能够进行人类式的交互和沟通。这些技术主要包括: 人工智能(AI):AI 是数字人的核心,包括自然语言处理(NLP)、机…

[深度学习]循环神经网络

1 自然语言处理概述 语料:一个样本,句子/文章语料库:由语料组成词表:分词之后的词语去重保存成为词表2 词嵌入层 import jieba import torch.nn as nn import torch # 文本数据 text=北京东奥的进度条已经过半,不少外国运动员在完成自己的比赛后踏上归途。 # 分词 words=j…

11.梯度下降法的思想——举足轻重的模型优化算法

引言 优化算法在机器学习和人工智能中扮演者至关重要的角色。机器学习模型的训练过程本质上是一个优化问题,即通过调整模型参数来最小化损失函数。梯度下降法(Gradient Descent)在优化算法中占据着重要的地位,因其简单、有效且易于实现。 通过阅读本篇…

阿里云服务器挖矿木马清除

这里写自定义目录标题 阿里云服务器挖矿木马清除清除步骤: 阿里云服务器挖矿木马清除 直接看图: 清除步骤: 是的,根据您提供的 systemctl 输出,c3pool_miner.service 看起来非常可疑,因为它的描述是 “…

langchain v0.3更新了什么?

版本改动 这是具体改动的链接 官方blog首先说明了: 所有软件包已在内部从 Pydantic 1 升级到 Pydantic 2。 所有软件包都完全支持在用户代码中使用 Pydantic 2,而无需使用 langchain_core.pydantic_v1 或 pydantic.v1 等桥接程序。 由于 Pydantic 1 已…

Django 配置邮箱服务,实现发送信息到指定邮箱

一、这里以qq邮箱为例,打开qq邮箱的SMTP服务 二、django项目目录设置setting.py 文件 setting.py 添加如下内容: # 发送邮件相关配置 EMAIL_BACKEND django.core.mail.backends.smtp.EmailBackend EMAIL_USE_TLS True EMAIL_HOST smtp.qq.com EMAIL…

18724 二叉树的遍历运算

### 思路 1. **递归构建树**: - 先序遍历的第一个节点是根节点。 - 在中序遍历中找到根节点的位置,左边部分是左子树,右边部分是右子树。 - 递归构建左子树和右子树。 2. **递归生成后序遍历**: - 递归生成左子树的…

《Python编程:从入门到实践》数据可视化

一、项目 数据可视化学习 二、库依赖 matplotlib,pygal, 三、生成数据 1.绘制简单的折线图 import matplotlib.pyplot as pltsquares [1, 4, 9, 16, 25] plt.plot(squares) plt.show() 模块pyplot包含很多用于生成图表的函数。 (1&am…

Excel求和为什么是0?结果不对的来跟着步骤排查

大家好,这里是效率办公指南! 🔢 Excel求和功能是日常工作中常用的工具,但有时我们可能会遇到求和结果意外地显示为0,这可能会让我们感到困惑。今天,我们就来具体分析一下可能导致Excel求和结果为0的原因&a…

100套顶刊配色方案!Matlab超绝配色包TheBestColor

两三年前,我刚开始研究制作Matlab配色包,那时Matlab几乎只能用自带的默认配色,选择极少。 时至今日,Matlab配色已不是问题。 实际体验下来,在某些层面,甚至比隔壁R、Python吃得还要好一些。 但吃得太好&…

TARA分析方法论——威胁分析和风险评估方法

一、什么是TARA分析方法论 威胁分析和风险评估(Threat Analysis and Risk Assessment) 通过识别整车/项目的网络安全资产,分析其中的潜在的安全威胁,综合考虑威胁攻击可行性、危害影响等因素,识别出整车/项目可能存在…

【技巧】移动云手机如何防止1小时自动关机

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 背景介绍 领的免费云手机,如果1或2小时内不登录,就会被自动关机,这非常影响使用。本方法可以实现自动刷新页面&…

西门子:觅最佳的生态伙伴,筑最好的数字平台|商业创新同行者

沧海桑田,时光变幻。 纵观全球,历经百年仍能保持基业长青的公司少之又少,而像西门子这样依旧矗立在顶峰的企业可谓凤毛麟角,成功的数字化转型更是为这家企业带来了持续不断的澎湃活力。 作为当代数字化时代的创新经济模式&#…