微软UI自动化测试的技术演变(上)发布时间:2010-1-2816:07作者:熊力来源:www
cnblogs
com/stbchina字体:小中大|上一篇下一篇|打印|我要投稿|每周一问,答贴有奖Windows平台的桌面开发技术,从最原始的Win32SDK,发展到
NETWinForm,一直到今天的WPF和Silverlight,发生了翻天覆地的变化,相对应的UI自动化测试技术,也随之演变
微软UI自动化技术揭秘将分两个部分介绍Windows平台桌面程序的自动化技术
上篇将介绍从Win32SDK至今的UI自动化技术演变,下篇将着重介绍最新的UIAutomation(UIA)的内部实现和使用技巧
自动测试是指用一个程序自动地控制另外一个程序,模拟用户的操作进行测试
通常自动化测试涉及到下面三个步骤:测试源侦测测试源侦测是定位测试目标元素的过程
比如要测试Windows附件中的计算器,首先要把计算器窗口和其他程序比如写字板区分开
进一步测试计算器窗口菜单的时候,需要首先定位菜单条的位置,获取第二层子菜单等等
简单地说,自动化测试首先要能够获取从桌面开始的整个UI树结构,定位到特定测试目标
用户行为模拟用户行为模拟指模拟用户的输入,比如鼠标、键盘和触摸笔的操作,中间可能会涉及IME输入法、组合键、特定用户习惯,比如输入速度的模拟等
测试目标检查指获取测试元素的属性,比如读取窗口标题,Listbox的子元素,Checkbox的状态等等,以便进行测试检查
Win32SDK和WindowsMessage在
NET问世以前,Windows平台上的UI程序无外乎两种技术:Win32WindowsSDK或者DirectX
由于DirectX多用于专业领域如游戏和CAD,本文并不讨论
无论是MFC,VCL还是VB6,Win32SDK都是其根本,最终打交道的其实都是HWND和WindowsMe