Windows Automation API 3.0
这个并不是新的自动化测试的技术,而是对UIAutomation(UIA)以及MSAA的升级,更准确的说,是UIA SP1,但名字直接跳到3.0,不知道1.0和2.0是不是指的MSAA的版本,所以大家看到这个名字以后不要晕…… 顺便唠叨一下微软的东西,貌似某个人说过,微软的东西都是在没有做完的时候就发布出去,然后过一段儿时间马上发布Service Pack,所以微软的产品一定要等到SP1以后才能用,这个相当准确:)更详细的介绍大家可以看这个Blog:Microsoft Windows UI Automation Blog
我在这里就大概说一下,Windows Automation API 3.0是伴随着Windows 7发布的,也就是说Windows 7本身就集成了Windows Automation API 3.0所以的组件和功能,再换一句话说就是Windows 7就自动化测试的支持将会更好。最主要的更新如下(与上边UIA的几个纠结对应):
a. 更新以后,以前Tree断掉的问题基本上修复了,我在Windows 7上测试的结果来看,没发现问题
b. 新增了Unmanned API和COM API,这样直接用Native的C++也可以来开发基于UIA的自动化工具
c. 有了COM API以后,看起来In-Process也不是问题了
d. …
Windows Automation API 3.0看起来很美,基本上都解决了我上边说的UIA的问题,让人感觉到这个版本的UIA才是真正可以替代MSAA的东西。但是这个Windows Automation API也让我纠结了好一阵子,差一点就想放弃UIA,重新把Code转移到MSAA上,最主要的原因是,Windows Automation API 3.0只支持Windows 7,不能安装在XP/Vista上,后来经过和他们的斗争,有了下边的Update: http://social.msdn.microsoft.com/Forums/en-AU/windowsaccessibilityandautomation/thread/46e83c55-47b8-4874-9222-7ce2fa58751d
所以,对Windows Automation API 3.0的当前情况就是:
如果你仅仅在Windows 7 上做自动化测试,那么恭喜你,你可以使用Windows Automation API 3.0的所有功能,既可以用Managed code来做,也可以用Unmanaged code来做。
如果你想在Vista上用,装了那个更新以后,应该就可以了,我没试过……
如果你想在XP/Server2003上使用,你需要等到今年年底的某个时候(快到了:))
总之,在Windows 7上,怎么做都行(Managed/Unmanned),在XP/Vista/Server2003上,只能用.Net,而且还会碰到有些控件不在控件树上。所以,大家跟我一起期待年底的更新吧……
相关阅读: