VS 2010 测试功能学习(七) - RnP与Coded UI自动化测试

使用VS2010中 编码的UI 测试 进行UI自动化测试 在 Visual Studio 2010 旗舰版以及 Visual Studio 2010 高级版中,集成了一种全新的创建用户界面的自动测试:“编码的 UI 测试”(Coded UI Tests,CUIT)。 这种测试可以非常方便地创建和维护对用户界面的功能检测和用户界面控件的验证的自动化测试。 CUIT为测试用例的自动化提供了一个框架、API和可扩展的接口,测试人员可以通过它使用C#或者 VB.NET语言轻松地开发出所要的自动化测试用例,从用户界面层驱动Web、Winform或者是WPF的应用。熟悉Mi 阅读详情

      题外话:昨天去上海浦东机场接闺女,一切还是蛮顺利的,公交机场7线直接从上海火车南站一站直达浦东机场,票价20元,算上乘坐地铁5号和1号线的6元,从我家到机场总共要26元,相对于打的士的220元,还是实惠很多的。在新的上海轨交图上,看到地铁2号线延伸到了浦东机场,只是现在这段还没有通车。机场7线是在地铁3号线的上海南站站2号出口附近,可是俺是乘坐1号线到上海南站的,需要经过换乘通道到3号线的上海南站站才能找到2号出口,稍费了些周折。

 


Coded UI Test (CUIT) 英文资料大全 - Content Index for Coded UI Test 


 

      如果有机会看一看Visual Studio 2010 Team System的《新功能介绍》,你会发现它对于测试部分的改进一共包含了七大项内容,如下图所示。在我的前一篇优快云个人博客中介绍了什么是MTLM。本篇将介绍一下《Record manual test steps and replay them during a future test run》和《Create automated UI tests》,前者实际上就是RnP(Record and Playback,录制和播放),后者则引入了一个Coded UI Test(也简称为CUIT)工程模版,用来创建直接对界面进行操作测试用例。

      我个人认为,这哥俩儿应该是VS2010测试部分的一大亮点,它们让VS真正具有了更完善的UI自动化测试支持。从功能实现上看,它是微软的RnP,但是由于和TFS相结合,将手工测试用例和自动化界面测试用例有机结合了起来,同时有着强大界面自动化库的支持,测试人员可以使用C#或者VB.NET开发测试用例,这些都使得它们较其他的RnP工具更具实用性和竞争力,呵呵!

      由于它们关系紧密,所以把它们一起介绍,他们主要是关于如何把手工执行的测试用例过程用代码自动记录下来,并可以自动执行,并在需要的时候生成自动测试用例。本文将通过一个计算器加法功能 "1+9 = 10" 测试的实际例子,来介绍一下这两个功能是如何实际中应用的,大概的步骤如下:

Step 1 - 在MTLM中创建一个测试计划

Step 2 - 添加一个计算器加法功能的手工测试用例到测试计划

Step 3 - 执行测试用例并记录执行步骤

Step 4 - 播放测试用例

Step 5 - 手工测试用例转化为自动化测试用例

Step 6 - 添加验证步骤


Step 1 - 在MTLM中创建一个测试计划

      运行Microsoft Test and Lab Manager (MTLM)工具,连接到你的Team Foundation Server(TFS 2010)和相应的工程,创建一个新的测试计划(Test Plan)- "CalculationTestPlan",如下图所示。为了便于分类管理,我在CalculationTestPlan下面又创建了一个"Calculator UI Tests"的子目录(Test Suite),用来专门存放计算器UI相关的测试用例,现在它下面还是空的。 (如果大家对MTLM还不是很了解,请参见我在优快云上的博客《VS 2010 测试功能学习(一) 新老Logo》)


Step 2 - 添加一个计算器加法功能的手工测试用例到测试计划

      右键选择"Calculator UI Tests"节点,在弹出的上下文菜单中选择"New test case",创建一个新的测试用例项,它实际上是在TFS创建了一个新的Test Case工作项。如果已经有了Test Case,则可以选择"Add test cases"。在测试用例项中,最重要的内容就是要在"Steps"页下填写详细地描述测试步骤,以及每一步的期盼结果。这里使用的测试用例是 :1 + 9 = 10,其步骤描述如下图所示,对于这个简单的测试用例给出了五个测试步骤:

  1. 启动计算器程序;
  2. 点击数字"1";
  3. 点击"+"号;
  4. 点击数字"9";
  5. 点击"="号。

      注意:"Automation Status"项默认被设置为"Not Automated",表示这是一个手工测试用例。在我们将一个测试工程中的测试用用例方法关联到它的是否,会被自动设置为"Automated"。

      测试用例的描述步骤应该是尽可能的详细,如果一个不是很了解你的产品测试人员,也能够根据你的测试步骤能够轻松地执行它,那说明是足够详细了。从另外一个角度去理解,测试用例应该被当作是最准确的产品文档或者设计说明来对待。


