视频汇总首页:http://edu.51cto.com/lecturer/index/user_id-4626073.html

什么是UI Tests呢?

UI Tests是苹果提供给我们进行UI测试的一套框架。

UI Tests有什么用?

它可以通过编写代码、或者是记录用户操作过程并将其代码化,来实现自动点击某个按钮、视图,或者自动输入文字等功能。

UI Tests的意义

在实际的项目迭代过程中,随着项目越做越大,功能越来越多,仅仅靠人工操作的方式来覆盖所有测试用例是非常困难的,尤其是加入新功能以后,旧的功能也要重新测试一遍,这导致了测试需要花非常多的时间来进行回归测试,这里产生了大量重复的工作,而这些重复的工作有些是可以自动完成的,这时候UI Tests就可以帮助解决这个问题了。

使用方法

   第一步:添加UI Tests。

如果是新项目,则创建工程的时候可以直接勾选Include UI Tests选项,如果是已有的项目,可以通过添加target的方式添加一个UI Tests的方式,如下图:

在Test选项中选择Cocoa Touch UI Testing Bundle.

   第二步:创建测试代码。

这里主要有两种方式来生成测试代码:

1、手动创建测试代码。
   打开测试文件,在testXXX()方法中添加测试代码

2、通过录制脚本的方式生成测试代码。
   选择测试文件后,点击左下方的录制按钮,这时候开始进行操作,它会记录你的操作步骤,并生成测试代码。

下图就是在一些操作后自动生成的测试代码。

通过自动生成的代码片段,我们能够分析出测试代码的结构和一些可点击控件的名称,将这些点击的方法和控件名称记录下来,之后就可以自己编写测试代码了,要知道手动创建的代码可比录制的方法灵活的多哦!

   第三步:开始测试。
   点击testExample方法旁边的播放按钮,它就开始执行你的测试case了,这时候你会看到你的测试App在自动操作。

UI Tests语法简介

这里主要给大家介绍一下UI Tests的主要类及方法。

   XCUIApplication类:
   继承自XCUIElement,这个类掌管应用程序的生命周期,里面包含两个主要方法:
   launch(): 启动程序
   terminate(): 终止程序

   XCUIElement类:
   继承自NSObject,实现协议XCUIElementAttributes, XCUIElementTypeQueryProvider,可以表示系统的各种UI元素,它主要包含以下几个方法。
   exist: 可以让你判断当前的UI元素是否存在。
   descendantsMatchingType(type:XCUIElementType): 取某种类型的元素以及它的子类集合。
   childrenMatchingType(type:XCUIElementType): 取某种类型的元素集合,不包含它的子类。

这两个方法的区别在于,你仅使用系统的UIButton时,用childrenMatchingType就可以了,如果你还希望查询自己定义的子Button,就要用descendantsMatchingType方法。

   另外UI元素还有一些交互方法:

tap(): 点击。

doubleTap(): 双击。
   pressForDuration(duration: NSTimeInterval): 长按一段时间。
   typeText(text: String): 用于textField和textView输入文本时使用,使用前要确保文本框获得输入焦点,可以使用tap()函数使其获得焦点。

当然了,这里也只是给大家简单介绍了一下常用的函数,具体如何使用还需要大家下去进一步探索哦!

