使用 Coded UI 进行 UI 的自动化测试 已翻译 100%

oschina 投递于 2014/07/14 10:51 (共 11 段, 翻译完成于 07-25)
阅读 11117
收藏 44
4
加载中

介绍

曾经有一段时间,人们习惯于在MS Excel里面编写单元测试用例,然后开发人员就按照单元测试用例一步一步的来实现用例。这通常是很耗时的漫长的过程,尤其是如果应用很大或者UI很复杂的话。

这一套单元测试的执行过程常常成为瓶颈,因为任何代码修改都会带来手工执行大量单元测试,以确保新的修改没有破坏原有功能。

lwei
翻译于 2014/07/14 14:35
3

如今是个快节奏时代,人们希望工作能够无需人工介入、自动化的快速完成。每个人都喜欢执行一个命令就能把工作搞定,而且在执行期间不需要人工介入。需要做的仅仅是检查一下最终的输出结果。

当这个世界正在迈向自动化时,自动化测试也不甘落后,不论是在功能测试方面还是UI测试方面。每天我们都能听说自动化测试方面涌现出的新软件。

本文提供了一些信息给那些想用Coded UI自动测试框架来进行应用界面自动化的.Net开发者。

lwei
翻译于 2014/07/14 15:19
1

什么是Coded UI?

最近我一直在寻找一个自动化的用户接口测试的解决方案。用户接口测试需要用户多次进行手工输入操作,这是一个既枯燥又费时的过程。因此,我想寻找一种更智能的自动化UI测试的方案,这种UI测试在不需要人工干预下,能够被保存,记录并提供支持 ,快速测试代码的改变。

Coded UI 采用用户接口来驱动应用的进行自动化测试。这些测试包括UI控制的功能性测试。他们使你可以验证整个应用的功能是否正确,其中包括了用户接口。Coded UI尤其适合用于用户接口中存在校验或者其它的登录方式的测试,比如网页。Coded UI也可以用于人工测试用例的自动化。

艾柯
翻译于 2014/07/16 10:24
1

Coded UI 测试帮助用户测试应用程序的用户接口。这些测试允许用户验证应用程序的功能。Coded UI 多数时间用于帮助验证在UI层本身的有效逻辑。它能够验证值对用户接口的控制的正确性。

其它方案

市场有许多自动化用户接口的方案,比如HP的QuickTest Professional, IBM Rational Functional Tester. 其它著名的,易于使用的开源工具解决用户接口自动化问题的有Selenium,也能够记录测试,需要的时候回放。市场上还有来自Microsoft的也能不需要太多努力做同样的事。用Visual Studio Microsoft还有Coded UI的方案用于单元测试。

Sophietyl
翻译于 2014/07/22 08:49
1

Coded UI适合在哪儿用?

大多数安装了Visual Studio的开发者都喜欢在Visual Studio的环境里进行单元测试,而不是使用第三方工具。由微软提供的Coded UI,在Visual Studio环境里可谓上手即用。在开发者的机器上无需另外安装任何东西。一旦你安装了Visual Studio的Premium版或者Ultimate版,你就同时也安装好了Coded UI。

Coded UI可用性

为了使用Coded UI,需要安装Visual Studio 2010/2012/2013的Premium版或者Ultimate版。

lwei
翻译于 2014/07/14 15:50
1

Coded UI 测试的组成

Coded UI 测试的组成容易理解。它可分成下列文件:

UIMap.uitest

这个文件是UIMap类的XML表示。UIMap类包括视窗,控件,属性,方法,断言和动作。

UIMap.cs

对UIMap的自定义部分都存在这文件里。如果修改直接存在UIMap.designer.vb文件的话,那些修改都会在记录结束后丢失,因为这个文件重新创建了。

给每个在测应用程序中的每个模块创建一个独立的UIMap文件。

UIMap.Designer.cs

这是部分类表达各种类。这各种类是给多样的控件和他们的范围,属性,方法的类。

提示:不要直接修改 UIMap.Designer.cs。加入你这样做,这个修改会被覆盖掉。

CodedUITest.cs

这类表示的实际的CodeUI测试类,方法调用,和断言调用,所有的方法和断言默认都是从UIMap.Designer.cs文件调用的。这类有具有【codedUITest]属性TestClass和包含具有【TestMethod]属性的多种方法。

Sophietyl
翻译于 2014/07/24 00:06
2

Coded UI的特性/好处

  • 进行用户界面测试的同时进行校验.

  • 生成VB.Net/C#代码.

  • 测试用例可以被记录和重放.

  • 集成了ALM Story

    • 能够作为每日构建的一部分来运行.

  • 根据需要进行高级扩展.

  • 和Visual Studio集成在一起,所以无需单独购买许可.

  • Coded UI对Web和Windows应用同样适用.

  • 著名的Microsoft支持.