Step 3 - 执行测试用例并录制执行步骤

      在MTLM上的Testing Center中,切换到Test页,然后选择"Calculator UI Tests"节点,右键选择我们刚刚创建好的"Test case #338 – Basic calculator test',并在上下文菜单中选择"Run"。

      在执行测试用例的开始窗口中选择"Create action recording",这样手工执行每一个步骤的操作过程就会被工具记录下来,并能够由此生成程序代码,非差酷吧,呵呵!

      选择"Start Test"开始测试,每完成一个测试步骤后,根据结果将相应的步骤标为"Pass“或者"Fail',如下图所示。在所有测试完成后,选择"End test"结束测试,并保存测试收集的数据。

      注意:在录制和保存录制的结果之后,如果对测试步骤进行了修改,如添加或删除步骤、或者参数,则需要从新录制。当你再次Run测试用例时,会提示: The action recording cannot be loaded for the test "My first test case".
Changes have been made to the test steps or parameters for this test after the action recordings were created. To include the changes, you must create the action recording again.


Step 4 - 播放测试用例

      在录制好了之后,播放是一个非常简单的,在Play菜单中选择"Play all",播放刚才录制的所有步骤,"Play"则是用来播放某一步的录制内容,你也可以把测试步骤中能够录制的步骤录制下来,采用“手工+播放”的方式来执行一个测试用例。这样的好处是,即使你的用例不能被整体自动化,也可以自动化其中可以自动化的(Automatable)部分,在很多情况下这样办自动化的测试用例,比去全手工的执行效率还是要高的,呵呵!这个功能也称为 "Fast Forwarding for manual test”。


Step 5 - 转换测试用例为自动化测试用例代码

      录制好一个测试用例后,利用Visual Studio可以将它转换为CodedUI自动化测试用例代码。在Visual Studio中创建一个测试工程项目,然后添加一个Coded UI Test测试项,命名为"CalculatorBasic.cs",如下图所示。

      在弹出的"Generate Code for Coded UI Test"对话框中选择"Use an existing action recording"项目,以启动录制信息到代码的转换功能,如下图所示:

 

在随后的对话框中选择测试用例#338,自动生成测试用例代码,如此的生成的测试用例就直接可以执行,生活的代码如下所示:


