(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,基本操作顺序如下:

  1. 使用Xcode创建一个UI Testing Target
  2. 在生成的模版文件中,将光标放在测试函数中
  3. 开始UI录制,在APP运行起来之后,执行想要的操作,Xcode会捕获这些操作并在函数体内生成源码。

(5) Writing UI Tests

API 测试有功能测试和显示测试,所以UI Tests也一样。UI Tests在App的外部进行操作,集成了许多用户能看到和操作的基础功能。
     UI Tests基本操作:

  1. 查询一个元素(Element)
  2. 根据参考,了解元素预期的操作
  3. 点击了一个元素使其产生响应
  4. 评测这个结果是否符合预期

用XCTest创建的UI Tests是对Unit Tests的一个扩展。 操作的方式很类似,编程的方法也大致相同。不同的方面已经在上面提及过了。
     在Test的类中含有一个SetUp方法,和Unit Tests的SetUp方法有两处不同。

self.continueAfterFailure的默认值是NO,创建了一个XCUIApplication,并Launch。
编写UI Tests的大致模式如下:

  1. 使用XCUIElementQuery查找XCUIElement
  2. 传递消息给XCUIElement
  3. 使用断言去比较XCUIElement的状态是否和预期的一致

如果要创建一次UI Test行为,包涵了一系列可以重复的UI操作,可以看Writing Performance Tests。

转载于:https://www.cnblogs.com/luerniu/p/6393055.html

1. UI Tests简介相关推荐

  1. 【干货】iOS9的新特性UI Tests

    视频汇总首页:http://edu.51cto.com/lecturer/index/user_id-4626073.html 什么是UI Tests呢? UI Tests是苹果提供给我们进行UI测试 ...

  2. 在Visual Studio 2010中实现数据驱动Coded UI Tests

    通常情况下,我们要与不同的数据值一起重复一个测试.这个"数据驱动"在Coded UI Test中非常容易的.在本例子中,我们创建了一个Coded UI Test,以验证在计算器的两 ...

  3. Appium APP UI自动化测试简介与环境搭建

    一. app自动化测试背景 移动终端越来越多,手机应用也越来越多 App回归测试用例越来越多,但全量回归很消耗时间 移动端碎片化严重,尤其是Android端(兼容性就是碎片化的体现,有很多厂商.机型. ...

  4. jQuery布局插件UI Layout简介

    UI Layout是一种基于jQuery的布局框架,项目主页http://layout.jquery-dev.net/.该框架的参考原型是ExtJS的border-layout,因此十分适用于将原有使 ...

  5. UI Automation 简介

    转载,源地址: http://blog.csdn.net/ffeiffei/article/details/6637418 MS UI Automation(Microsoft User Interf ...

  6. html面板插件ui,jQuery布局插件UI Layout简介及使用方法

    UI Layout是一种基于jQuery的布局框架,项目主页http://layout.jquery-dev.net/.该框架的参考原型是ExtJS的border-layout,因此十分适用于将原有使 ...

  7. dotnet Multi-platform App UI 多平台应用 UI 框架简介

    现在可以使用 .NET 构建一切应用.富有生产力的 .NET 是当前数百万的开发者选择这个平台的理由.在 .NET 5 微软统一了整个 .NET 平台,将 .NET Core 和 Mono 以及基于 ...

  8. Android ActivityThread(主线程或UI线程)简介

    1. ActivityThread功能 它管理应用进程的主线程的执行(相当于普通Java程序的main入口函数),并根据AMS的要求(通过IApplicationThread接口,AMS为Client ...

  9. Kendo UI:简介

    目前移动HTML5带UI的开发框架层出不穷,常见的有Sencha Touch.jQuery Mobile前者效果较好,收费,学习成本高:后者效果一般,但兼容性好,免费,学习成本低,会jquery的同学 ...

最新文章

  1. 聊聊分布式锁——Redis和Redisson的方式
  2. logback的使用和logback.xml详解[转]
  3. CentOS设置开机自动启动某服务
  4. spring学习(34):构造函数依赖注入
  5. mc服务器出生地修改,《我的世界》MC出生地太坑爹怎么办?大神教你一个指令就搞定了!...
  6. ​OCO订单(委托)
  7. 解析事件总线的4种实现方式
  8. 7-zip压缩解压软件.html,7-Zip 压缩率比较高的压缩软件 17.01 美化优化版
  9. easyui datagrid 点击其它 单元格,不让头列 checkbook 选中
  10. 中学-知识与能力【9】
  11. Ae 效果快速参考:杂色和颗粒
  12. crawlergo带cookie爬虫
  13. 微信对账单接口返回值解析
  14. 获取元素到body顶部的距离,offsetTop和offsetParent,getBoundingClientRect
  15. 人工与软件刷流量有什么区别,如何做刷流量效果才最好?
  16. h3c无线认证服务器,H3C无线路由器配置样例之带认证接入
  17. 关于设计解决空洞卷积中‘gridding effect‘问题的几个原则(简单易懂)
  18. 编译器连接器分析器_使用构建分析器了解您的构建
  19. C - 一只小蜜蜂...
  20. wlan配置——瘦AP配置【拓扑简单,代码详细,命令解释】

热门文章

  1. JXL生成Excel,并提供下载(2:提供下载)
  2. Docker笔记四 发布自制DockerImage 到 Dockerhub
  3. 用node.js给图片加水印
  4. VSTO学习笔记(四)从SharePoint 2010中下载文件
  5. MsChart5 累计柱状图 分类统计
  6. 悲观锁和乐观锁_浅谈数据库悲观锁和乐观锁
  7. raspberry pi_如何使用Raspberry Pi构建WiFi相框
  8. 分布式链接跟踪服务_微服务世界中的分布式跟踪
  9. 涉足荒野script_为什么社区经理必须涉足(而不是潜入)社区
  10. (3)<meta>标签