从命令行打开指定的模拟器以执行自动化跟踪

Posted

技术标签:

【中文标题】从命令行打开指定的模拟器以执行自动化跟踪【英文标题】:Open specifed simulator from command line to execute automation trace 【发布时间】:2014-10-10 10:18:16 【问题描述】:

我正在尝试使用终端打开 ios 模拟器以执行自动化测试脚本。经过一些深入的研究,我能够打开一个模拟器和仪器。默认情况下,它正在启动 iPhone Retina 模拟器。但是如何打开指定的模拟器和版本 例如:iPad 2 - 7.0 版本。

我尝试使用来自here 的instruments -w help,但出现类似Instruments Usage Error : Unknown hardware device specified. 的错误

我尝试了各种来源,但我无能为力。知道如何启动指定的模拟器(如果可能在 XCode 5/6 中)?

【问题讨论】:

【参考方案1】:

在 Xcode 5.1 中,instruments 命令行工具支持使用 -w 标志指定模拟器 SDK 和设备类型。要查看支持的模拟器配置以及连接的设备列表,请在终端窗口中执行以下命令。

$instruments -s devices 

在 iPhone 模拟器上运行测试的示例:

$instruments\
-w "iPhone Retina (4-inch 64-bit) - Simulator - iOS 7.1" \
-t $TRACETEMPLATE AppLocation \
-e UIASCRIPT Script.js \
-e UIARESULTSPATH reportPath

【讨论】:

【参考方案2】:

我也收到错误Instruments Usage Error : Ambiguous device name/identifier

但是设备名称是正确的。解决它

    转到 Xcode -> 菜单栏 -> 窗口 -> 设备 删除有问题的模拟器 再次创建相同的设备

利润!

【讨论】:

【参考方案3】:

此外,对于@Vaasu 的回答,如果系统抛出设备歧义错误,您可以提供设备 ID 代替设备型号。

例如:在我的系统中,这些是可用的设备。

Resizable iPad (8.0 Simulator) [97067B56-428E-48DE-A35E-87442AE0B2F7]
Resizable iPhone (8.0 Simulator) [A50156D2-F5B9-4781-99FC-F7D2D64C8C78]
iPad 2 (7.1 Simulator) [C298E193-48FD-451C-9173-A2B70A4B6232]
iPad 2 (7.1 Simulator) [2A03A43F-3F4F-453A-9469-E2F84598FE2D]
iPad 2 (8.0 Simulator) [95E5D9E5-6EA7-47DB-AC9D-40880CD78F98]
iPad 2 (8.0 Simulator) [F51C4654-76C8-4B33-A283-8A9B21FF403A]
iPad Air (7.1 Simulator) [0682AD59-0991-4E41-9636-F4450BC4DABC]
iPad Air (8.0 Simulator) [B5748FCD-FE67-46EE-BD4A-C1BE0FA160A7]
iPad Retina (7.1 Simulator) [E2D7C775-F0EC-4AE7-82CD-EAA8E2EE8E25]
iPad Retina (8.0 Simulator) [9C1576B3-58E4-412A-8574-64E60D43E4D0]
iPhone 4s (7.1 Simulator) [6E94CA56-62EC-45BF-AD01-5166FACC75EB]
iPhone 4s (8.0 Simulator) [39E3AD04-62B4-4D10-A60B-D48204785508]
iPhone 5 (7.1 Simulator) [EB5E3DEA-5D12-46B1-A18D-21B06F3FAC26]
iPhone 5 (8.0 Simulator) [0692F6C0-57ED-43EA-9599-A49F3BA86435]
iPhone 5s (7.1 Simulator) [EBB1E555-47B6-410A-98AF-1145728590E3]
iPhone 5s (8.0 Simulator) [26639A3B-F979-4BFD-920D-A6AB9E92D0AB]
iPhone 6 (8.0 Simulator) [22797884-9582-4813-AEFF-9155C0DCCCE6]
iPhone 6 Plus (8.0 Simulator) [DE881BB5-434C-4F38-8BF8-D199BEF57919]

为此,您可以以这种方式运行脚本。

$instruments\
-w "C298E193-48FD-451C-9173-A2B70A4B6232" \
-t $TRACETEMPLATE AppLocation \
-e UIASCRIPT Script.js \
-e UIARESULTSPATH reportPath

【讨论】:

以上是关于从命令行打开指定的模拟器以执行自动化跟踪的主要内容,如果未能解决你的问题,请参考以下文章

从命令行自动执行 iOS monotouch GUI 测试

有没有办法从命令行关闭 iOS 模拟器?

MacOS从命令行用指定文本编辑器打开文档

cmd命令行窗口和文件目录资源管理器快速切换

FTP不能使用命令行上传

跟踪所有变量以执行gdb中的函数