uiautomator与appium的区别

uiautomator与appium的区别,第1张

uiautomator和appium都作为移动端自动化测试的工具那么他们有什么区别呢

1适用场景不同

uiautomator适用于adroid手机端自动化测试而appium不仅适用于Android手机,同样适用于ios手机

2作用域不同

在Android系统场景中,uiautomator可跨app,在手机ROM层面实现交互而appium只适合在应用内部,不能跨app

而且appium可以实现webview界面的自动化测试,而uiautomator却不能

3原理

appium是通过webDriver调起应用,以appium server作为桥梁,通过Bootstrapjar调用的android端uiautomator命令和ios端uiautomation/XCTest(ios 8以上)

uiautomator通过android instrumentation获取系统上下文,设备信息状态等

请注意测试本身不是靠工具的而是靠设计,这是我的理念,所以我一向觉得,很多人认为做测试做的好就是靠掌握一门好的工具,这个观点是不正确的,所以我可以负责任的告诉你,做Android手机需要掌握的不是工具、而是理念、思维、以及框架,总的来说是本质,而工具只是辅助,那么现在我来介绍一些我了解的工具(仅仅是了解,很多没用过)

开源 Android 软件测试工具包括:Android Test Kit, AndroidJUnit4, Appium, calabash-android, Monkey, MonkeyTalk, NativeDriver, Robolectric, RoboSpock, Robotium, UIAutomator, Selendroid。

Android Test Kit

Android Test Kit 是一组 Google 开源测试工具,用于 Android 平台,包含 Espresso API 可用于编写简洁可靠的 Android UI 测试。

AndroidJUnit4

AndroidJUnit4 是一个让 JUnit 4 可以直接运行在 Android 设备上的开源命令行工具。

Appium

Appium 是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持 iOS, Android 和 FirefoxOS 平台。Appium 驱动苹果的 UIAutomation 库和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 协议。Appinm 的 iOS 支持是基于 Dan Cuellar's 的 iOS Auto Appium 同时绑定了 Selendroid 用于老的 Android 平台测试。

Calabash-android

calabash-android 是一个基于 Cucumber 的 Android 的功能自动化测试框架。Calabash 允许你写和执行,是开源的自动化移动应用测试工具,支持 Android 和 iOS 原生应用。Calabash 的库允许原生和混合应用的交互测试,交互包括大量的终端用户活动。Calabash 可以媲美 Selenium WebDriver。但是, 需要注意的是 web 应用和桌面环境的交互跟触摸屏应用的交互是不同的。Calabash 专为触摸屏设备的原生应用提供 APIs。

Monkey

Monkey 是 Google 开发的 UI/应用测试工具,也是命令行工具,主要针对压力测试。你可以在任意的模拟器示例或者设备上运行。Monkey 发送一个用户事件的 pseudo-random 流给系统,作为你开发应用的压力测试。

MonkeyTalk

MonkeyTalk 是世界上最强大的移动应用测试工具。MonkeyTalk 自动为 iOS 和 Android 应用进行真实的,功能性交互测试。MonkeyTalk 提供简单的 "smoke tests",复杂数据驱动的测试套件。MonkeyTalk 支持原生,移动和混合应用,真实设备或者模拟器。MonkeyTalk 使得场景捕获非常容易,可以记录高级别,可读的测试脚本。同样的命令可以用在 iOS 和 Android 应用上。你可以记录一个平台的一个测试,并且可以在另外一个平台回放。MonkeyTalk 支持移动触摸和基于手势交互为主的移动体验。点击,拖拽,移动,甚至是手指绘制也可以被记录和回放。

NativeDriver

NativeDriver 是 WebDriver API 的实现,是原生应用 UI 驱动,而不是 web 应用。

Robolectric

