uiautomation,uiautomation 模块
什么是uiautomation
automation
英 [??t?'me??(?)n]
美 [,?t?'me??n]
n.
自动化;自动操作
如何使用UIAutomation进行iOS自动化测试
1. 你的第一个UIAutomation测试脚本
UIAutomation的功能测试代码是用Javascript编写的。UIAutomation和Accessibility有着直接的关系,你将用到通过标签和值的访问性来获得UI元素,同时完成相应的交互操作。
下面让我们来编写我们的第一段测试代码。
使用iOS模拟器
1. 下载示例应用程序TestAutomation.xcodeproj,并打开它。这个项目是一个很简单的包含2个tab的tabbar应用程序。
2. 确保选中如下图所示的“TestAutomation iPhone 5.0 Simulator”模式(或许你已经切换成5.1了,因此它可能是iPhone5.1模拟器)。
3. 启动Instruments(Product Profile),或者通过?I。
4. 选择左边的iOS Simulator,然后再选择Automation模板,然后点击“Profile”。
5. Instruments就已经启动好后,然后直接开始录制了。这里先停止录制,(红包按钮或者?R)。
6. 在左边的Scripts窗口,点击“Add Create”创建新的脚本。
7. 在脚本编辑器里,输入下面的代码
1
2
3
4
var target = UIATarget.localTarget();
var app = target.frontMostApp();
var window = app.mainWindow();
target.logElementTree();
如何使用UIAutomation进行iOS 自动化测试
第一部分: 熟悉Instruments的UIAutomation.1、选取xcode-Open Developer Tool-Instruments打开Instruments工具, 然后在左上角可以选取设备及被测APP(如下图):2、点击中间的红色按钮开始录制, 录制过程中, 代码框中会实时更新自动化脚本, 点击停止后, 就录制成功了一段自动化测试脚本了. 然后可以点击左边执行即可看到iPhone 5s模拟器中的执行结果了, 跟录制的动作是一致的.第二部分: 控件的获取及操作获取UI控件的方法也非常简便:1、var tableViews = window.tableViews() // 可以获取所有的tableView组成的数组.2、var cells = tableViews[0].cells() // 则获取到第一个tableView中的所有cell元素.3、var textFields = window.textFields()4、textFields[0].value() // 获取该textField中的值其他控件的获取都是类似的方法, 如buttons(), images(), webViews().第三部分: 自定义自动化脚本熟悉了基本的UIAutomation相关的规则之后, 就可以来编写自定义的自动化脚本了.取出tableView上的所有cell, 并依次点击该cell, 然后跳转至每个cell的详细界面, 最后返回.log栏里, 会呈现所有的执行结果, 分析起来也是非常方便的.
uiautomator与appium的区别
uiautomator和appium都作为移动端自动化测试的工具.那么他们有什么区别呢?
1.适用场景不同
uiautomator适用于adroid手机端自动化测试.而appium不仅适用于Android手机,同样适用于ios手机.
2.作用域不同
在Android系统场景中,uiautomator可跨app,在手机ROM层面实现交互.而appium只适合在应用内部,不能跨app.
而且appium可以实现webview界面的自动化测试,而uiautomator却不能.
3.原理
appium是通过webDriver调起应用,以appium server作为桥梁,通过Bootstrap.jar调用的android端uiautomator命令和ios端uiautomation/XCTest(ios 8以上).
uiautomator通过android instrumentation获取系统上下文,设备信息状态等.
如何利用 UIAutomation 自动化测试 iOS 应用
1. 第一个UIAutomation测试脚本
使用iOS 模拟器
使用iOS设备
2. 处理UIAElement和元素可访问性(Accessibility)
UIAElement层次结构
模拟用户操作
3. 经验分享(让你的生活变得更简单)
类库Tune-up介绍
导入外部脚本
使用强大的命令行
使用录制交互功能
当遇到问题时,加上“UIATarget.delay(1);”
4. 高级交互
处理非预期和预期的提示框(alerts)
多任务
屏幕方向
截屏
加载本地脚本
5. 总结
有用的链接
一个视频