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 页面应用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)