有没有办法UIAutomation
通过终端打开仪器?
是否可以编写一个AppleScript
打开Apple的UIAutomation
工具并加载要测试的应用程序?
你能告诉我有什么方法可以通过脚本或命令行打开UIAutomation
并选择要测试的应用程序,以及选择测试脚本吗?
有没有办法UIAutomation
通过终端打开仪器?
是否可以编写一个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 文件的路径。对我来说,路径是
/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 编写的自动化脚本的完整路径。还要记住将此路径放在双引号中。
最后输出结果路径是您要保存输出结果的路径。还要记住将此路径放在双引号中。
这些是我一直遗漏的要点,因此出现了上面提到的一些错误。
通过命令行启动 UIAutomation 您现在可以执行此操作,从适用于 iOS5 beta 4 的 XCode 4.2 开始 从命令行,您可以运行指向自动化模板的工具,并将您要执行的测试脚本和结果的目标路径指定为环境变量:
仪器 -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
加上来自 Stacktrace 用户在命令行上使用 iphone iOS UIAutomation 运行的帖子 可以使用命令行使用 Instruments 吗?
希望这会有所帮助-祝您有美好的一天:)
针对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和配套的博客文章中找到该项目。
instruments
我写了一个更容易使用的包装器,而不是长命令: https ://github.com/enriquez/uiauto
要使用它,您只需执行以下操作:
uiauto exec path/to/your/script.js
。对于每个新版本的 Xcode,模板路径似乎都发生了变化。找出模板路径的最佳方法之一是instruments -s
列出所有可用模板的命令。
我对这个话题也很感兴趣。我实际发现的是这个参考,它表明可以使用预定义的模板从终端启动仪器,结果应该存储的位置,它应该运行的目标设备,以及其他参数。您也可以只输入终端instruments
来获取参数列表。
我以这种方式在 iPhone 上运行 UI 自动化是不成功的。因为我对设备最感兴趣,所以我没有尝试过模拟器或 mac 应用程序。我在 SO 上发布了一个问题,但由于没有任何回应,我认为没有多少人以这种方式使用仪器。
但是有希望让它运行,因为在苹果开发者论坛 (你需要登录)上有他的短线程表明它可以完成。我稍后会尝试,如果我成功了,我会在这里发布解决方案。如果您设法使其运行,请在此处发布您的方式,因为我(可能还有其他人)会感兴趣。
有一个使用 shell 环境记录/重放 UI 事件的工具,并且可以用 ruby 编写脚本。
交互式 iPhone 应用程序开发 http://github.com/wookay/libcat
在终端仪器 -s 中键入此命令,键入后您将获得模板路径:
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/