我对测试自动化
之类的东西非常陌生。最近,我被分配到一个项目,我必须编写一个应用程序(或者,可能是一个脚本,我不确定),该应用程序将自动执行类似 CAD 的 WPF 应用程序的 UI 测试,该应用程序缺少很多 AutomationId
。
在 MSDN 和其他来源进行了一些搜索后,我对是否应该使用 Microsoft UI Automation Library
还是新的 Coded UI Test
功能有点困惑包含在VS2010中。我不清楚这两者中的哪一个适用于哪些场景,其中一个相对于另一个有什么优势以及哪一个适合我的目的。
如果您对此事有经验/了解,请遮遮掩掩。提前致谢。
最佳答案
基本上,Microsoft UIA 是 .Net 4.0 中的新辅助库。 WPF 应用程序和控件通过 AutomationPeer 类内置对 UIA 的支持。
Coded-UI 测试是一个录制和播放自动化工具,它使用底层的 Microsoft UIA 库。与用 C# 编写代码相比,它是一种工具,因此它可以提高 QA 生产力以记录更多测试用例。
对于计划支持自动化的应用程序,Coded-Ui 应该足够了。如果缺少 AutomationID,请确保控件具有一些唯一的属性,例如名称。使用 UIVerify 或 Inspect 来检查这一点。
如果没有可用的唯一属性,您可以将下面提到的其他技术与 Coded-UI 结合使用。
来自事件 当您的应用程序收到 UI Automation事件时,传递给事件处理程序的源对象是 AutomationElement。例如,如果您已订阅焦点更改事件,则传递给 AutomationFocusChangedEventHandler 的源是接收焦点的元素。有关详细信息,请参阅订阅 UI 自动化事件。
从一个点: 如果您有屏幕坐标(例如,光标位置),则可以使用静态 FromPoint 方法检索 AutomationElement。
从窗口句柄: 要从 HWND 检索 AutomationElement,请使用静态 FromHandle 方法。
来自聚焦控件: 您可以从静态 FocusedElement 属性中检索代表焦点控件的 AutomationElement。
关于wpf - Microsoft UI 自动化库与编码 UI 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4909206/