iOS-UI自动化多脚本和重置应用程序

iOS-UI自动化多脚本和重置应用程序,ios,xcode,xcode6,ios-ui-automation,xcode-instruments,Ios,Xcode,Xcode6,Ios Ui Automation,Xcode Instruments,我正在寻找一个解决方案,在这个解决方案中,我可以按顺序设置javascripts,并且当每个脚本启动时,它将独立于以前的脚本。因此,我可以只运行一个脚本或一组脚本,它的工作原理是一样的 我发现我可以创建一个脚本文件并使用#import关键字,类似这样: #import "AddStaticContentMissingName.js" #import "AddStaticContent.js" 它正在工作,两个脚本都在运行,但第二个脚本从第一个脚本结束的地方开始,这就是困扰我的地方。我可以设置第

我正在寻找一个解决方案,在这个解决方案中,我可以按顺序设置javascripts,并且当每个脚本启动时,它将独立于以前的脚本。因此,我可以只运行一个脚本或一组脚本,它的工作原理是一样的

我发现我可以创建一个脚本文件并使用
#import
关键字,类似这样:

#import "AddStaticContentMissingName.js"
#import "AddStaticContent.js"
它正在工作,两个脚本都在运行,但第二个脚本从第一个脚本结束的地方开始,这就是困扰我的地方。我可以设置第一个在第二个需要的时候结束,但我不喜欢。我只是一个脚本做什么应该测试,然后结束。那么,是否有可能在每次测试之前重新启动应用程序或类似的东西?我想让UI测试尽可能自动化,那么你在使用什么呢?或者您正在使用另一个工具,然后UI自动化

额外的问题:我一直在寻找解决方案,如何从命令行和/或使用Xcode服务器运行它。我想Xcode服务器是个问题,但对于命令行来说有一个解决方案。我发现这个解决方案的问题是我不能随身携带,对吗?我没有办法向我的存储库添加一些脚本,如果有人尝试使用它,路径就会出现问题。我找到的命令示例:

instruments \
-w your_ios_udid \
-t "/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate" \
name_of_your_app \
-e UIASCRIPT absolute_path_to_the_test_file 

如果您想在脚本之间重置应用程序,您需要自己使用应用程序代码和UIAutomation代码的组合来完成。(苹果将用性能更好的设备取代仪器,但目前这是唯一的办法。)

例如,如果你的应用程序没有使用“摇晃”手势来做任何事情,你可以用它来触发应用程序内的重启(不是关闭它,只是将其返回到已知状态)。然后在每个UIAutomation脚本的顶部,您可以


在中,我们设置了自己的,以允许我们向自动化脚本公开非UI功能(如重置应用程序)。你使用什么系统来实现这一点并不重要,只要你能可靠地将应用程序恢复到已知状态。

我可能为时已晚,但完全有可能实现你想要的。基本上,创建一个bash脚本(或任何其他脚本),并包含运行两个自动化脚本的命令:

#/bin/bash
仪器-w-t-e UIASCRIPT
仪器-w-t-e UIASCRIPT


运行该选项,您的应用程序将在每次运行创建跟踪文件的第一个脚本后重新启动。

您应该将奖金问题拆分为自己的问题。感谢您的解答。我一直在寻找只需要在javascript文件中添加几行代码的解决方案,仅此而已。我想这是不可能的。感谢您的“黑客”,但我认为出于我的目的,最好是每个脚本在完成测试后返回主页面。这是一个很好的策略,但如果任何脚本失败,您编写的所有后续操作也将失败。是的,这就是我考虑“重置”应用程序的原因。也许你的解决方案是正确的。因为你可以从命令行运行仪器,你应该能够编写一个脚本,在每个仪器实例中一次启动一个测试。这将重新启动应用程序,但如果你有状态恢复,你可能需要做额外的工作才能回到应用程序的开始,你发布的时间稍微晚一点并不成问题。看起来可以用了。就在几天前,我发现用户界面自动化已经被弃用,而对于Xcode 7,苹果提供了测试用户界面的新方法。@LiborZapletal没有被弃用。它仍然可以在Xcode 7上运行,但他们还添加了一个新的使用XTest(ObjC和/或Swift)的UI测试。据苹果称,在XTest退出测试版一年后,UIAutomation将被弃用。@Ian这是哪里写的?我找不到关于那个的任何东西。你能发布这个链接吗?我的同事在WWDC宣布了这个消息。可能在他们的一个视频里。