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

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

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

你能告诉我有没有办法通过脚本或通过命令行我们可以打开UIAutomation并select要testing的应用程序,以及selecttesting脚本?

 instruments -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/\ PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate \ <full_path_to_application> -e UIASCRIPT <path_to_script.js> \ -e UIARESULTSPATH <output_results_path> 

对于xcode> = 4.5

 instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/\ AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate \ <full_path_to_application> -e UIASCRIPT <path_to_script.js> \ -e UIARESULTSPATH <output_results_path> 

对于xcode> = 6.1

 instruments -w <device ID> -t \ /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/\ AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate \ <full_path_to_application> -e UIASCRIPT <path_to_script.js> \ -e UIARESULTSPATH <output_results_path> 

有几件重要的事情需要注意:

  1. 除非您想在设备上运行脚本,否则-w参数不是必需的。 如果你想在模拟器上运行脚本,只需从命令中省略这个参数即可。
  2. full_path_to_application是你的模拟器创build的.app文件的path。 对我来说,path是

    / Users / fwasim / Library / Application Support / iPhone Simulator / 5.0 / Applications / AA6BA2E1-D505-4864-BECC-29ADEE28194D / name_of_application.app

    对于其他人来说,这个path可能会有所不同,具体取决于您在模拟器上运行的是哪个iOS版本。 还要记住把这个path放在双引号中。

  3. path_to_script.js应该是用JavaScript编写的自动化脚本保存的完整path。 还要记住把这个path放在双引号中。

  4. 最后输出结果path是您要保存输出结果的path。 还要记住把这个path放在双引号中。

这些是我一直想念的点,因此得到了上面提到的一些错误。

通过命令行启动UIAutomation现在可以从XCode 4.2 for iOS5 beta 4开始执行。从命令行,可以运行指向自动化模板的仪器,并指定要执行的testing脚本作为环境variables,并指定结果的目标path:

仪器-w -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate -e UIASCRIPT

以上是来自这个源url: http : //dev-ios.blogspot.com/2011/07/starting-uiautomation-via-command-line.html

在苹果的命令行上查看一些更多细节: http : //developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/instruments.1.html

从命令行Stacktrace用户加上后运行iPhone的iOS UIAutomation 可以使用仪器使用命令行?

希望这有助于 – 有一个美好的一天:)

更新和testing了Xcode 6.0.1

 instruments -w 'iPhone 5s' \ -t '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate' \ '/Users/sohail/Library/Developer/CoreSimulator/Devices/7232A640-A9D2-4626-A2AD-37AFFF706718/data/Containers/Bundle/Application/E71B915E-051D-4BEF-9083-34416D02EC91/RoadRunnerRadar.app' \ -e UIASCRIPT '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestRunner.js' \ -e UIARESULTSPATH '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestResults/' 

受到编写命令行包装的人的启发,这些包装在一段时间内没有更新,因此也没有工作(而且似乎很难理解,因为我试图复活它们),我写了一个bash shell脚本,相信会更透明,更轻,从而更容易维护。

你可以在github上find这个项目和一个同伴博客文章 。

我写了一个更容易使用的包装器,而不是长instruments命令: https : //github.com/enriquez/uiauto

要使用它,你只需要做到以下几点:

  1. 在Xcode中为模拟器构build项目(即将推出设备支持)。
  2. cd到您的项目的.xcodeproj或.xcworkspace所在的位置。
  3. 运行uiauto exec path/to/your/script.js

随着Xcode的每一个新版本,模板path似乎都被改变了。 找出模板path的最好方法之一是可以列出所有可用模板的instruments -s命令。

我对这个话题也很感兴趣。 我实际上find的是这个参考文件 ,它显示了从terminal启动仪器的方法,包括预定义的模板,结果应该存储的位置,运行目标设备以及其他参数。 您也可以inputterminalinstruments来获取参数列表。

我没有这样在iPhone上运行UI Automation。 我没有尝试模拟器或Mac应用程序,因为我最感兴趣的设备。 我在这里发布了一个问题,但是由于缺乏任何回应,我认为没有多less人使用这种方式。

但有希望得到它运行,因为苹果开发者论坛 (你需要login)的短线程 ,这表明它可以完成。 我将在稍后尝试,如果我会成功,我会在这里发布解决scheme。 如果你能设法让它在这里发表你的方式,因为我(也可能是其他人)会感兴趣。

有一个logging/重播用户界面事件的shell环境的工具,并可以用ruby写脚本。

交互式iPhone应用程序开发http://github.com/wookay/libcat

在terminal乐器-s中键入此命令,您可以在键入以下内容后获取模板path:

 instruments -t <template path> <Application file path> -e UIASCRIPT <script.js> UIARESULTPATH <result_path> 

在iOS模拟器上执行此操作的正确方法如下所示:

 instruments -w 'iPhone 5s (9.1)' \ -t '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate' \ 'justTheNameOfYourAppDontAddExtension' \ -e UIASCRIPT '/Users/barry/Dropbox/Public/login.js' \ -e UIARESULTSPATH '/Users/barry/Dropbox/Public/