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

本文详细介绍了Visual Studio 2010中的RnP与CUIT自动化测试功能,包括支持的平台和技术、背后的实现原理及扩展机制等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题外话:优快云博客不能上传图片已经有一周多了,以前的博客内容中的图片仍然是“图片审核中...”状态,没关系,咱是中国网民,咱最大的优点就是能忍!图片不能传,咱继续发文字内容的博客。可是人家外国的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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值