首页 > VS 2010 测试功能学习(八) - RnP与Coded UI测试(继续篇)

VS 2010 测试功能学习(八) - RnP与Coded UI测试(继续篇)

题外话:CSDN博客不能上传图 片已经有一周多了,以前的博客内容中的图片仍然是“图片审核中...”状态,没关系,咱是中国网民,咱最大的优点就是能忍!图片不能传,咱继续发文字内容 的博客。可是人家外国的Google就忍不了了,这一周要退出中国的传言漫天飞,成了大家茶余饭后的谈资。这周另一件大事就是Haiti发生了7.3级的 大地震,据说伤亡很严重并且还有我们的维和人员,希望救灾工作能够一切顺利。

 

      在上一篇博客《RnP与Coded UI自动化测试》 中,介绍了Visual Studio 2010(以下简称为VS2010)新加入的测试用例录制和播放功能,以一个对计算器加法功能进行测试的例子,体验了完整的使用过程:MTLM创建测试用 例工作项 -> 录制测试手工执行的测试步骤 -> 回放录制结果 -> 生成C#自动测试用例 -> 将自动测试用例关联到测试用例工作项 -> 添加验证。这个功能确实很酷,它将测试计划、手工测试用例和自动测试用例三者有机的结合起来,RnP工作能大大提高了测试用例的执行效率。知其然,更要知 其所以然。到目前为止俺也只是介绍了RnP和Coded UI Test (以下简称为 CUIT)测试的皮毛而已, 还需要继续挖掘一下它们背后的故事。


RnP和CUIT支持的平台/技术

      任何技术都不是万能,总有它的适用范围,有所为,有所不为。RnP和CUIT也是如此,所以在使用之前,首先必须要知道它们的使用范围。在MSDN Visual Studio 2010 (Beta 2)的帮助页面《Supported Configurations and Platforms for Coded UI Tests and Action Recordings》 给出了Beta 2中RnP和CUIT所支持的:操作系统、32位和64位、处理器体系结构、.NET Framework版本、语言以及具体的技术和平台。其中,大家最关心的应该是最后一部分的技术和平台,它决定了哪种类型的应用程序可以应用RnP和 CUIT。上面的页面仅给出了Beta 2的支持情况,俺发现在微软测试功能开发团队的博客上,给出了Beta 2、RTM以及RTM之后RnP和CUIT的平台/技术支持路线,下面这张表还是非常直观的:

技术平台

Beta 2

RTM

RTM+

注释

IE7/8 – HTML/AJAX

    

Windows Forms 2.0+

   

.NET Fx Controls fully supported, working on 3rd party support

WPF 3.5+

   

.NET Fx Controls fully supported, working on 3rd party support

SharePoint 2007

    

Windows Win32

   

To do – Publish Known issues & Workarounds

MFC

   

To do – Publish Known issues & Workarounds

FF3 – HTML/AJAX

   

To do – Publish Release Plan

Dynamics (Ax)

   

To do – Publish Release Plan

Silverlight

   

To do – Publish Release Plan

Citrix/Terminal Services

   

The client (MTLM or VS) need to be on remote machine

Office Client Apps

    

IE 6

   

Opportunity for partners to add this using the Extensibility support.  Docs and samples around extensibility are here.

Chrome/Opera/Safari

   

Flash/Java

   

SAP

   

图例 :完全支持 当前部分支持还有后续工作需要完成 支持但仍存在已知问题 当前不支持但今后会考虑 不支持

 

      基本上覆盖了Windows平台上的主流开发技术,唯一的遗憾是还不支持基于Silverlight的Web应用程序的测试,相信这应该是微软在发布了2010之后,重点应该考虑的一部分内容,因为现在Silverlight技术的应用还是非常广泛的。

 


RnP和CUIT背后所采用的技术

      RnP和CUIT是首次在Visual Studio中出现,其功能还是很炫很酷的,但其实背后的测试自动化实现技术对大家并不陌生,下面列出针对Web、Winfrom和WPF应用的测试技术 基础。对每种技术的支持采用的是插件(Plugin)的形式实现的,VS 2010包括了如下的三种插件:

  1. Document Object Model(DOM) 插件  :  IE 7/8 HTML/AJAX 
  2. User Interface Automation(UIA)插件  :  WPF
  3. Microsoft Active Accessibility(MSAA)插件  :  Winform,Win32和MFC 。MSAA插件是默认选项,用来支持出其它两者之外的任何应用。正如上面的表中所列的内容所示,有些是默认MSAA插件也无法支持的,如:Silverlight和Firefox等。

      如果你所开发的应用程序当前还不被支持,也不用着急,微软在VS 2010中还提供了开发你自己的Plugin的机制,纤细的内容可以参见Gautam Goenka的博客《Series on Coded UI Test Extensibility》。 虽然是属于高级话题了,但是对于那些想要对CUIT有深入了解和使用测试人员来说,这应该是必读的一篇博客内容。之所以这样说,源自我的切身体会。我在一 开始使用CUIT的时候并没有注意这个话题,随着使用的深入发现有越来越多新问题产生,使我迫切地想知道RnP和CUIT是如何构架。特别是我也遇到了《Configure search properties used by recorder/code generation 》中提到的“录制所产生的无法用来定位空间的动态控件名问题”(Name of the certain control is dynamic and not to use it to identify the control.)。Visual Studio 2010并没有提供Built-in的解决方案,如果再要是不了解CUIT的Extensibility机制,那是无法解决这个问题的。还有其它一些类似 问题,但是建议你在使用了一段CUIT后再来Extensiblity,否则只会是看的一头雾水,呵呵,真的!

 

      Apart from this,产品良好的可扩展性也我喜欢微软的技术的一个重要原因之一,有了扩展技术,为第三方厂商或者爱好者提供了途径来填补这部分空白,也是很好的商机,也许这就是建立Eco-system的一种途径吧,呵呵! 

      Visual Studio中的RnP和CUIT功能还是比较新的内容,除了看微软发布的VS 2010的MSDN文档,去看VSTT团队和成员的博客是非常不错的资料来源。此外,去 Coded UI Test forum论坛直接提问题,可以更直接地得到相关产品部门的支持和解惑。

 

 

 

