[英]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 自动化库是一个低级库。 通常,您不想直接针对它编写测试,因为它需要相当多的工作。
我建议查看更多高级库。 您提到了其中之一——编码的用户界面; 另一个不错的选择是来自 TestStack 的 White。 它们都适合不同类型的项目。 当您不想在测试套件中投入大量精力时,编码 UI 非常有用。 同时,它的扩展性不大,因此如果您要编写大量测试,最好选择 White。
在这里,我更详细地比较了两个框架: Coded UI vs White
为了补充上述回复,请查看CUITE ,它很有帮助,可能是适合您的方法。
我开始使用 CodedUITest 库“滚动我自己的”“半框架”,并设计了一个范例来将自动化的细节与 (C#) 代码分开。 基本上,我正在创建一个驱动程序,它从电子表格中读取需要完成的操作,其中每一行都是一个测试步骤(或指向不同工作表中场景的指针)。 目前,不完整但很有前途,我让它在 WPF 应用程序上工作并取得了部分成功。 主要问题之一是开发人员忽略了唯一且一致地标识控件。
贝
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.