我已经在TestComplete论坛上提出了同样的问题,但我希望能够在这里找到知道Xamarin的人,因为我的大多数问题都与Xamarin相关的多于TestComplete。Xamarin用TestComplete测试
我们即将将所有应用程序切换到Xamarin,并希望继续使用TestComplete进行UI测试。以前(在测试原生Android应用程序时),我们使用对象ID来标识在Android View xmls中指定的ui控件。这是非常方便的IDS是
- 人类可读
- 独特
- 跨应用程序不断运行
在Xamarin,控制似乎有IDS,太多,但我们有一些问题与他们:
- 大多数对象没有身份证,有些人有一个md5哈希作为他们的ID。对于大多数控件来说,在Android上非常方便,并且这在Xamarin中似乎已经消失了。有三个问题:基于什么是md5哈希,它们什么时候改变,是否有可能仍然设置自己的控件ID?
- 某些对象以相同的id出现两次,但具有不同的ObjectIndex。我只从iOS中了解这种现象,其中UI在运行时创建,有时UI控件无法正确回收,因此如果您再次打开相同的视图,最终可能会看到相同的控件,其中一个控件隐约可见,另一个可见。这是iOS上流氓的一种痛苦,因为在TestComplete中可能很难确定当前可见的实例。我希望现在我们可以以某种方式摆脱这一点,但我不知道如何。
截图:(1):MD5哈希值,(2)的某些对象出现两次
- 对象是只能在一定水平访问。例如,我们可以访问
md52....MasterDetailContainer
并与其互动,但其唯一的子女View("NO_ID")
无法访问。 TestComplete无法在ObjectBrowser中显示它的屏幕截图,并且与其进行任何交互(包括“屏幕上的突出显示”)都会导致错误。这也适用于所有的孩子。这一点尤其重要,因为我们的所有UI控件都是该MasterDetailContainer的子项,并且无法访问其子项会使测试无用。 - TestComplete,Xamarin Forms Designer和Android UI Automator Viewer在应用程序中显示了相同视图的完全不同的对象层次结构。这怎么解释?
我一直在与开发团队讨论这一切,但因为他们对Xamarin也是新手,他们也不知道答案。如果有人知道Xamarin coudl帮助我们解决一些问题,我会很高兴。
谢谢你的回答!不幸的是,我们使用Xamarin.Forms,但我会问SmartBear。 – vatbub