开发者社区> 余二五> 正文

【干货】iOS9的新特性UI Tests

简介:
+关注继续查看

什么是UI Tests呢?

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

UI Tests有什么用?

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

UI Tests的意义

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

使用方法

   第一步:添加UI Tests。

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

wKioL1YxgqaBFFCZAAFWtAX91RM312.jpg

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

wKiom1Yxgn3DUT5hAAC-IZtn36c004.jpg

   第二步:创建测试代码。

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

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

wKiom1YxgovDGf9BAAHzs-lUAAg052.jpg

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

wKioL1YxgtGDvR1EAAFBKba_upM936.jpg

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

wKioL1Yxgt6hnuUkAADh4Hs_ppw219.jpg

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

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

wKioL1YxguiCxB9dAACpJCSz4Tk614.jpg

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()函数使其获得焦点。

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










本文转自 小强测试帮 51CTO博客,原文链接:http://blog.51cto.com/xqtesting/1707572,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
介绍struts的新特性:LazyActionForm
STRUTS的 ActionForm到现在为止,出现了最少三种方式: 普通的 ,动态的 和 懒惰的 . 所以你在你自已的开发中,可以有很多选择,如果你安全第一,可以用普通的.如果你更喜欢XML,则用动态的. 如果你很懒,那就用Lazy ActionForm. STRUTS提供的这三种ActionForm方式,要实际应用中你只要选择一种就可以了. 下面说说Lazy ActionForm: 如果你
860 0
iOS新特性: iOS10.3教你如何动态更换APP图标?(后台切换) 韩俊强的博客
1、iOS 10.3 开放了更换 app 图标的 API,核心方法是下面这个: [[UIApplication sharedApplication] setAlternateIconName:nil completionHandler:^( }]; 这是官方文档,但是你还需要在 info.plist 里面填一些东西才能让它起作用,这部分官方注释内容在这里。
1482 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
20693 0
iOS11新特性:新增拖拽交互体验(二)
iOS11新特性:新增拖拽交互体验
84 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
25239 0
iOS11新特性:新增拖拽交互体验(三)
iOS11新特性:新增拖拽交互体验
96 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18995 0
IOS新特性详情
  DevDiv为开发者持续准备iOS6中新特性的参考资料和示例代码,欢迎各位D友们前来学习讨论交流   苹 果公司在iOS6中增加了许多新特征,比如下面这些Social Framework、PassKit Framework、Auto Layout、Maps、Collection Views、UI State等。
928 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
13865 0
+关注
20381
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载