我希望能够在 iOS 模拟器上播放一系列点击,最好是通过记录这些点击来制作。如果无法录制,那么也许我可以在程序中或使用 AppleScript 之类的外部程序在代码中进行。或者也许与仪器?
这有可能吗?我需要能够在启动应用程序后开始播放用户操作。
我希望能够在 iOS 模拟器上播放一系列点击,最好是通过记录这些点击来制作。如果无法录制,那么也许我可以在程序中或使用 AppleScript 之类的外部程序在代码中进行。或者也许与仪器?
这有可能吗?我需要能够在启动应用程序后开始播放用户操作。
有多种原生和混合 iOS 测试框架允许您创建测试场景(例如模拟用户点击)、记录这些事件并在以后使用它们进行回放,可能在 CI 环境中。下面列出了我们研究过的一些框架以及我们在移动环境中使用过的一些框架。
概述:
KIF 代表“保持功能”。它通过利用操作系统为视觉障碍人士提供的可访问性属性,可以轻松实现 iOS 应用程序的自动化。
KIF 依赖于 iOS 的内置可访问性来执行其测试步骤。因此,您的应用程序完全可访问非常重要。这也是确保您的应用可供视障人士使用的好方法。使您的应用程序可访问通常就像为您的视图提供合理的标签一样简单。Apple 的文档中提供了更多详细信息。
带有源代码和说明的网站可以在 Github 上找到
测试用例是通过 Xcode/AppCode 在 Objective-C 中创建的。
概述:
Frank 是“用于原生 iOS 应用程序的 Selenium”。Frank 允许您编写结构化文本测试/验收测试/要求(使用 Cucumber)并让它们针对您的 iOS 应用程序执行。
主要前提是框架将 HTTP 服务器嵌入到应用程序的测试版本中,然后允许客户端向应用程序发送 HTTP 请求以运行测试场景。
“Frank 还包括一个强大的“应用程序检查器”(称为 Symbiote),您可以使用它来获取有关正在运行的应用程序的详细信息。这使您可以在应用程序中检查屏幕上的对象。”</p>
测试用例:测试用例使用 Cucumber 以自然语言编写。
(上面已经提到的网站)
概述:
Calabash 建立在与 Frank 相同的架构之上。它将 HTTP 服务器嵌入到应用程序的测试版本中,然后允许客户端向应用程序发送 HTTP 请求以运行测试场景。
“Calabash 是跨平台的,支持 Android 和 iOS 原生应用。它是开源和免费的,并且有一家名为 LessPainful 的公司支持和开发它。”</p>
“Calabash 包含使测试代码能够以编程方式与本机和混合应用程序交互的库。交互由许多最终用户操作组成。
测试用例是通过 Cucumber 以自然语言编写的。这是一个例子:
主网站: http ://calaba.sh
(以前称为“FoneMonkey”)
概述:Monkeytalk 是一个自动化测试框架,它使用户能够记录一组指令,然后在模拟器或设备中回放这些脚本。
MonkeyTalk 是免费和开源的。它可以从命令行运行,因此它似乎是在 CI 构建环境中使用的不错选择。它还生成用于在 Jenkins 中报告测试结果的 JUnit XML 文件。
MonkeyTalk 提供编译成应用程序测试版本的库。
测试用例:MonkeyTalk 自带用于创建测试用例的 IDE。它记录在模拟器或设备上完成的动作,并可以脚本形式回放它们。它允许为输入数据(例如名称和密码)提供数据文件。IDE 可在 Windows、OSX 或 Linux 上运行,但 iOS 设备和模拟器只能在 OSX 中运行。
我认为最先进的开源技术是Frank。无法记录动作,但您可以在代码中指定一组点击、手势等。作为奖励,它会强制您正确设置可访问性,因为它是用来驱动测试的。
Sikuli 脚本较新,适用于 iOS 和模拟器 - http://www.sikuli.org
test-studio可以记录用户操作,而且是免费的!