iOS 测试 UI Testing In Xcode7 —— WWDC2015 中提到的 UI 测试工具介绍

大东 · 2015年06月14日 · 最后由 guris_xie 回复于 2016年04月26日 · 2091 次阅读

About《UI Testing In Xcode7》

不知道各位有没关注本周的 WWDC2015,在头几天的大会中,苹果提出了一个全新的基于 Xcode7 的 UI 测试工具。

这个工具貌似没特定的名字,就叫 UI Testing In Xcode7,它是在新版本的 Xcode 当中引入的一个基于 XCTest 框架的 UI 测试工具,那么如果你熟悉 XCTest 框架的话,你肯定很快就能够上手了,因为这个工具所使用的测试类、断言方法等都是基于 XCTest 延展并做了优化,所以说,XCTest 的特性它都继承了,而且能够做得更好。

PS:对于 XCTest Framwork 不了解的同学我估计还是占大部分,毕竟这个框架一直是被定位为开发人员使用的单元测试框架,而且在 Swift 出来之前,也只能使用 objective-C 来做,对于初级的测试人员入门门槛是略高的。
有兴趣的同志可以去读一下官方文档了解一下该框架:XCTest 使用手册

由于升级 OSX10.11 的时候卡住了=。=所以我还没来得及实践。
从官方演示的 DEMO 来看,很强大:
强交互的脚本录制->XCTest 框架->层级元素定位/Accessibility 定位->easy 断点调试->完整的 Report

在这里先给大家介绍一下这个工具的特性。

环境要求

从介绍中来看,目前该工具不但要使用最新的 Xcode7 以外,你的操作系统也必须是要最新的 OS X 10.11 版本,也就是说你必须先将你的机器升级,所以想要提前体验一下这款工具的同学,勇敢得上吧。OS X 10.11 镜像下载

悲剧的是,我今天在将镜像写入 U 盘的时候出错了,U 盘貌似废了,明天出去买一个...

然后还有一点,该工具仅支持运行在 iOS9 上。

所以重点就是:
1、请升级 Xcode 到 7(自带 iOS9 的 SDK);
2、请将系统升级到 OSX 10.11;

工具特性

1、基于 Xcode7 & XCTest Framewrok

完整的测试框架,并拓展了 3 个 API 辅助自动化执行和元素定位;
super 效率的断点调试;

2、分别支持使用 Objective-C、Swift 编写脚本
3、引入 Accessibility 来辅助元素定位,让 UI 测试更加完善,并且专门提供了 Accessibility Inspector;

Accessibility 这个概念从本次议题开始到结束提到多次,在展示 demo 的时候也重点讲解了 accessibility 在 UI 自动化当中的运用。而且在本次 WWDC2015 中,还有一个议题是《iOS Accessibility》,所以从苹果的态度上可以看出,Accessibility 将会是之后重点推动开发者去使用的属性,有了 Accessibility,将会大大降低了我们在做 UI 自动化的难度,恒温有发过一篇关于 android 的 accessibility 的文章,与 iOS 是相似的,可以了解学习一下。

4、自带 UI Recording Tool

Xcode7 提供的脚本录制工具非常得精准智能,交互性非常强,录制开启的时候,你的每一次操作,录制工具都会在 Xcode 上同步生成代码。包括你输入文字的时候,你输入的每个字母都是同步记录,删除文字也是。

日志与报告

看到这个东西的日志我惊呆了,在最终的运行报告界面,我们可以得到如下信息:
1、所有成功和失败的用例,分别是用绿色和红色标注;
2、用例失败的原因与截图;
3、用例执行的每一个步骤描述;
3、运行过程中收集的性能指标信息;

Summary

总得来说,无论是从介绍还是从 demo 演示上来看,我认为这一款工具会成为 iOS 自动化测试的主流工具,就如同 iOS9 迟早会成为主流一样。
xcode、XCTestFramework、OC/Swift 都是基本,你掌握了多少?

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 14 条回复 时间 点赞
恒温 UI Testing in Xcode 7 revised 中提及了此贴 11月21日 19:18

有人知道怎么通过 xctest 截图吗?找了好久没找到 api....

mark 一下

你们好像 研究的都是 ios 怎么去启动这些简单的应用程式,我描述的问题不知道是 app 的问题, 还是 Appium 对处理大数据量的时候存在缺陷. 当我点击一个相册只有 10 张相片的其中一张, 反应时间会在 30 秒内, 当我加大图片数量, 变到 500 这时候响应时间在 100s 左右, 知道加到 1000 张 导致点击图片无效。

不知道你们在做 IOS 测试中又没有遇到如果页面信息量变大的时候例如由 10 张图片 扩充到 1000 张 这时候去点击其中一张图片 appium post 请求会返回直接返回 500 并且会出现咔核 挂起的现象, 知道点击没有任何的反应, 再次重新加载页面数据.

大东 #10 · 2015年06月25日 Author

#5 楼 @doctorq 哈哈哈

#6 楼 @oscar 不冲突啊...完全分开的两个东西,而且 UI Testing 就是项目里的一个 target,跟项目走的

虽然我们这里的 ios 开发貌似真的很少做单元,测试表示对于 XCTest 苦手,不过 UI Testing 还是值得期待的,另外 xcode 7 ios 9 支持免证调试也对于以后做测试好处多多

@pighero001 不错,速度挺快,求知欲很强啊。

#3 楼 @monkey
#2 楼 @anikikun 额,看来都没看过段子啊,完美掌握=完全没掌握。。。哈哈

弱弱的问一句,这个和 appium 不冲突吗?

#2 楼 @anikikun 遇到同类型的开发法顶一个,不过人家说的更狠,说我开发的价值比你测试大,我们做单元测试是浪费。

XCTEST 开发都不会做也不愿意做的飘过。。。

#1 楼 @pighero001 完美掌握。。。。。

#1 楼 @pighero001 我了个去,完美掌握,哥们是开发 iOS 的吧
这个确实就是让开发做 UI 测试更容易的一个工具,开发不做那只能测试做了,国内大多都这个情况,开发的哥们说,我理 feature 都理不过来了,哪来时间给你单元测试。【说得好像单元测试是测试的活一样。

除了 XCTestFramework,其他都完美掌握,一切都不是问题。唯一的疑问就是这项工作会交给测试来做吗?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册