UIAutomation和WPF

  UIAutomation是微软从Windows Vista开始推出的一套全新UI自动化测试技术, 简称UIA。在最新的Windows SDK中,UIA和MSAA等其它支持UI自动化技术的组件放在一起发布,叫做Windows Automation API。

  和前面的介绍相比,我倾向于认为UIA是一项自动化测试“技术”,而MSAA和Win32 API只是实现自动化测试的两种“方法”。这里区分“技术”和 “方法”的原因是, 一项“技术”往往有独立的模型,体贴的开发接口,用来专门解决某一类的问题,同时允许不同的实现细节。UIA可以被看作“技术”,是因为:

  UIA定义了全新的、针对UI自动化的接口和模式。 分别是支持对UI元素进行遍历和条件化查询的TreeWalker/FindAll。定义了读写UI元素属性的UIA Property, 包括Name、 ID、Type、ClassName、Location、 Visibility等等。定义了UI元素行为的UIA Pattern, 比如Select、Expand、Resize、 Check、Value等等。 还引入了UIA Event接口,可以让测试程序在某些事件发生后得到通知,比如新窗口打开事件等。

  以往的Win32和MSAA 设计出发点并不是为解决UI自动化。Win32旨在提供的通用开发接口, MSAA旨在提供程序的多种访问方式。相反,UIA的设计目的,以及新引入的模式和接口都完全是针对UI自动化测试的。

  在后面的文章中我们会详细分析UIA的内部实现。可以看到,UIA这一套接口和模式,可以在不同平台,不同开发工具中实现和使用。其内部实现方式也因地制宜, 前后的兼容性都照顾得很好。 同时,UIA提供了托管的和非托管两种API,这些都是Win32和MSAA无法比拟的。

  下面一段简单的C#代码演示了如何使用UIA测试Windows自带计算器完成计算3+5-2的操作(下述代码可能需要修改以适应不同Windows版本的calc.exe程序。本代码使用Visual Studio 2008针对Windows 2008 Server R2 English 编写)

【转】微软UI自动化测试的技术演变相关推荐

  1. 做了5年软件测试,对游戏UI自动化测试的一些理解和认识

    前言 对于目前的两大游戏引擎cocos-2dx.unity3D,其UI自动化测试的技术方案都已经实现.可以获取.设置UI对象的各个属性,并且可以调用UI对象及引擎的一些方法接口,实现基于引擎的UI驱动 ...

  2. 基于Selenium与Pytest框架的Web UI自动化测试系统的设计与实现

    摘要 随着互联网的高速发展,软件技术日新月异,产品更新换代的加快等,始终都离不开一个最核心的要素就是保证产品的质量,测试人员则在其中担任着不可或缺的角色.测试人员的主要工作职责就是通过各种测试手段去发 ...

  3. Flutter UI自动化测试技术方案选型与探索

    Flutter页面无法直接使用Native测试工具定位元素,给自动化测试带来很多不便.虽然Google官方推出了Flutter driver 和 Integration test,但是在实际使用中存在 ...

  4. 网易技术干货 | 云信移动端音视频UI自动化测试实践

    本篇文章来自网易云信高级测试工程师,在从事测试工作的五年时间中,她做过Android端.Windows端.Web端.服务端测试,在UI自动化.接口自动化.音视频测试方面均有所积累.本文将结合应用实践, ...

  5. AI考拉技术分享会—手把手教你入门UI 自动化测试 Appium

    2019独角兽企业重金招聘Python工程师标准>>> AI考拉日常技术分享会,前有众多前后端以及android大神分享,这次测试老司机Eric也放招,手把手带devs入门UI自动化 ...

  6. Flutter UI自动化测试技术方案选型与探索,初面蚂蚁金服

    •不适用于混合栈APP,虽然appium中有相关的driver,但是无法切换环境.•元素定位能力相对薄弱.•依赖于VMService,需要构建Profile或Debug包. 基于以上因素,我们并没有直 ...

  7. 对Windows桌面应用程序进行UI自动化测试

    所谓UI自动化测试,就是模拟一个用户,对应用程序的UI进行操作,以完成特定场景的功能性集成测试. 要对Windows桌面应用程序进行UI自动化测试,目前可选的技术主要是两种:VS自带的CodedUI ...

  8. python 桌面程序自动化测试_对Windows桌面应用程序进行UI自动化测试

    题记:本文简述如何利用appium对Windows桌面应用程序进行UI自动化测试. 所谓UI自动化测试,就是模拟一个用户,对应用程序的UI进行操作,以完成特定场景的功能性集成测试. 要对Windows ...

  9. UI自动化测试工具一般有哪些作用?

    随着不同渠道的应用程序设计以及开发,跨越移动.桌面和云,检测操作界面变得越来越复杂,面对一系列的挑战和漏洞,自动操作UI界面检测也越来越受到重视,UI自动化测试工具就是解决这些问题的专业工具,那你知道 ...

最新文章

  1. 不止最佳长论文,腾讯AI在ACL上还有这些NLP成果(附论文链接)
  2. 最有效阻止SSH暴力破解的方法
  3. 【不采用】人工智能如何帮助银行反欺诈
  4. Delphi XE7中新并行库
  5. 推荐系统XDeepFM模型--DeepFM和DCN升级版
  6. 安卓 Input Events(输入事件)
  7. 几道偏序问题(数据结构)
  8. 「雕爷学编程」Arduino动手做(38)——joystick双轴摇杆模块
  9. python调试_Python 调试
  10. 异常检测2——PCA异常检测
  11. 计算机系统-理论-CPU操作/处理数据的方式/寻址方式/局部性原理/位运算/进制转换
  12. MindManager的例图资源
  13. 【学堂在线数据挖掘:理论方法笔记】第八天(4.2)
  14. PHP高并发高负载下的3种实战场景解决方法
  15. SandStorm 出品|建设者高光时刻 9 月作品集已上线!
  16. ram与flash你知道多少?
  17. markdown java 代码高亮_Markdown 入门教程
  18. phpadmin安装到mysql中_phpadmin安装教程
  19. vant移动端上传附件
  20. 人工智能----知识与知识表示

热门文章

  1. 有关于使用arcgis中的dem镶嵌出现的问题
  2. python抢票代码_Python自动化xpath实现自动抢票抢货
  3. 回顾周杰伦17年间的歌词,才知道他都唱了些什么
  4. 2007最牛X网站收集
  5. 表情小作坊2.0上线啦
  6. 网游设计之道----4
  7. vs 添加快捷键 | 修改快捷键、添加注释、添加快速插入代码(使用#if 0 注释)
  8. DTCLOUD亿智云
  9. Unity3D 定时任务
  10. 蒙特卡罗算法求PI的基础原理