【问题标题】:Recording and playing back user actions on iOS simulator?在 iOS 模拟器上记录和回放用户操作?
【发布时间】:2013-03-16 04:47:42
【问题描述】:

我希望能够在 iOS 模拟器上回放一系列点击,最好是通过记录这些点击来制作。如果无法录制,那么也许我可以在程序中或使用 AppleScript 之类的外部程序在代码中进行。或者也许使用 Instruments?

这有可能吗?我需要能够启动应用后开始播放用户操作。

【问题讨论】:

  • 仪器可以通过 UI 自动化做到这一点。
  • 我似乎无法做到这一点。由于各种原因,我需要能够在启动应用程序后附加自动化仪器。这似乎不可能。

标签: ios objective-c xcode automation ui-testing


【解决方案1】:

有多种原生和混合 iOS 测试框架可让您创建测试场景(例如模拟用户点击)、记录这些事件并在稍后(可能在 CI 环境中)使用它们进行回放。下面列出了我们研究过的一些框架以及我们在移动环境中使用过的一些框架。

KIF

概述:

KIF 代表“保持功能”。通过利用操作系统为视觉障碍人士提供的辅助功能属性,它可以轻松实现 iOS 应用程序的自动化。

KIF 依靠 iOS 的内置可访问性来执行其测试步骤。因此,您的应用程序完全可访问非常重要。这也是确保您的应用可供视障人士使用的好方法。使您的应用程序可访问通常就像为您的视图提供合理的标签一样简单。 Apple 的文档中提供了更多详细信息。

可以在 Github 上找到包含源代码和说明的网站

测试用例是通过 Xcode/AppCode 在 Objective-C 中创建的。

弗兰克

概述:

Frank 是“用于原生 iOS 应用的 Selenium”。 Frank 允许您编写结构化文本测试/验收测试/要求(使用 Cucumber)并让它们针对您的 iOS 应用程序执行。

主要前提是框架将HTTP服务器嵌入到应用的测试版本中,然后允许客户端向应用发送HTTP请求以运行测试场景。

“Frank 还包括一个强大的“应用检查器”(称为 Symbiote),您可以使用它来获取有关正在运行的应用的详细信息。这使您可以在应用程序中检查屏幕上的对象。”

测试用例: 测试用例使用 Cucumber 以自然语言编写。

(上面已经提到的网站)

葫芦

概述:

Calabash 与 Frank 建立在相同的架构之上。它将 HTTP 服务器嵌入到应用的测试版本中,然后允许客户端向应用发送 HTTP 请求以运行测试场景。

“Calabash 是跨平台的,支持 Android 和 iOS 原生应用。它是开源和免费的,并且有一家名为 LessPainful 的公司支持和开发它。”

“Calabash 包含使测试代码能够以编程方式与本机和混合应用程序交互的库。交互由许多最终用户操作组成。

测试用例是通过 Cucumber 以自然语言编写的。这是一个例子:

主站:http://calaba.sh

MonkeyTalk

(以前称为“FoneMonkey”)

概述: Monkeytalk 是一个自动化测试框架,让用户能够记录一组指令,然后在模拟器或设备中回放这些脚本。

MonkeyTalk 是免费和开源的。它可以从命令行运行,因此它似乎是在 CI 构建环境中使用的一个很好的候选者。它还生成用于在 Jenkins 中报告测试结果的 JUnit XML 文件。

MonkeyTalk 提供编译成应用测试版本的库。

测试用例: MonkeyTalk 自带用于创建测试用例的 IDE。它记录在模拟器或设备上完成的动作,并可以脚本形式回放它们。它允许为输入数据(例如名称和密码)提供数据文件。 IDE 可以在 Windows、OSX 或 Linux 上运行,但 iOS 设备和模拟器只能在 OSX 上运行。

主:http://www.gorillalogic.com/testing-tools/monkeytalk

【讨论】:

    【解决方案2】:

    我认为最先进的开源技术是 Frank。无法记录动作,但您可以在代码中指定一组点击、手势等。作为奖励,它会强制您正确设置可访问性,因为它是用来驱动测试的。

    【讨论】:

      【解决方案3】:

      test-studio可以记录用户操作,而且是免费的!

      【讨论】:

        【解决方案4】:

        Sikuli 脚本较新,适用于 iOS 和模拟器 - http://www.sikuli.org

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-08-27
          • 2021-12-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-22
          • 2015-07-18
          • 1970-01-01
          相关资源
          最近更新 更多