控制模式将一个界面元素对象所支持的结构,方法,属性和事件结合在一起。控制模式对于UI元素的关系相比于接口对于COM对象的关系。对于COM,我们可以通过询问COM对象得到它所支持的接口,然后通过接口调用对应的COM功能。对于UI自动化对象,客户端可以通过询问UI对象得到它所支持的控制模式,然后通过其控制模式调用得到其结构、方法、属性和事件,从而实现和UI的交互。

  例如,提供者实现了多行文本编辑控制的滚动模式接口IScrollProvider,当一个客户端程序探测到这个界面元素支持滚动模式,则可以通过调用滚动模式类ScrollPattern得到这个文本编辑框的属性、方法和事件来收集所支持的文本滚动信息,通过程序化的方法实现文本编辑框内容的滚动。

  综上所述,WPF的UI自动化技术旨在提供一个统一的UI控制访问方式,由UI自动化服务提供者 (UI Automation Providers) 实现控制模式接口,UI自动化客户程序 (UI Automation Clients) 则通过调用相应的控制模式类来实现UI自动化操作和控制。

  链 接

  软件测试的花费往往很高。自动化是一个节省时间和成本的好办法。但是软件自动化测试的工具和技术,往往缺乏通用的适用性和伸缩性。为了实现测试过程的自动化,我们依据软件需求或规格设计说明书,针对测试对象,自动生成测试用例,使测试能自动执行,自动验证其正确性。

  在整个软件测试过程中,由于UI在提升用户体验方面的特殊作用,UI级别的测试不但在于验证系统的正确性和有效性,而且在验证整个系统的易用性、行为一致性和稳定性方面有着非常重要的作用。

  但UI自动化测试历来困难。一般来说,一个系统大量的UI人为干预,都需要测试。我们还没有一个完全能达到此一目标而颇具规模的系统。UI自动化程度仍停留在自动化测试脚本的水平。