为了找到解决UI自动化问题的方法,我在谷歌上搜索了很多。我找到了一篇文章,很好地总结了这些问题:
无法从命令行运行测试。 无法设置或重置状态。(...) 前面问题的一部分是UI自动化没有离散测试的概念。(...) 无法以编程方式检索测试运行的结果。(...)
来源:https://content.pivotal.io/blog/iphone-ui-automation-tests-a-decent-start
问题3可以用茉莉花(https://github.com/pivotal/jasmine-iphone)解决。
其他的问题呢?自该职位(2010年7月20日)以来,是否有任何改进?
还有一个问题:选择特定UI元素的唯一现有方法是在应用程序源代码中添加可访问性标签,这是真的吗?
发布于 2011-01-24 23:37:36
尽管自那篇文章发表以来,UI自动化得到了改进,但我所看到的改进都与可靠性有关,而不是新功能。
他对使用UI自动化进行更严肃的测试时的一些问题提出了一些好的观点。如果您稍后阅读了这些评论,就会对如何解决这些问题进行大量的讨论。
在这个问题中讨论了从命令行运行测试的主题,在在Apple Developer论坛上中暗示了一个潜在的解决方案。我自己也没试过。
可以在测试运行后导出测试结果,可以脱机解析测试结果。
最后,关于最后一个问题,您可以处理UI元素,而不必为它们分配可访问性标签。许多常见的UIKit控件在默认情况下都是可访问的,因此您已经可以按名称将它们作为目标。否则,您可以从显示层次结构中的视图位置选择视图,如下面的示例所示:
var tableView = mainWindow.tableViews()[0];和往常一样,如果UI自动化工具中缺少一些对您很重要的东西,那么提交增强请求就可以进入下一个版本的SDK。
发布于 2012-08-01 17:50:41
你试过IMAT吗?https://code.intuit.com/sf/sfmain/do/viewProject/projects.ginsu。它使用Apple提供的原生javascript,可以通过命令行或工具触发。
在回答你们每一个问题时:
无法从命令行运行测试。
苹果公司现在提供了这个服务。使用IMAT,您可以通过命令行或仪器启动测试。在苹果提供命令行界面之前,我们使用AppleScript来启动仪器,然后启动测试--很恶心。
无法设置或重置状态。(...)
查看此状态图:https://code.intuit.com/sf/wiki/do/viewPage/projects.ginsu/wiki/RecoveringFromTestFailures
前面问题的一部分是UI自动化没有离散测试的概念。(...)
同意。IMAT和tuneup.js (js#readme)都允许这样做。
无法以编程方式检索测试运行的结果。(...)
读取尾随的plist文件并不容易。IMAT通过读取plist文件在测试运行后提供一个类似于jUnit的报告,这是由我的CI工具(Teamcity,Jenkins,CruiseControl)获得的。
发布于 2011-07-14 09:11:44
尝试检查元素层次结构,表可以放在UIScrollView上。
var tableV = mainWindowTarget.scrollViews()[0].tableViews()[0].scrollToElementWithName("Name of element inside the cell");即使元素位于第12个单元格中,上面的脚本也可以工作(但名称应该与单元格中提到的名称完全相同)。
https://stackoverflow.com/questions/4783517
复制相似问题