Robolectric 是一款Android单元测试框架,使用 Android SDK jar,所以你可以使用测试驱动开发 Android 应用。测试只需几秒就可以在工作站的 JVM 运行。Robolectric 处理视图缩放,资源加载和大量 Android 设备原生的 C 代码实现。Robolectric 允许你做大部分真实设备上可以做的事情,可以在工作站中运行,也可以在常规的 JVM 持续集成环境运行,不需要通过模拟器。

RoboSpock

RoboSpock 是一个开源的 Android 测试框架。提供简单的编写 BDD 行为驱动开发规范的方法,使用Groovy 语音,支持 Google Guice 库。RoboSpock 合并了 Robolectric 和 Spock 的功能。

Robotium

Robotium 是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势 *** 作(点击、长 按、滑动等)、查找和断言机制的API,能够对各种控件进行 *** 作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测 试。另外,Robotium 40版本已经支持对WebView的 *** 作。Robotium 对Activity,Dialog,Toast,Menu 都是支持的。

UIAutomator

uiautomator 测试框架提高用户界面(UI)的测试效率,通过自动创建功能 UI 测试示例,可以在一个或者多个设备上运行你的应用。

Selendroid

Selendroid 是一个 Android 原生应用的 UI 自动化测试框架。测试使用 Selenium 2 客户端 API 编写。Selendroid 可以在模拟器和实际设备上使用,也可以集成网格节点作为缩放和并行测试。

如果是进行wap端测试

1、使用appium集成的chromeDriver。在手机端安装chrome浏览器,下载对应版本的chromeDriver,使用appium初始化Chrome浏览器相关设置,可以启动chrome,利用chromedriver实现自动化。

2、如果是内嵌webview,需要初始化driver后,利用drivercontexx("WEBVIEW_1"),进行切换到webview,进行元素定位或者自动化

3、其他方式,启动源生浏览器,但这种方式是将源生浏览器当做一个app来使用,可能启动activity不允许三方进行调用,这样会导致失败

系列文章:

基于Appium实现深度UI遍历工具

基于Appium实现深度UI遍历工具(二)

分享了需求,功能设计,流程,工具选择。那么这次来分享下。整体的框架模块以及开发需要的类包。

第一、整体模块

对功能有了一些设计,接下来,就是对于整体模块的拆分。再去分享实际项目的工程搭建。

1config

配置模块,针对UI遍历中,所有的配置相关的文件进行管理。

2case模块

case相关,我们这里把UI遍历作为一个case 来实现。可以创建一个uicrawlerpy,控制遍历相关的。

3common包

里面处理通用的功能,adb封装,log封装,webdriver封装,xpath封装,通用配置的封装,测试报告模块等。

4testlog

处理里面所有的log,包括脚本的过程的中log,设备执行logcat相关的日志。方便后续的日志分析和问题的定位。

5testreport

存储测试报告的模块。

6runpy

执行模块。主要的入口。

第二、开发需要类包

第三方依赖包

1PyYAML

解析配置文件

2selenium

用做隐形等待,查找元素

3lxml

页面的UI解析,用于分析解决xpath,所有的定位的方式,都采用xpath的来进行定位。

4opencv-python

文件解析

5Pillow

处理,我们在做点击 *** 作的时候,去记录下点击的位置。

6logbook

log日志处理,记录测试日志

7Appium-Python-Client

appium的python库。这里会做一些简单的封装。

python自身的库

1random

随机模块,处理一些随机的,在文本输入的时候,我们去随机地选取一些配置的文件

2platform

获取一些系统

3os

文件处理

4difflib

文本对比

5datetime

时间处理

6shutil

文件处理的高级模块

7hashlib

用于产生一个固定的字符串,其实是一个加密的模块。

大概列举了一些用到的库,在后面的代码编写的过程中,如果遇到需要使用其他类库,还会增加。

以上就是关于uiautomator与appium的区别全部的内容,包括:uiautomator与appium的区别、做Android手机软件测试需要掌握哪些工具、appium 怎么定位纯 HTML5 页面应用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9300666.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存