使用Instruments通过SSH启动自动化测试

时间:2015-01-30 14:13:19

标签: ios xcode ssh automation instruments

我目前正在尝试从CI服务器运行iOS移动功能测试。只是你知道我使用的是Calabash框架,但我的问题与仪器有关:仪器没有启动所请求的设备。

当我直接从服务器上的终端使用Instruments时,一切正常(例如Instruments -w "iPhone 5s (8.1 Simulator)")。我收到以下消息:

  

等待设备启动...   仪器使用错误:未指定模板(-t)   乐器,版本6.1(56160)   用法:仪器[-t模板] [-D文件] [-l timeLimit] [-i#] [-w>设备] [[-p pid] | [application [-e variable value] [argument ...]]] *

但是,当我从SSH连接启动相同的命令时,它会忽略所请求的设备并启动以前使用的设备。而这次它仍停留在等待设备启动......

有没有人有想法可以解释这种行为?为什么它可以从本地会话而不是远程ssh连接,以及如何解决它?

我在OS X Yosemite上安装了6.1版本的Instruments。

谢谢。

2 个答案:

答案 0 :(得分:1)

好问题,我知道如果正在运行的进程被视为后台或系统任务,它将无法启动仪器并运行测试,因为它需要用户级运行时状态。我试图从一个cron工作启动仪器时发现了这一点。当你ssh你的shell线程可能被认为是系统级别。我唯一的建议是将你的命令放在shell脚本中,并以某种方式在用户级线程上调用脚本。不幸的是,我不是unix专家,也不能告诉你如何做到这一点的具体细节,希望这会有所帮助。

答案 1 :(得分:0)

进入同样的事情。如果您使用Jenkins作为CI服务器,使用JNLP Web Start而不是SSH连接您的从站将允许仪器按预期工作。对于所有配置而言,它不是理想的解决方案,但它可以解决问题。