参考资料

  1. MSDN : Testing the User Interface with Automated UI tests
  2. How does "Coded UI test" finds a control?
  3. Platform Support for Coded UI Test (and Fast Forward feature of Test Runner)
  4. Understanding the Window Search and Windowed Properties
  5. Series on Coded UI Test Extensibility

转载于:https://www.cnblogs.com/vmyspace/archive/2012/03/05/2380010.html

更多相关:

  • 机器人的定义与特点 机器人是自动执行工作的机器装置,可以接受人的指挥、运行预先编排的程序或者根据人工智能技术指定的原则纲领行动。 机器人① 包含传感器、执行器,能够与物理世界交互,② 可编程,③ 能够进行自主或半自主的行动。 机器人行业 机器人行业未来市场潜力,可以从工业机器人、服务机器人和无人驾驶三个方面看,非常广阔,主要的...

  • 自从去年7月反省之后,认识的朋友逐渐多了,天下那么大,优秀的人很多,通过网络认识是一个很不错的途径,经过一段时间后,圈子范围扩大了很多,行业上和非行业上都有涉及,对自己认知冲击很大,发现技术、技术之外很多想不到的事,虽然能了解到很多事,但是做技术的,首要还是看自身技术,其他的闲暇时间了解即可。 很庆幸能认识很多积极学习的朋友,看到别人...

  • 要做到数据驱动安全,齐向东认为需要三大核心技术。第一个核心技术是大数据采集器,第二个是大数据引擎,第三个是机器学习挖掘、重要安全问题定位准确。 转载于:https://www.cnblogs.com/1992825-Amelia/p/4854220.html...

  • [1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。...

  • 主席说过:“谁是我们的敌人?谁是我们的朋友?这个问题是革命的首要问题。”敌人能给我们带来伤害,而朋友能给我们带来帮助。在技术学习中也可以采用这种观点,分清哪些技术是朋友,哪些技术是敌人。所谓敌人,也就是和当下是竞争者关系的对象,所谓朋友,就是和当下是互补关系的对象。辨析竞争关系和互补关系,是很重要的技巧。别人卖刀你卖刀,别人卖水你卖水...

  • 很多情况下需要对视频格式转换才能正常观看,下面就由微侠网小编给您介绍这款软件,佳佳MPEG4格式转换器是专业的MPEG4、H264和MP4格式转换工具,软件支持将MPEG4视频转换成多种格式音频播放,操作简单,转换速度快。看完的小伙伴可以关注微侠网下载最新版软件以及查看最新攻略及资讯!软件介绍超快的转换速度和完美的转换质量。通过顶级音...

  • 代码量:9行 码云仓库:https://gitee.com/Gaooo/2016035107059.git 实现时间:emmmmm(9行代码,自己估计!!) 程序对表达式类型的支持程度:全部支持! 能支持两个操作数,一种运算符。能支持两个操作数的简单四则运算(只有一个操作符)。能支持简单混合四则运算(最多有3个操作符,没有括号)。能支...

  • 一、API     1. 出现新的上下文接口:SparkSession,统一了SQLContext和HiveContext,并且为SparkSession开发了新的流式调用的configuration API     2. 统一了DataFrame和DataSet。DataFrame相当于DataSet[Row],以及DataSet的...

  • 官网: http://www.redmine.org/ http://demo.redmine.org/ 下载: http://www.redmine.org/projects/redmine/wiki/Download   Redmine 是一个开源的、基于Web的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示。同...

  •     项目编号:BBZC12-106-1 项目名称:重庆市公安局北碚分局所需容灾备份设备及软件采购 重庆市北碚区公共资源综合交易中心 二〇一二年六月二十五日 第一部分 招标邀请书 重庆市北碚区公共资源综合交易中心根据重庆市北碚区政府采购办公室下达的采购任务,拟对重庆市公安局北碚分局所需容灾备份设备及软件采购进行公开招标,欢迎...