注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭研自动组

快乐耕耘,收获成长!

 
 
 

日志

 
 

基于White+NUnit的客户端测试框架——基于UIA的White框架  

2011-02-25 14:00:36|  分类: 技术调研 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
作者:都都

1      White简介

White官方主页:http://www.codeplex.com/white

White是微软公司支持的一个开源项目,它提供了用于自动化测试的框架基础。基于上文中提到的UIAutomation Window Messages实现。适用于WPFWinFormsWin32、以及SWTjava)测试,其结构如下图所示:

基于White+NUnit的客户端测试框架——基于UIA的White框架 - 网易杭研自动组 - 网易杭研自动组
 

2     元素识别

White本身与selenium, watir等框架非常相似。通过UIAutomation库和Windows Message实现对窗口(控件)的识别与操作。

先来看一下White Core的主要内容:

  • UIItem—元素库:封装了各种标准控件及可识别的自定义元素及其对应操作,包括:window, button, ListBox, Table, Image等各种控件元素以及各种元素的操作如Button.click()window.close()等。一般的,各种元素均继承自UIItem
  •  Finder/SearchCriteria—元素遍历与查找White会将所有元素识别成控件树,然后通过Finder/Search定位到具体的节点

n  Finder

       eg: Window window = Desktop.Instance.Windows().Find(obj =>

obj.Title.Contains("Microsoft Visual Studio"))

n  SearchCriteria:类似于selenium,通过元素idname或者各种属性定位元素

egButton = (Button) window.Get(SearchCriteria.ByAutomationId(“btnOK”))

  • 其他—UISpyUISpy.Net3.0 SDK提供的工具,并不属于White框架,但是我们可以通过该工具进行元素的识别。UISpy会将所有元素识别成一棵控件树,如下图所示, 对计算器的识别:
基于White+NUnit的客户端测试框架——基于UIA的White框架 - 网易杭研自动组 - 网易杭研自动组
 

可以看到,整个计算器窗口的类型是WindowName:“计算器”,这样我们就可以通过其属性Name定位到该窗口,如果这里有定义AutomationId的话也可以使用ByAutomationId()或者其他唯一属性/属性组合进行定位。点击每个按钮子节点,也可以看到这些子节点的详细信息。

 

下图展示了White识别元素的过程:每个Window或者Control类都会有一个对应的Peer类(如Button对应ButtonAutomationPeer),通过这些Peer类,将对应的Control信息暴露给UI Automation, White再通过UI Automation库,将这些Control信息识别成各UI Item。(没有实现Peer类的自定义控件将无法被识别)。

基于White+NUnit的客户端测试框架——基于UIA的White框架 - 网易杭研自动组 - 网易杭研自动组
 

White使用实例可以参考下面的例子:

http://blog.benhall.me.uk/2008/02/project-white-automated-ui-testing.html

  评论这张
 
阅读(1313)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018