多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

微软UI软件自动化测试技术的演进

更新时间:2021-12-01 14:30:16 作者:多测师 浏览:221

微软UI软件自动化测试技术的演进

  Windows平台的桌面开发技术, 从最原始的Win32 SDK,发展到.NET WinForm,一直到今天的WPF和Silverlight, 发生了翻天覆地的变化,相对应的UI自动化测试技术,也随之演变。

  微软UI自动化技术揭秘将分两个部分介绍Windows平台桌面程序的自动化技术。将介绍从Win32 SDK至今的UI自动化技术演变和最新的UI Automation(UIA)的内部实现和使用技巧。

  自动测试是指用一个程序自动地控制另外一个程序,模拟用户的操作进行测试。通常自动化测试涉及到下面三个步骤:

  测试源侦测

  测试源侦测是定位测试目标元素的过程。比如要测试Windows附件中的计算器,首先要把计算器窗口和其他程序比如写字板区分开。进一步测试计算器窗口菜单的时候,需要首先定位菜单条的位置,获取第二层子菜单等等。简单地说,自动化测试首先要能够获取从桌面开始的整个UI树结构,定位到特定测试目标。

  用户行为模拟

  用户行为模拟指模拟用户的输入,比如鼠标、键盘和触摸笔的操作,中间可能会涉及IME输入法、组合键、特定用户习惯,比如输入速度的模拟等。

微软UI软件自动化测试技术的演进

  测试目标检查

  指获取测试元素的属性,比如读取窗口标题, Listbox的子元素, Checkbox的状态等等,以便进行测试检查。

  Win32 SDK和Windows Message

  在.NET问世以前,Windows平台上的UI程序无外乎两种技术:Win32 Windows SDK 或者DirectX。由于DirectX多用于专业领域如游戏和CAD,本文并不讨论。

  无论是MFC,VCL还是VB6,Win32 SDK都是其根本,最终打交道的其实都是HWND和Windows Message。实现上述自动化的三个步骤 无外乎三件法宝,Win32 API,Windows Message和Windows Hook。

  测试程序首先通过 FindWindowEx和EnumWindow遍历窗口和子窗口,找到测试元素比如某个按钮,然后可以通过Windows Message或者API检查测试目标。比如通过WM_GETTEXT或者GetWindowText读取窗口标题,通过GetWindowRect读取按钮坐标位置等等。对于用户行为模拟,可以直接通过SendKey API来完成,当然也可以发送WM_CHAR或者WM_KEYDOWN通知等等。

  除此以外,Windows Hook更加丰富了技术的选取。通过Windows Hook,测试人员还可以直接监控、 截取、模拟目标程序的Windows消息,实现更灵活的模拟,检查甚至录制的功能。

  Windows Spy++(图一)虽然不是测试工具,也算是使用这套技术的典型例子。通过Windows Spy++可以定位任意窗口, 读取窗口属性,监视窗口消息等等。

  以上内容为大家介绍了微软UI软件自动化测试技术的演进,希望对大家有所帮助,如果想要了解更多接口自动化测试相关知识,请关注多测师。https://www.aichudan.com/

联系电话

17727591462

返回顶部