使用设备仪器进行自动化测试

时间:2012-10-03 10:23:56

标签: ios xcode automation instruments ios-ui-automation

我正在尝试按照this post从命令行在iOS设备上运行UIAutomation脚本,但我无法使其正常工作。

这是我目前使用的命令: instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate / Users / X / Library / Developer / Xcode / DerivedData / TestiPhoneAutomation2-dyufpxsavtdqkybpagcoawdudzid / Build / Products / Debug-iphoneos / TestiPhoneAutomation2.app -e UIASCRIPT“/Users/X/Workspaces/TestiPhoneAutomation/test2.js”-e UIARESULTSPATH“/ Users / X / Workspaces / TestiPhoneAutomation2 /”-w 80bf5b ... UDID。 ..dfb52543 -v

它在模拟器上运行良好(通过Debug-iphonesimulator取代Debug-iphoneos,它在这种情况下也忽略了-w),但是如果我使用为设备编译的应用程序启动它它会崩溃(我试过发布和调试,我得到相同的结果)。

我得到的错误是:

  

posix spawn失败;中止发射(二进制==   /Users/X/Library/Developer/Xcode/DerivedData/TestiPhoneAutomation2-dyufpxsavtdqkybpagcoawdudzid/Build/Products/Debug-iphoneos/TestiPhoneAutomation2.app/TestiPhoneAutomation2)。   2012-10-03 12:10:3​​6.609乐器[76151:1603]录音取消:   至少有一个目标未能发射;中止运行仪器跟踪   错误:无法启动跟踪。

3 个答案:

答案 0 :(得分:3)

我遇到了同样的错误,但我没有运行多个仪器副本。我通过在应用程序之前放置-w UDID参数,并且仅使用应用程序的名称(已将应用程序部署到设备)来实现此功能。

我使用的命令行如下(使用Xcode 4.6):

  

instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate -w< device_id> < APP_NAME> -e UIASCRIPT< path_to_script> -e UIARESULTSPATH< path_to_results>

答案 1 :(得分:0)

请检查命令行中UDID的顺序,实际上所有参数也只在构建的调试版本上运行。希望这有效,因为它为我工作。

答案 2 :(得分:0)

对于其他有这个问题的人,我会解释什么对我有用,以及我是如何解决这个问题的。

我执行了ps命令以查看正在运行的进程。我发现仪器还在运行。然后我做了killall instruments并杀死了乐器进程。然后我做了我的乐器命令,之后它完美无缺。