wpf - Microsoft UI 自动化库与编码 UI 测试

标签 wpf coded-ui-tests ui-testing microsoft-ui-automation

我对测试自动化之类的东西非常陌生。最近,我被分配到一个项目,我必须编写一个应用程序(或者,可能是一个脚本,我不确定),该应用程序将自动执行类似 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/

相关文章:

c# - 设置UIaccess更改ShowDialog的行为

wpf - 为什么 FocusManager.GetFocusedElement(this) 总是返回 null?

visual-studio-2010 - 编码的 UI 测试 - 无法解析符号 UITesting

powershell - 使用tcm.exe运行测试导致找不到字段: 'Microsoft.TeamFoundation.TestManagement.Common.WitCategoryRefName.SharedDataSet'

wpf - 确保按钮在 ScrollViewer 中获得焦点

c# - WPF 应用程序设置 - 重置单个属性

wpf - Fluent(Codeplex) Ribbon 中关闭、最大化、最小化按钮的自动化 - WPF 应用程序

javascript - 当 DropZone 在 DragStart 之后出现时,TestCafe DragNDrop 不工作

unit-testing - Selenium 批判

testing - 浏览器配置文件和用户代理在 UI 测试中的意义是什么?