iOS UIAutomation来自命令行

时间:2012-02-14 14:27:18

标签: iphone command-line instruments ui-automation ios-ui-automation

我对理解它的工作原理有疑问。我想在设备上运行我的测试,所以我有命令

instruments -w [...] -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate /Users/lazarenok/Default/Shasta/iOS/Shasta/Shasta.xcodeproj -e UIASCRIPT /Users/lazarenok/Desktop/SignInAndOut.js -e UIARESULTSPATH /Users/lazarenok/Desktop/1

因此,[...] - 是设备ID,/Users/lazarenok/Default/Shasta/iOS/Shasta/Shasta.xcodeproj - 应用程序路径。

但我猜应该不是这样的?如何找到我的应用的路径,例如.app?或者我的路径是对的?什么应该是UIARESULTSPATH?结果保存在哪里?

2 个答案:

答案 0 :(得分:0)

对于应用程序的路径,您使用了.xcodeproj文件的路径。情况并非如此。相反,您应该使用.app文件的路径。 .app文件通常由xcode在使用xcode构建应用程序时创建。要查找此内容,请转到:/Users/<username_with_which_you_are_currently_logged_in>/Library/Application Support/iPhone Simulator 然后转到与您正在使用的模拟器版本对应的文件夹,然后转到Applications。在这里你会发现一些带有神秘名字的文件夹。每个文件夹都对应于您在模拟器中安装的应用程序。选择与您自动化的应用程序对应的应用程序,然后在内部找到.app文件。

对于UIARESULTSPATH,这可以是您要保存测试结果的任何文件夹的路径。

答案 1 :(得分:0)

2014年使用Xcode 6.0.1,您可以为模拟器执行类似的操作,在-w开关后命名模拟器:

instruments -t '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate' \
    -w 'iPhone 5s' \
    '/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/'

如果你想在你的设备上运行它,而不是像上面的代码片段中的'iPhone 5s'那样在模拟器上运行,你就可以提供设备的UDID。然后,您可以省略我上面给出的长应用程序路径,并提供应用程序的名称。仪器将能够在设备上找到它。

使用上面的示例,但针对假设设备进行了修改,这看起来像是:

instruments -t '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate' \
    -w '8532A640-A9C2-4626-A2AD-37AFFF706799' \
    'RoadRunnerRadar' \
    -e UIASCRIPT '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestRunner.js' \
    -e UIARESULTSPATH '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestResults/'

设备调用未验证这一点,因此请对其进行测试。参数排序有一点灵活性。

我确实有一个经过验证的UI Automation Runner脚本,可以很好地用于Xcode 6.0.1和模拟器。