标签: ios-ui-automation

iOS测试/规格TDD/BDD以及集成和验收测试

在iPhone上用于行为驱动开发的最佳技术是什么?什么是一些开源示例项目,证明了这些技术的合理使用?以下是我发现的一些选项:


单元测试

测试::单位样式

  1. OCUnit/SenTestingKit,iOS开发指南:单元测试应用程序和其他OCUnit参考中所述.
  2. 抓住
  3. GHUnit
  4. Google Toolbox for Mac:iPhone单元测试

RSpec风格

  1. 新西兰(也有嘲弄和期望)
  2. 雪松
  3. 带有UI自动化的Jasmine,如灵巧的'iOS验收测试规范所示

验收测试

风格

  1. UI自动化(适用于设备)

    更新:Zucchini框架似乎融合了Cucumber和UI Automation!:)

    旧博客帖子:

  2. UISpecUISpecRunner

  3. FoneMonkey

黄瓜风格

  1. 弗兰克iCuke(基于黄瓜会见iPhone谈话)

iphone rspec cucumber ios ios-ui-automation

229
推荐指数
3
解决办法
4万
查看次数

iPhone的自动测试

我知道这将是一个长镜头,但我想我会尝试.没有人知道任何自动化测试的东西为iPhone模拟器?我喜欢它,如果有像Selenium这样的东西,但对于iPhone模拟器.我不需要像断言那样花哨的东西,只是可以伪造屏幕上的水龙头的东西,所以我可以停止滥用我的触控板.:)

有没有办法向iOS设备发送点击或关键事件(如Android上的adb)?

iphone testing automated-tests ios-simulator ios-ui-automation

71
推荐指数
4
解决办法
9万
查看次数

仪器自动化跟踪只允许一个目标连接?

我为我的iOS应用程序创建了一个简单的javascript ,我想在多个iOSDevices通过USB连接到一台主机Mac机器上同时运行.iPhone从命令行连接到a的启动工具工作正常但如果我尝试启动连接到a的第二个工具iPad,则第一个工具会话挂起.


在终止第一个乐器会话时,我会打印以下一行以下内容:

已停止:由于设备已断开连接,脚本已停止

经过对该主题的广泛研究,但没有对该短语的结果,我一直试图阅读Apple的仪器指南的含义:

当您从目标菜单中选择所有进程,附加到处理或选择目标时,仪器会将所有仪器的默认目标设置为您选择的程序.但是,有时您可能希望为每种乐器设置不同的目标.您可能希望同时对两个不同的程序进行采样,例如,使用Sampler仪器.如果您有一些能够跟踪所有流程的工具,您可能希望他们这样做,而单流程工具只采样一个流程.

我想知道这Automation.tracetemplate是一个单一过程的仪器,如果另一个过程是用相同的自动化跟踪启动的话,那么第一个是篡改的.

任何建议都将不胜感激,因为这是运行我们的时间密集型自动化测试的主要障碍iOSDevices.


2012年3月27日更新

以下内容来自向Apple提交有关此事项的错误后收到的电子邮件(developer.apple.com/bugreporter):

我是从UI自动化工程师那里听到的.UI Automation是一个单一流程工具.因此,您无法在多个设备上同时使用它.

instruments ios ios-ui-automation

61
推荐指数
1
解决办法
3178
查看次数

UI自动化仪器可以从命令行运行吗?

有没有办法UIAutomation通过终端打开仪器?

是否可以编写一个AppleScript打开Apple UIAutomation工具并加载要测试的应用程序?

您能告诉我有没有办法通过脚本或通过命令行我们可以打开UIAutomation并选择要测试的应用程序,以及选择测试脚本?

iphone xcode applescript instruments ios-ui-automation

54
推荐指数
4
解决办法
3万
查看次数

ios中setAccessibilityLabel和accessibilityIdentifier之间有什么区别?

我一直在浏览我们的代码库并在所有按钮和文本字段上设置accessibilityIdentifier属性,以便我可以使用UIAutomation访问它们.在这样做时,我遇到了一些已经存在的代码.

[_goodButton setAccessibilityLabel:@"off"];
Run Code Online (Sandbox Code Playgroud)

我找不到任何关于这两种方法之间差异的文档.看起来他们做同样的事情.有人知道吗?我觉得这个标签也被设置为"关闭".

ios ios-ui-automation uiaccessibility

44
推荐指数
3
解决办法
2万
查看次数

40
推荐指数
2
解决办法
4万
查看次数

有没有办法从Instruments(XCode)的命令行实例中删除授权提示?

我目前正在通过bash脚本使用Instruments来启动命令行界面以启动Automation插件的运行.

使用4.2,这很好用,但是随着Xcode 4.3的升级,我现在被提示让授权用户"分析其他进程".即使授予了正确的凭据,也不会对用户进行实际身份验证.我收到以下错误:

Failed to authorize rights (0x20) with status: -60007.
2012-02-27 19:30:37.232 instruments[54151:1c03] Failed to connect to local pid watcher     service: (os/kern) failure
Run Code Online (Sandbox Code Playgroud)

即使身份验证失败,自动化插件也会执行,但这需要我的脚本让物理保姆输入凭据,这在很多方面都会破坏这些命令行运行的目的.是否可以将用户详细信息添加为参数?或者是否有其他方法可以跳过此提示而无需按键人员?

- 编辑 -

当您尝试首次从GUI运行UIAutomation测试时,会出现此授权对话框.

在此输入图像描述

提起雷达rdar:// 10945962.

- 编辑 -

在GUI中应答授权对话框后,提示将停止显示在命令行上.然而,这种解决办法似乎不是一个"答案".

instruments ios xcode-instruments ios-ui-automation xcode4.3

28
推荐指数
4
解决办法
2万
查看次数

使用仪器命令行实用程序启动特定硬件版本的iOS模拟器

我正在使用Apple提供的UIAutomation - > Xcode - > instruments.我有我的Javascripts和整个自动化使用仪器命令行基础设施运行.

我还有一项额外的任务是在先前版本的模拟器(iOS 6.0,5.1,5.0,4.3.2)上运行自动化,以提供更好的覆盖.

但我不知道如何指定哪个版本的iOS模拟器可供选择.默认情况下,它总是选择lates iOS模拟器.

我试过以下的事情:

  1. 指定保存模拟器的路径,其中包括模拟器的版本路径.
  2. 制作自定义自动化模板跟踪并尝试使用它.
  3. 使用defaults write com.apple.simulator实用程序更改了iOS模拟器的默认版本.

ios ios-simulator xcode-instruments ios-ui-automation

25
推荐指数
2
解决办法
4400
查看次数

可以在界面构建器中设置辅助功能标识符吗?Xcode4.2

我只能在界面构建器中设置辅助功能标签,但在UI自动化中,我需要辅助功能标识符来获取UI元素.任何方式这样做?

accessibility ios ios-ui-automation

24
推荐指数
3
解决办法
2万
查看次数

如何在Today扩展小部件上使用UIAutomation?

我正在尝试使用UIAutomation来测试iOS 8 Today扩展小部件.我可以将目标更改为扩展,启动它,但之后无法执行任何操作.

有没有人在使用UIAutomation扩展时有任何成功?

ios ios-ui-automation ios8 ios8-today-widget

23
推荐指数
1
解决办法
445
查看次数