1. UI Tests简介
(1) User Interface Testing
UI Testing库主要提供了与App中的UI元素进行查找和交互的能力,这使得我们可以通过验证UI元素的状态来测试App是否正常运行。
UI Testing可以通过录制开发者的操作自动生成代码,你可以基于这些生成的代码进行改进完善测试,这使得我们可以快速的完成UI测试。
测试报告主要记载了UI Tests的相信信息,包括了测试失败时候的截图。
UI Tests依靠了2个核心技术:XCTest 和 Accessibility
- XCTest一款集成在Xcode中的框架,提供了测试UI的能力。开发者可以创建一个UI Test Target,同时会在开发者的项目中生成UI Test类。开发者可以使用XCTest assertion(断言)进行验证输出是否符合预期。XCTest使用Objective-C和Swift都能进行开发。
- Accessibility是可以使残疾人获得和其他用户一样的关于iOS和OS X的丰富经验。它包含了一系列语义数据,开发者可以使用这些数据去引导新用户们使用方法。Accessibility集成在UIKit和AppKit中,其API可以使你去微调用户操作。当然这些操作是用户可见的,UI Testing是使用数据去执行它的功能的。、
创建UI Tests和创建UI Unit Tests的方式类似,首先在你的App中创建UI Test Target,创建之后,Xcode会在你的工程中自动生成一个文件夹(Group),里面会生成一个样例模版类。当你创建了UI Test target,你就可以告诉你的App,你的测试数据在什么位置。
UI Testing通过查询app中的UI对象进行工作,生成消息事件,发送给这些UI对象。你可以通过丰富的API去检查UI对象的Property和state,比较他们是否和预期的一致。
(2) Requirements
UI testing 依赖的Services和APIs不是集成在OS平台上的。你需要Xcode 7, OS X 10.11 EI Capitan and iOS(or later version)。UI Test保护以下权限:
- iPhone真机需要连接到一个信任的PC。
- OS X需要给a special Xcode helper app权限。当你在第一次使用UI Tests的时候会自动完成这个授权。
(3) Concepts And APIs
UI Testing和Unit testing在基本的环境上有差异:Unit testing可以使你在app的范围内训练函数和方法的同时,你可以拥有App中所有变量的访问权限。UI Testing在训练函数和方法的时候没有App中内部方法、函数、变量的访问权限。这使得开发者的环境和真正拥护操作的环境相同,这这中环境中用户可能遇到的问题。
你的测试代码会在另外的进程运行,向UI传递消息的API包括以下:
- XCUIApplication
- XCUIElement
- XCUIElementQuery
(4) Get Started With UI Recording
开始UI录制,系统会根据你的操作生成源码。这些源码是可以编辑的,也可以用来重现一个特定的用户操作。UI录制也可以用来寻找新的UI和学习如何使用UI Test,基本操作顺序如下:
- 使用Xcode创建一个UI Testing Target
- 在生成的模版文件中,将光标放在测试函数中
- 开始UI录制,在APP运行起来之后,执行想要的操作,Xcode会捕获这些操作并在函数体内生成源码。
(5) Writing UI Tests
API 测试有功能测试和显示测试,所以UI Tests也一样。UI Tests在App的外部进行操作,集成了许多用户能看到和操作的基础功能。
UI Tests基本操作:
- 查询一个元素(Element)
- 根据参考,了解元素预期的操作
- 点击了一个元素使其产生响应
- 评测这个结果是否符合预期
用XCTest创建的UI Tests是对Unit Tests的一个扩展。 操作的方式很类似,编程的方法也大致相同。不同的方面已经在上面提及过了。
在Test的类中含有一个SetUp方法,和Unit Tests的SetUp方法有两处不同。
self.continueAfterFailure的默认值是NO,创建了一个XCUIApplication,并Launch。
编写UI Tests的大致模式如下:
- 使用XCUIElementQuery查找XCUIElement
- 传递消息给XCUIElement
- 使用断言去比较XCUIElement的状态是否和预期的一致
如果要创建一次UI Test行为,包涵了一系列可以重复的UI操作,可以看Writing Performance Tests。
转载于:https://www.cnblogs.com/luerniu/p/6393055.html
1. UI Tests简介相关推荐
- 【干货】iOS9的新特性UI Tests
视频汇总首页:http://edu.51cto.com/lecturer/index/user_id-4626073.html 什么是UI Tests呢? UI Tests是苹果提供给我们进行UI测试 ...
- 在Visual Studio 2010中实现数据驱动Coded UI Tests
通常情况下,我们要与不同的数据值一起重复一个测试.这个"数据驱动"在Coded UI Test中非常容易的.在本例子中,我们创建了一个Coded UI Test,以验证在计算器的两 ...
- Appium APP UI自动化测试简介与环境搭建
一. app自动化测试背景 移动终端越来越多,手机应用也越来越多 App回归测试用例越来越多,但全量回归很消耗时间 移动端碎片化严重,尤其是Android端(兼容性就是碎片化的体现,有很多厂商.机型. ...
- jQuery布局插件UI Layout简介
UI Layout是一种基于jQuery的布局框架,项目主页http://layout.jquery-dev.net/.该框架的参考原型是ExtJS的border-layout,因此十分适用于将原有使 ...
- UI Automation 简介
转载,源地址: http://blog.csdn.net/ffeiffei/article/details/6637418 MS UI Automation(Microsoft User Interf ...
- html面板插件ui,jQuery布局插件UI Layout简介及使用方法
UI Layout是一种基于jQuery的布局框架,项目主页http://layout.jquery-dev.net/.该框架的参考原型是ExtJS的border-layout,因此十分适用于将原有使 ...
- dotnet Multi-platform App UI 多平台应用 UI 框架简介
现在可以使用 .NET 构建一切应用.富有生产力的 .NET 是当前数百万的开发者选择这个平台的理由.在 .NET 5 微软统一了整个 .NET 平台,将 .NET Core 和 Mono 以及基于 ...
- Android ActivityThread(主线程或UI线程)简介
1. ActivityThread功能 它管理应用进程的主线程的执行(相当于普通Java程序的main入口函数),并根据AMS的要求(通过IApplicationThread接口,AMS为Client ...
- Kendo UI:简介
目前移动HTML5带UI的开发框架层出不穷,常见的有Sencha Touch.jQuery Mobile前者效果较好,收费,学习成本高:后者效果一般,但兼容性好,免费,学习成本低,会jquery的同学 ...
最新文章
- 聊聊分布式锁——Redis和Redisson的方式
- logback的使用和logback.xml详解[转]
- CentOS设置开机自动启动某服务
- spring学习(34):构造函数依赖注入
- mc服务器出生地修改,《我的世界》MC出生地太坑爹怎么办?大神教你一个指令就搞定了!...
- ​OCO订单(委托)
- 解析事件总线的4种实现方式
- 7-zip压缩解压软件.html,7-Zip 压缩率比较高的压缩软件 17.01 美化优化版
- easyui datagrid 点击其它 单元格,不让头列 checkbook 选中
- 中学-知识与能力【9】
- Ae 效果快速参考:杂色和颗粒
- crawlergo带cookie爬虫
- 微信对账单接口返回值解析
- 获取元素到body顶部的距离,offsetTop和offsetParent,getBoundingClientRect
- 人工与软件刷流量有什么区别,如何做刷流量效果才最好?
- h3c无线认证服务器,H3C无线路由器配置样例之带认证接入
- 关于设计解决空洞卷积中‘gridding effect‘问题的几个原则(简单易懂)
- 编译器连接器分析器_使用构建分析器了解您的构建
- C - 一只小蜜蜂...
- wlan配置——瘦AP配置【拓扑简单,代码详细,命令解释】