当谈到自动化 UI 测试时,对话总是以 UI 自动化结束。它是唯一的选择吗?
我个人不喜欢它的主要原因之一——复杂性。它被设计为适用于所有类型的应用程序。这种普遍性从来都不是免费的。UIA 引入了另一层抽象和相当复杂的 API。标准模式是有限的。自定义控件支持需要大量编码。我想知道为什么有人认为这是一个不错的选择?
WPF 具有出色且非常丰富的抽象,其中 UI 是视觉元素的分层树。这些元素公开了许多方法、事件和属性。树支持各种引用方式(例如相对源语法)。我们在 UIA 中失去了所有这些可能。为了什么?为了与老式应用程序和网络兼容?好吧,实际上,谁会需要它?万事通是个无所事事的大师。
像 Snoop 这样的工具可以将自己注入到正在运行的应用程序中并完全控制它。他们可以更改控件属性的值并引发事件。这还不够吗?没有。您希望您的测试能够像用户那样与 UI 进行交互——使用鼠标和键盘。但这是另一个可以解决的问题。
所以我想知道,我对 UIA 的喜悦有什么不明白的吗?