繁体   English   中英

Microsoft UI 自动化库与编码的 UI 测试

[英]Microsoft UI Automation Library Vs Coded UI Test

我对Test Automation之类的东西非常陌生。 最近我被分配到一个项目,我必须编写一个应用程序(或者,脚本可能是,我不确定),它将自动执行类似 CAD 的 WPF 应用程序的 UI 测试,该应用程序缺少很多AutomationId

在 MSDN 和其他资源上做了一些搜索后,我有点困惑是应该使用Microsoft UI Automation Library还是 VS2010 中包含的新Coded UI Test功能。 我不清楚这两者中的哪一个适用于哪些场景,一个比另一个有什么优势以及哪个适合我的目的。

如果您对此事有经验/知识,请遮光。 提前致谢。

Microsoft UIA 基本上是 .Net 4.0 中新的辅助功能库。 WPF 应用程序和控件通过 AutomationPeer 类内置了对 UIA 的支持。

Coded-UI 测试是一个 Record & Play 自动化工具,它使用下面的 Microsoft UIA 库。 由于与用 C# 编写代码相比,它是一种工具,因此它提高了 QA 生产力以记录更多测试用例。

对于计划有自动化支持的应用程序,Coded-Ui 应该足够了。 如果缺少 AutomationID,请确保控件具有一些独特的属性,如名称。 使用 UIVerify 或 Inspect 来检查这一点。

如果没有唯一属性可用,则可以将下面提到的其他技术与 Coded-UI 结合使用。

  • 来自事件 当您的应用程序接收到 UI 自动化事件时,传递给您的事件处理程序的源对象是一个 AutomationElement。 例如,如果您已订阅焦点更改事件,则传递给 AutomationFocusChangedEventHandler 的源是接收焦点的元素。 有关详细信息,请参阅订阅 UI 自动化事件。

  • 从点:如果您有屏幕坐标(例如,光标位置),则可以使用静态 FromPoint 方法检索 AutomationElement。

  • 从窗口句柄:要从 HWND 检索 AutomationElement,请使用静态 FromHandle 方法。

  • 从焦点控件:您可以从静态 FocusedElement 属性中检索表示焦点控件的 AutomationElement。

如果您可以利用和使用 编码的 UI 测试,那么就走那条路。 确保验证您给定的配置是否受支持

UI 自动化库解决了代码隐藏中的所有问题。 然后,这会迫使您使用 UISpy 之类的工具来访问控件内部结构,以便您可以构建测试。

另一方面,编码的 UI 测试仍然有代码隐藏,但它允许记录通过您正在测试的给定应用程序的步骤,这将大大增加您可以创建的测试数量。

UI 自动化库是一个低级库。 通常,您不想直接针对它编写测试,因为它需要相当多的工作。

我建议查看更多高级库。 您提到了其中之一——编码的用户界面; 另一个不错的选择是来自 TestStack 的 White。 它们都适合不同类型的项目。 当您不想在测试套件中投入大量精力时,编码 UI 非常有用。 同时,它的扩展性不大,因此如果您要编写大量测试,最好选择 White。

在这里,我更详细地比较了两个框架: Coded UI vs White

为了补充上述回复,请查看CUITE ,它很有帮助,可能是适合您的方法。

我开始使用 CodedUITest 库“滚动我自己的”“半框架”,并设计了一个范例来将自动化的细节与 (C#) 代码分开。 基本上,我正在创建一个驱动程序,它从电子表格中读取需要完成的操作,其中每一行都是一个测试步骤(或指向不同工作表中场景的指针)。 目前,不完整但很有前途,我让它在 WPF 应用程序上工作并取得了部分成功。 主要问题之一是开发人员忽略了唯一且一致地标识控件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM