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

ati*_*yar 12 wpf ui-testing coded-ui-tests microsoft-ui-automation

我在测试或测试自动化方面非常陌生.现在我最近被分配到一个自动化UIF测试WPF应用程序的项目.在对MSDN和其他人进行一些搜索之后,我对是否应该使用Microsoft UI自动化库或VS 2010的新编码UI测试功能感到有点困惑.我没有清楚地了解这些适用于哪一个在哪些情况下,一个人有什么优势,另一个适合我(再一次,我有一个像WPF应用程序的CAD,错过了很多AutomationIds,我必须自动化其ui测试).请帮忙 !!!

小智 19

基本上,Microsoft UIA是.Net 4.0中新的可访问性库.WPF应用程序和控件通过AutomationPeer类内置了对UIA的支持.

Coded-UI测试是一种记录和播放自动化工具,它使用下面的Microsoft UIA库.与在C#中编写代码相比,它是一种工具,因此可以提高QA生产率,从而记录更多测试用例.

对于计划进入自动化支持的应用程序,Coded-Ui应该足够了.如果缺少AutomationID,请确保控件具有一些像Name这样的唯一属性.使用UIVerify或Inspect检查这一点.

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

  • 从事件当您的应用程序收到UI Automation事件时,传递给事件处理程序的源对象是AutomationElement.例如,如果您订阅了焦点更改事件,则传递给AutomationFocusChangedEventHandler的源是获得焦点的元素.有关更多信息,请参阅订阅UI自动化事件.

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

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

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


Aar*_*ver 8

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

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

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