创建Coded UI测试

Coded UI测试可以用下列方式创建

  • 使用MTM进行快速自动构建

  • 从现有的记录(从手动测试中记录下来的操作)中创建Coded UI

  • 在Coded UI Test Builder创建的底稿的基础上创建一个新的Coded UI测试.

  • 自己写Coded UI.

这个白皮书的范围仅限于“在Coded UI Test Builder创建的底稿之上创建一个新的Coded UI测试”。

小贴士: 尽量使用Coded UI Test Builder。

Coded UI Test Builder

每一个Coded UI测试的生成都需要遵从下列步骤.

  • 记录/停止/暂停

  • 编辑记录下来的步骤

  • 添加断言

  • 生成代码

创建Coded UI 测试

创建新的Coded UI 项目

要开始使用Coded UI,首先我们需要创建一个测试项目,用来保存所有Coded UI测试。创建一个新的Coded UI项目包含下列步骤

  • 打开Visual Studio 2012

  • 选择 File > New > Project

  • 选择需要的语言模板 (C# or VB.Net). 我们选择了C#.

  • 选择Coded UI Project

  • 输入一个名字

  • 点击 OK 按钮

lwei
翻译于 2014/07/16 11:58
1

添加 Coded UI 测试

Visual Studio默认配置为创建Coded UI 测试使用 "Generate a new Coded UI Test from scratch using Coded UI Test Builder"

提示在测试的应用程序中,当你创建UI控件时尽量使用有意义的名称,从而对于自动生成的控件显得更加有意义和可用。

一旦 Coded UI 测试工程创建完成,将会自动打开生成Coded UI 测试代码的对话框,请给出以下选项的设置。

  • 记录操作,编辑UI地图或添加断言

  • 使用一个已经存在的操作记录

默认情况下 选择记录操作,编辑UI地图或添加断言,无需做任何操作,然后点击 "ok"

土渣渣
翻译于 2014/07/23 09:04
1

Coded UI Test Builder

选择了上述选项后,Coded UI Test Builder就会被打开,同时Visual Studio窗口被最小化。这意味着我们已经为记录操作做好了准备。

正如之前描述的,Coded UI Test Builder基于下列4个操作来做记录

  1. Record Steps

  2. Update or Delete Steps

  3. Verify Results (Add Assertions)

  4. Generate Code

小贴士: 如果用户界面(UI)变化了,就重新记录测试方法或断言方法,或者重新记录一个既有测试方法中受影响的部分。

记录一个序列的操作.

记录一个操作主要需要下列几步.

  • Start Recording, 通过选择Record按钮即可.

  • Pause Recording, 用来处理记录过程中的其它操作,即Generate Code.

  • Edit/Delete 操作, 以防错误的操作被记录。

  • Generate code为记录下来的操作创建编号。会给每一个记录下来的操作都生成编号。

  • Add Assertions 用来校验结果。

小贴士: 创建断言最好使用Coded UI Test Builder,因为它会在UIMap.Designer.cs文件中自动添加一个断言方法。

lwei
翻译于 2014/07/15 17:26
1

为记录动作做计划

任何事情的成功都取决于它计划得有多好。较好地计划最大限度保证了任务成功完成。这样总是比较好,在开始记录动作之前,我们计划好所有的所有要计划的步骤。

这里我们将要使用应用程序Windows计算器来记录步骤。我们要自动地加和减两个数字。在记录加和减两个数字的时候,下面的步骤将会用到。

。点击“开始记录”控件

。到开始,点击执行

。在执行窗口,输入”calc"

。停止记录,看记录的步骤

。删除错误的步骤(存在的话)

。产生代码;提供和动作相匹配的名字。比如,打开计算器。

提示:当你产生一个方法时候,使用一个有意义的方法的名字,代替默认名字。

有意义的名字帮助识别方法的木的。

。重新记录,提供第一个数字,暂停记录产生代码

。重新记录,提供操作(加或者减),暂停记录,产生代码

。重新记录,提供第二个数字,暂停记录,产生代码。

。加断言

提示: 产生你的测试作为一系列记录的方法

提示: 可以的时候,限制每个方法小于10个动作。这模块化的方法让UI改变时候容易替换方法。

Sophietyl
翻译于 2014/07/25 00:27
2
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(5)

kis龍
kis龍
http://msdn.microsoft.com/zh-cn/library/dd286681(v=vs.100).aspx
有中文,非要看英文,觉得英文很好吗? 逗逼啊
兰亭一序
翻译得挺不错,感谢。
puras
puras
逗比呀
戴飞侠
戴飞侠
还只能用在.net ,逗比哈!
缪斯的情人
缪斯的情人
呵呵,还要用vs,逗比啊
返回顶部
顶部