有没有办法通过终端打开UIAutomation
仪器?UI自动化仪器是否可以从命令行运行?
是否可以编写AppleScript
来打开Apple的UIAutomation
工具并加载要测试的应用程序?
请问有没有办法通过脚本或通过命令行我们可以打开UIAutomation
并选择要测试的应用程序,以及选择测试脚本?
有没有办法通过终端打开UIAutomation
仪器?UI自动化仪器是否可以从命令行运行?
是否可以编写AppleScript
来打开Apple的UIAutomation
工具并加载要测试的应用程序?
请问有没有办法通过脚本或通过命令行我们可以打开UIAutomation
并选择要测试的应用程序,以及选择测试脚本?
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>
有一些重要的事情,虽然注意:
full_path_to_application是您的模拟器创建的.app文件的路径。对我来说,道路是
/用户/ fwasim /库/应用程序支持/ iPhone模拟器/ 5.0 /应用/ AA6BA2E1-D505-4864-BECC-29ADEE28194D/name_of_application.app
这条道路对于其他人可能会有所不同,具体取决于您在模拟器上运行的iOS版本。还请记住将此路径放在双引号中。
path_to_script.js应该是完整的路径,以便您的自动化脚本在JavaScript中保存。还请记住将此路径放在双引号中。
最后输出结果路径是您想要保存输出结果的路径。还请记住将此路径放在双引号中。
这些是我一直想念的点,因此得到了上面提到的一些错误。
上面的示例中,您在哪里有-w参数? – 2014-01-23 00:52:18
我兴奋地做同样的事情,但我有这样的错误“乐器[2760:1207]无法解释路径'(空)' 仪器跟踪错误:错误开始录制”但路径不为空或空。你有好主意吗? – 2014-04-07 14:31:09
@yucelbayram对此的任何意见无法解释路径'(null)'? – 2014-04-25 21:36:05
我也对这个话题很intrested。我居然发现这是reference这表明有办法从预定义模板,其中结果应存放的位置,并在它应该运行的目标设备,以及其他参数,终端启动仪器。您也可以输入终端instruments
来获取参数列表。
我未成功,在iPhone上运行的UI自动化这种方式。我没有尝试模拟器或Mac应用程序,因为我主要对设备感兴趣。我发布了一个问题here on SO,但由于缺乏任何回应,我认为没有多少人以这种方式使用仪器。
但有希望得到它的运行,因为为t his short thread on apple developer forum(您需要登录),该建议是可以做到的。我会在稍后尝试,如果我能成功,我会在这里发布解决方案。如果你能设法使它顺畅地运行,就像我(可能还有其他人)会感兴趣的一样。
不错的发现....你有没有得到任何地方,但这? – jkp 2011-02-10 19:09:04
不,不幸的是。现在我只关注测试,我将需要运行,稍后(如果我有时间的话),我将重点关注以自动方式运行它们的方式。最糟糕的情况 - 我将使用Sikuli(sikuli.org)来自动执行此操作,但它是这样的解决方法,我想避免这种情况... – yoosiba 2011-02-11 09:15:59
如果此命令行工具完全适用,我会更加自信。我的目标是测试自动化一个CI,但我甚至不能在模拟器上工作。 我也尝试了Leaks.trace模板。模拟器出现,试图启动应用程序,但失败并出现“未知错误”。的确非常令人沮丧。应用程序文件可以,使用Instruments-GUI运行它可以正常工作。 在Apple网站上似乎没有提示该命令选项。也许,他们忘了呢? :) – 2011-03-10 09:13:22
有与shell环境记录/重放UI事件的工具,可以书面方式脚本红宝石。
互动的iPhone应用程序开发 http://github.com/wookay/libcat
。当我们测试客户端应用程序时,通常他们期望不向他们的proj文件制作/添加任何代码。无论如何,我喜欢你的想法libcat。谢谢 – Vijay 2011-05-22 17:39:37
开始通过命令行UIAutomation 你可以现在就做,开始的XCode 4.2的iOS5测试版4 从命令行,您可以运行指着自动化模板工具,并指定作为环境变量,您要执行的测试脚本和结果的目标路径:
instruments -w -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/ Automation.tracetemplate -e UIASCRIPT
以上是从这个来源网址: 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
加上从堆栈跟踪用户张贴在命令行与iPhone的iOS UIAutomation 3210
运行希望这会有所帮助 - 祝你有美好的一天:)
感谢您的链接,我的脚本正确运行在乐器上,但仍然无法从命令行运行。我似乎无法让它通过模拟器运行。有关通过-w参数的任何想法? – 2011-09-08 07:52:38
您可能已经完成了工作,但-w的参数应该是连接设备的UDID – Stew 2011-09-21 23:57:21
随着Xcode的每个新版本模板路径似乎都会改变。找出模板路径的最佳方法之一是instruments -s
命令,它将列出所有可用的模板。
'instruments -s'也打印出有关设备的有用信息。 – 2014-11-19 19:52:48
类型的终端仪器此命令-s,你得到的模板路径类型后:
instruments -t <template path> <Application file path> -e UIASCRIPT <script.js> UIARESULTPATH <result_path>
不是长instruments
命令,我写了一个包装,易于使用:https://github.com/enriquez/uiauto
要使用它,你只需要执行以下操作:
uiauto exec path/to/your/script.js
。更新和测试的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脚本,我相信它会更透明,更轻,因此更容易维护。
做对的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/
如何自iOS5的测试版,这应该是完全可能的。 – 2011-07-27 18:35:22