【干货】iOS9的新特性UI Tests相关推荐

  1. iOS9的新特性以及适配方案

    1. 限制HTTP协议,全部改用更安全的HTTPS iOS9让所有的HTTP默认使用了HTTPS,原来的HTTP协议传输都改成TLS1.2协议进行传输.直接造成的情况就是App发请求的时候弹出网络无法 ...

  2. 【网安干货】MySQL8新特性注入技巧

    新增的表 information_schema.TABLESPACES_EXTENSIONS 从mysql8.0.21开始出现的, table 关键字出现的比较早,在8.0.19之后就有了,所以如果想 ...

  3. iOS9 开发新特性 Spotlight使用

    1.Spotloight是什么? Spotlight在iOS9上做了一些新的改进, 也就是开放了一些新的API, 通过Core Spotlight Framework你可以在你的app中集成Spotl ...

  4. ios9和ios10的新特性

    ios9和ios10的新特性 昨天面试了一个做ios开发的公司,其中面试官问我最新的ios系统版本是多少,以及它的特性是什么?由于自己是初学者,所以对这些没有关注过.今天特地搜索了一下关于ios9和i ...

  5. iOS 新特性实现 3DTouch 开发

    好久没有写过文章了,今天就给大家带来一篇比较简单的开发教程吧!目的是为了让大伙能够避开那些不必要的坑,快速高效的实现功能.今天呢来和大家讲一下iOS9的新特性3DTouch开发(iOS10都已经出了B ...

  6. iOS 9 的新特性

    2015年9月8日,苹果宣布iOS 9操作系统的正式版在太平洋时间9月16日正式推出,北京时间9月17日凌晨1点推送. 新的iOS 9系统比iOS8更稳定,功能更全面,而且还更加开放.iOS 9加入了 ...

  7. 《iOS9开发快速入门》——第2章,第2.1节Xcode 7.0的新特性

    本节书摘来自异步社区<iOS9开发快速入门>一书中的第2章,第2.1节Xcode 7.0的新特性,作者 刘丽霞 , 邱晓华,更多章节内容可以访问云栖社区"异步社区"公众 ...

  8. iOS9有哪些新特性

    2019独角兽企业重金招聘Python工程师标准>>> 苹果发布会得到了终于落下了帷幕,iOS9当仁不让的成为了主角之一,新版本带来了多种新功能,其它部分也有一定的优化升级,但总体来 ...

  9. iOS9 iOS10 iOS11的新特性

    iOS9 特性 关键字参考 2015 Objective-C 新特性 1.关键字 : 这些是纯编译器的语法支持(llvm 7.0),没有借助任何 objc runtime 的升级,也就是说,这个新语法 ...

最新文章

  1. python 类-python类定义的讲解
  2. M4i—下一代高速数据采集、数字化仪平台
  3. 使用C#进行Word 2002和Excel 2002编程
  4. 容器编排技术 -- 使用kubectl实现应用滚动更新
  5. 第 69 章 数据库链接
  6. php oci_bind_array_by_name查询,PHP - 函数:OCIBindByName()
  7. 微信开发学习 问题1: 网页授权问题 “该连接无法访问” 解决方法
  8. jdbc连接linux下的mysql_Linux JDBC连接MySQL数据库
  9. python 分割线_用Python打印分割线练习
  10. 接入 钉钉 OA 审批
  11. 如何修改echarts源码(其他框架也可适用)
  12. Unity 3D 海水的实现2 折射与反射 离屏相机的渲染
  13. VS2019 MFC模式下如何调用控制台并用cprintf在控制台打印
  14. python123测验答案数值运算程序_Python程序基础-中国大学mooc-题库零氪
  15. 服务器做RAID,各个RAID特点
  16. 负数时的有符号整型和无符号整型的转换
  17. 响应式织梦模板SEO优化教程资讯类网站
  18. 怎样发量暴增_如何增加头发的发量?真的太实用了!
  19. 基于ICN的数据缓存
  20. 主流计算机的注意硬件配置,主流计算机配置选择

热门文章

  1. 爆火的深度学习面试书现可白嫖!GitHub上线2周1.5K Star,之前售价146元
  2. 2020未来科学大奖公布,砒霜治疗白血病发现者张亭栋、王振义获生命科学奖,最年长者96岁...
  3. 51年被发现9次,陶哲轩证明的公式成了重复造轮子?事情并没有这么简单
  4. 高清重制版阿波罗11号录像,英伟达RTX还原50年前登月细节
  5. 开源云平台 Nano v0.9.1发布 - 镜像重构/资源绑定/日志
  6. HTML5学习路线资料,HTML5前端面试的技术栈
  7. Java调用net的webservice问题分享
  8. 浅谈压缩感知(二十一):压缩感知重构算法之正交匹配追踪(OMP)
  9. 笔记本win7共享wifi操作说明
  10. 函数指针与指针函数的使用与小结