有没有办法通过终端打开UIAutomation
工具?
是否可以编写AppleScript
来打开Apple的UIAutomation
工具并加载要测试的应用程序?
请告诉我有没有办法通过脚本或通过命令行打开UIAutomation
并选择要测试的应用程序,以及选择测试脚本?
答案 0 :(得分:54)
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>
for xcode&gt; = 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>
for xcode&gt; = 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文件的路径。对我来说,路径是
/ Users / fwasim / Library / Application Support / iPhone Simulator / 5.0 / Applications / AA6BA2E1-D505-4864-BECC-29ADEE28194D / name_of_application.app
此路径可能与其他任何人不同,具体取决于您在模拟器上运行的iOS版本。还记得将此路径放在双引号中。
path_to_script.js应该是保存javascript编写的自动化脚本的完整路径。还记得将此路径放在双引号中。
最后,输出结果路径是您要保存输出结果的路径。还记得将此路径放在双引号中。
这些是我一直缺少的,因此得到了上面提到的一些错误。
答案 1 :(得分:22)
通过命令行启动UIAutomation 你现在可以做到,从适用于iOS5 beta 4的XCode 4.2开始 在命令行中,您可以运行指向自动化模板的工具,并将要执行的测试脚本和结果的目标路径指定为环境变量:
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
在Apple的命令行中查看更多详细信息: http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/instruments.1.html
在使用iphone iOS UIAutomation的命令行上发布Stacktrace用户的帖子 Can Instruments be used using the command line?
希望这会有所帮助 - 祝你有个美好的一天:)
答案 2 :(得分:8)
更新并测试 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我认为脚本更透明,更轻,因此更容易维护。
答案 3 :(得分:6)
我写了一个更容易使用的包装器而不是长instruments
命令:https://github.com/enriquez/uiauto
要使用它,您只需执行以下操作:
uiauto exec path/to/your/script.js
。答案 4 :(得分:4)
对于每个新版本的Xcode,模板路径似乎都会发生变化。查找模板路径的最佳方法之一是instruments -s
命令,该命令将列出所有可用模板。
答案 5 :(得分:3)
我对这个话题也非常感兴趣。我实际发现的是reference,它表明有方法可以从终端启动具有预定义模板的仪器,应该存储结果的位置,以及应该运行它的目标设备以及其他参数。您也可以输入终端instruments
来获取参数列表。
我在iPhone上以这种方式运行UI自动化是不成功的。我没有尝试过模拟器或mac app,因为我最感兴趣的是设备。我发布了一个问题here on SO,但由于没有任何回复,我认为没有多少人以这种方式使用乐器。
但是有希望让它运行,因为有his short thread on apple developer forum(你需要登录)表明它可以完成。我稍后会尝试,如果我成功,我会在这里发布解决方案。如果你能设法让它在你的方式运行请求,因为我(可能还有其他人)会感兴趣。
答案 6 :(得分:2)
有一个用于使用shell环境记录/重放UI事件的工具,并且可以使用ruby编写脚本。
交互式iPhone应用程序开发 http://github.com/wookay/libcat答案 7 :(得分:0)
在终端仪器-s中键入此命令,在类型后输入模板路径:
instruments -t <template path> <Application file path> -e UIASCRIPT <script.js> UIARESULTPATH <result_path>
答案 8 :(得分:0)
在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/