在iOS上使用UI自动化测试屏幕跟踪

在iOS上使用UI自动化测试屏幕跟踪,第1张

概述所以我有这个想法来测试我的应用程序使用UI自动化来实现我的屏幕跟踪(使用Google Analytics(分析)). 最初的想法是建立一个UI脚本来浏览屏幕,同时检查是否相应地发送跟踪事件.我需要这个,因为有时候我无法组合所有的视图控制器,或事件不按预期的顺序转发.无论如何,我也应该测试我的应用程序的这个方面,我认为UI自动化是答案. 我已经使用UI自动化仪器实现了一个脚本来浏览屏幕,并且这个工作 所以我有这个想法来测试我的应用程序使用UI自动化来实现我的屏幕跟踪(使用Google Analytics(分析)).

最初的想法是建立一个UI脚本来浏览屏幕,同时检查是否相应地发送跟踪事件.我需要这个,因为有时候我无法组合所有的视图控制器,或事件不按预期的顺序转发.无论如何,我也应该测试我的应用程序的这个方面,我认为UI自动化是答案.

我已经使用UI自动化仪器实现了一个脚本来浏览屏幕,并且这个工作正常.我甚至使用tuneup js使代码更加精简,更容易遵循.
我期待有一些东西(一般来说,语法只是一个简化):

Being on screen X    Tap button AExpect screen Y and tracking event for the screen Y

但是,只要我能够检查,测试屏幕跟踪是UI自动化不可能的.
还是我错过了什么?

我想到创建一个不可见的视图,保持在所有的视图层次结构之上,并且每次加载新屏幕时都会更改其名称,以便我可以使用UI自动测试,但是这个想法听起来有点超过顶部…

你们建议什么?寻找另一个UI自动化工具?做单位测试吗?

提前感谢任何帮助

解决方法 您可以使用UIAlertVIEw并检查这些警报.不必发送分析事件,您可以d出警报,以便您可以在UIautomation中进行检查.

像AnalyticsKit这样的分析抽象框架提供了一种改变分析提供者的简单方法.而AnalyticsKit甚至有一个例子(看看AnalyticsKitDeBUGProvIDer类).因此,您的生产代码的更改很少.

您可以使用构建配置,您可以在其中设置构建变量来控制分析的初始化

ID<AnalyticsKitProvIDer> provIDer#ifdef USE_UI_autoMATION_ANALYTICSprovIDer = [[TestautomationProvIDer alloc] init];#elseprovIDer = [[RealProvIDer alloc] initWithAPIKey:API_KEY];#endif[AnalyticsKit initializeLoggers:@[provIDer]];

在UIautomation中,您可以测试警报.您可以使用tuneup.Js包中的assertions.Js来编写一个这样的函数

function checkForAlert(){    var alert = null;    retry( function() {          log("wait until alert appaers");          alert = UIATarget.localTarget().frontMostApp().alert();          assertNotNull(alert,"No alert found");          assertTrue("The name you can choose for the alert" == alert.name());           },5,1.0);    return alert;};

这结合了等待警报和测试,如果它终于出现.如果不出现警报,测试将失败.

在您的测试中,您可以使用以下方式:

var analyticAlert = checkForAlert() // if alert appears it will be in the var,otherwise the test fails at this point.analyticAlert.buttons()["OK"].tap(); // dismiss the alert

为了使此工作,您还需要设置一个onAlert处理程序.否则,UIautomation会尝试立即关闭警报.这必须在您的测试代码之前完成.警报处理在UIautomation文档中解释.

function MyOnAlertHandler(alert){   if("The name you choose"==alert.name()) // filter all alerts created by analytics provIDer   {      return true; // handle alert in your test   }   return false // automaticly dismiss all other }UIATarget.onAlert = MyOnAlertHandler; // set the alert handler
总结

以上是内存溢出为你收集整理的在iOS上使用UI自动化测试屏幕跟踪全部内容,希望文章能够帮你解决在iOS上使用UI自动化测试屏幕跟踪所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1111474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存