Step 6 - 添加验证步骤

      我们在MTLM中创建的测试用例和录制的手工执行步骤,对于一个真正的自动化测试用例而言,实际还缺少了很重要的一步操作,那就是验证。因为之前我们测试用例是手工测试,在执行时候实际上是靠测试人员去验证了执行的结果,然后判断和标识每一步执行结果是Pass还是Fail。所以现在生成的CodeUI测试用例虽然能够运行,但缺少一个对结果验证的步骤,也就是验证1+9的结果是否=10 ?,再具体到计算器本身,就是要验证计算器显示窗口中的内容是否为10,如下图所示。

      添加验证操作的步骤很简单,鼠标右键点击测试用例代码中需要添加验证的代码行,在上下文菜单中选择"Generate Code for Coded UI Test" –> "Use Coded UI Test Builder...",这时在整个桌面窗口的右下角会出现一个小窗口,如下图所示:

      把第三个"Crosshair"按钮拖放到计算器10的显示位置,在"Coded UI Test Builder"对话框框中右键DisplayText = 10,执行"Add Assertion...",如下图所示。

      最后选择生成代码按钮并制定验证方法的名称,工具会自动生成一个验证DisplayText == 10的代码,一个有步骤有验证的Coded UI测试用例就这样完成了,够强大吧,呵呵!

      这里仅是介绍了Coded UI Test的一些使用操作,应该只算是些皮毛。对于Coded UI来说,真正强大应该是其背后的自动化界面操作支持类库,它能够真正完成对界面的操作,并允许用户在其上编写程序代码(C#、VB)开发测试用例。

      总算是把文章传上去了,不知道是网络的问题,还是优快云博客系统出了问题,上传图片的操作特别慢而且还经常出现错误,元旦写篇博客也着实不易啊!今天报道说北京下了暴雪,明天是元旦节后第一天,估计上班的朋友会更不容易。不过瑞雪兆丰年,祝大家2009年好运气!

 

参考资料:

  1. Channel9 CodedUI Test and Playback
  2. Understanding the code generated by “Coded UI Test” – Part 1
  3. Understanding the code generated by “Coded UI Test” – Part 2
  4. Visual Studio UI Automation Testing (includes CodedUI) Forum
  5. Junhua Chen's Blog
  6. Best practice for coded UI tests 
  7. [Video] VSX211:VSTS 2010 Team Test
  8. How does "Coded UI test" finds a control?
  9. MSDN : Testing the User Interface with Automated UI tests
沧小海深入剖析xilinx的GTP/GTX核,掌握高速串行收发机制——第六章 接收端结构及功能说明 总目录在这哦~ https://blog.youkuaiyun.com/z123canghai/article/details/107700878 第六章 接收端结构及功能说明 子目录 6.1 RX的模拟前端 6.2 RX的OOB信号 6.3 RX的均衡器 6.4 RX的CDR 时钟数据恢复 6.5 RX时钟输出结构 6.6 RX 的极性控制 6.7 RX 的PRBS 6.8 Rx字节、字的对齐功能 6.9 Rx接收弹性缓冲区 6.10 Rx的时钟纠正 6.11 Rx接收通道绑定 6... 阅读详情

相关推荐

AMG8833红外测温实战:在STM32F103上做个简易人体感应与温度报警器

本文详细介绍了如何在STM32F103上使用AMG8833红外测温传感器构建人体感应与温度报警系统。通过硬件连接方案、驱动代码开发、人体检测算法实现及报警系统设计,展示了如何利用8x8红外温度矩阵实现智能监测功能。文章包含实用的初始化流程、温度数据读取优化和低功耗策略,为创客项目提供完整解决方案。

weixin_33725239的博客 392

使用vs2010的Coded UI Test实现数据驱动的用户自动登录测试

在vs中有三种方式可以创建自动化测试。其中vs为我们提供两种方式,还有一种方式是自己手写代码。通过添加Coded UI测试项的时候可以看出来,如图:   如果添加的时候取消它提供方式,日后也可以在测试菜单下选择代码生成方式,同样可以生成代码。如图:   l 使用编码的UI测试生成器生成代码。选择这种方式后,就会显示显示编码的UI测试生成器:   点击“开始录制”图标,就会开始录制我

Alan_Wdd的专栏 1893

2022-04-06 RK3566 上调试百兆以太网卡YT8512C 调试记录

一、原理图 二、dts &gmac1_clkin{ clock-frequency = <50000000>; status = "okay"; }; &gmac1 { phy-mode = "rmii"; clock_in_out = "input"; snps,reset-gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; snps,reset-active-low; sn...

海月汐辰 1万+

VS 2010 测试功能学习(四) - Test Impact Analysis (TIA)

Test Impact Analysis是Visual Studio 2010测试部分新增加的一个功能,我也不知道该如何翻译其中文名,那就简单点儿,按字面翻译为“测试影响分析”,以下简称为TIA。那么啥是TIA呢? 简单地说,就是根据产品代码变化自动分析出受影响的测试用例,它既适用于自动测试用例,也是适用于手动测试用例。 注意:目前Test Impact Analysis只针对Managed C...

weixin_34138377的博客 227

电子货架标签应用浅析(ESL)

​【 关注与分享,是对原创最大的鼓励 】 年底了,会断续介绍几个主要的BLE的应用及市场情况,这篇文章介绍的是电子货架标签, ESL (Electronic Shelf Label)。 文章将从应用简介,市场规模,产业链,头部玩家及系统框架进行介绍。只对技术感兴趣的可以直接拉到底。 ESL简介 ESL,是一种显示产品,其主要是替代传统的纸质标签,应用于大型商超,...

iotthings的博客 4691

postgresql 数据库 timescaledb 函数time_bucket_gapfill()报错解决及更换 license

最近在工作中使用postgresql 和 timescaledb 的time_bucket_gapfill()函数 报错,让更换license,在网上找了一大圈,没有找到,最后解决了这个问题,这篇文章记录我的解决办法查看timescaledb.license参数命令:show timescaledb.license;修改命令: 结果不行,报错如下:lter system set timescaledb.license=‘timescale’;那只能换包了如果出现上面那种情况,那我们只能先从官网上下载带 '

yang_z_1的博客 3249

Microsoft Coded UI测试技术及其应用

在软件开发过程中,用户界面(UI)测试是一个关键环节,它确保了应用程序的界面能够按预期工作。微软Coded UI 测试技术是一套强大的工具,它为 Windows 应用程序和微软的多种 UI 技术提供了自动化支持。本文将探讨Coded UI 测试技术的特点、优势以及在实际应用中的一些考虑因素。

伤心的辣条 1057

某手 v8.x 签名计算方法(二) sig和__NS_sig3

一、目标 今天的目标是 sig和__NS_sig3,咱们抓个包先 二、步骤 sig目测像是MD5 先jadx搜索 sig= ,没有找到结果。 再试试 sig ,晕倒 6k多个结果,突然灵光一闪,这些参数,必然是要加入到 Map中,那么我们搜索 "sig" 应该就是这个 CPU.getClock,Hook之 var signCls = Java.use('com.yxcorp.xxx.util.CPU'); signCls.getClock.implementation = function(a,b,c

fenfei331的博客 2427

【学习】CodeUi

关于这个,博客园里有很多初级的教程,我是看这篇: http://www.cnblogs.com/luminji/archive/2010/11/18/1880452.html初学的可以跟着这个做一边。 对于CODEUI,我研究的时间不久,但是对于这个,只要是个做过开发的DEV,应该说难不倒的。我就说下我的感想: 第一点: 我觉得说最重要的东西:(用黄色笔划出来的东东,这个文件...

weixin_33819479的博客 659

MGC3130 3D手势识别传感器原理图设计,已量产(交互传感器)

最近在落地一款互动艺术装置的控制模块,选了 Microchip 的 MGC3130 做核心 —— 这颗芯片算是 GestIC® 近场传感技术的 “熟面孔” 了,把 3D 手势识别、运动跟踪的信号处理都集成在一颗芯片里,0-10cm 的检测距离刚好适配桌面级互动场景,挥挥手就能控设备的体验,放在艺术装置里确实很出效果。今天扒一下实际跑通的原理图,聊聊每个模块的设计思路。

不脱发的程序猿 368

.net core 下的PostgreSQL 异常排查—— Exception while reading from stream (0x80004005)

最近以PostgreSQL为存储介质,实现了分布式缓存的一个组件开发,在经过开发环境的测试后,顺利推送到产品组的手里,经过开发环境的验证后,终于发布到测试环境了,但问题来了,产品组反应频繁出现访问异常,返回的信息大致是:Exception while reading from stream … (0x80004005) ????欢迎点赞 :???? 收藏 ⭐留言 ???? 如有错误敬请指正,赐人玫瑰,手留余香! ????本文作者:由webmote 原创,首发于 【优快云】 ????作者格言: 生活在

网尘的技术专栏 5841

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

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

Jeffrey Zhou 的专栏 4539

《拉依达的嵌入式\驱动面试宝典》—计算机硬件篇(一)

《拉依达的嵌入式\驱动面试宝典》 整合了所有我认为可能遇到的技术面试问题。所有问题及其答案均是我个人学习后查阅资料总结,每个回答都做了仔细的分析,在嵌入式及其驱动面试相关问题解析做到全网独一无二。学习或者转行到嵌入式、驱动开发领域学习的不二之选

拉依达不拉跨的博客 767

VS2010测试方面的文章-重点

http://www.cnblogs.com/shanyou/archive/2010/03/21/1691202.html1.VS 2010 测试功能学习(四) - Test Impact Analysis[测试影响分析]2.VS 2010 测试功能学习(七) - RnP与Coded UI自动化测试[测试用例转UI测试代码]3. VS 2010 测试功能学习(九) - 数据驱动的手工...

144

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

如何使用Coded UI Test对Webpage进行自动化测试

在Visual Studio中,Coded UI Test已经不是什么新特性了,较早版本的Visual Studio中就已经有这个东东了。它主要用来帮助自动化测试工程师和开发人员确保程序在UI方面没有任何问题。这其中包含了丰富的内容。在这之前,我一直对自动化测试的工作以及什么是自动化测试一知半解,具备自动化测试编码能力的工程师所掌握的技能在某种程度上要远超程序开发人员和设计人员,对于这一点,我早有耳闻!但直到亲身体验我才确信,测试工作远没有我们想象得那么简单。开发人员或许花上数小时就可以完成项目中某一个独立

m0_64706429的博客 1539

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Android笔记 codeUI与html UI

code UI:使用代码编写控件并将其显示到界面,优势:便于控件大小的设置

积跬步 至千里 692

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

如何实现WinApp的UI自动化测试?自动化工具如何选择人?

WinApp(WindowsAPP)是运行在Windows操作系统上的应用程序,通常会提供一个可视的界面,用于和用户交互。例如运行在Windows系统上的Microsoft Office、PyCharm、Visual Studio Code、Chrome,都属于WinApp。常见的WinApp,其扩展名基本都是*.exe,运行后也都会有一个漂亮、易用的UI界面,本章就详细介绍如何通过脚本实现WinApp的UI自动化测试。

测试界的彭于晏的博客 317

干货丨如何实现WinApp的UI自动化测试?自动化工具如何选择人?

Windows系统下开发GUI应用程序有很多方式,常见有基于C++的Qt、MFC、WTL、wxWidgets、DirectUI、Htmlayout,基于C#的Winform、WPF,基于Chromium和Node.js的Electron,基于Java的AWT、Swing,基于Pascal的Delphi,基于Go语言的walk,每种技术都有自己的亮点。WinApp测试涉及面非常广,大方向上可以从安装与卸载、升级更新、UI界面、业务功能、性能、交叉事件、兼容性、安全性、硬件环境、异常情况几个方面开展测试。

2301_77645750的博客 255

Coded UI 自动化测试初步研究

提到Windows的UI自动化,不得不能不说Coded UI测试。Coded UI测试是微软在VS2010里面推出的一个新功能,概念其实也不是很新,就是通过录制回放的功能来尽可能的简化Windows的UI自动化。   个人的理解,Coded UI的底层仍然是基于Windows TestAutomation SDK的Code,它的最大的作用就是把Code封...

weixin_33692284的博客 222

自动化测试框架之Coded UI

软件:VS2010 | 编程语言:C# | 框架:Coded UI | 目的:提高测试效率、提高测试稳定性 什么是Coded UI Coded UI Test是Visual Studio 2010对于Testing Project(测试工程)提供的关于UI自动化测试的框架,支持Win32,Web,WPF等UI的自动化测试,是一个非常强大的测试工具,...

weixin_30691871的博客 415

使用Coded UI进行UI的自动化测试

介绍  曾经有一段时间,人们习惯于在MS Excel里面编写单元测试用例,然后开发人员就按照单元测试用例一步一步的来实现用例。这通常是很耗时的漫长的过程,尤其是如果应用很大或者UI很复杂的话。  这一套单元测试的执行过程常常成为瓶颈,因为任何代码修改都会带来手工执行大量单元测试,以确保新的修改没有破坏原有功能。  如今是个快节奏时代,人们希望工作能够无需...

weixin_34124651的博客 367

初学Coded UI小结

最近在学习Coded UI。在公司使用Visual Studio 2012,在自己的电脑上使用的是Visual Studio 2010。我是照着msdn上的教程学习的,下面是我学习之后的小结。 这个小结非常初步,并不值得他人参考,写这个小结只是作为自学的一个步骤。 http://msdn.microsoft.com/en-us/library/dd286726(v=vs.100).aspx ...

weixin_33770878的博客 326

codeui:自定义VS Code界面色彩,优化你的编程体验

codeui:自定义VS Code界面色彩,优化你的编程体验 项目介绍 在现代软件开发中,Visual Studio Code(VS Code)已经成为最受欢迎的代码编辑器之一。它不仅具备强大的功能,还允许用户通过扩展来进一步定制其工作环境。codeui 是一款专门为 VS Code 设计的扩展工具,它允许用户自定义编辑器的颜色主题,以满足个人喜好和视觉需求。通过实时预览调整的颜色设置,用户可以轻...

gitblog_00271的博客 475

[Microsoft Test Manager]CodeUI初探

  开发环境: Widnows8 Microsoft Visual Studio Ultimate 2012   1. 新建一个 Windows Forms Application Figue1 Create a new Windows Forms Application     2. 设计界面如(Figue2)所示 Figue2 Form UI   界面很简单,...

weixin_34395205的博客 295

软件工程(2019)第二次作业

一、选择开发工具 (1)工具下载: 我选择的开发工具是visual studio 2019,下载地址为:https://visualstudio.microsoft.com/zh-hans/downloads/,我选择的为社区版。 (2)安装: i.双击打开安装文件。 ii.选择安装组件。 ii.选择安装位置并点击安装。 iv.进入visual studio 2019界面。 二...

dengmiao5897的博客 212
上一篇: Visual Studio 2010 建模学习(七) - 资源大杂烩
下一篇: 祝福小怡帆顺利手术,早日康复!
quicknet
博客等级 码龄25年 398粉丝 117原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值