通常情况下,我们要与不同的数据值一起重复一个测试。这个“数据驱动”在Coded UI Test中非常容易的。在本例子中,我们创建了一个Coded UI Test,以验证在计算器的两个数字增加。现在,让我们看看如何能够把一个简单的CodedUI Test转化为数据驱动测试。

1、首先创建Coded UI Test (Create the Coded UI Test)(请参考上一个实例);

然后创建数据集。Coded UI Test支持多个数据源。该数据集可以定义在一个CSV(逗号分隔值)文件,一个Excel工作表,XML文件,数据库表或TFS上的一个测试用例。在例子中,我们将使用与下面的数据CSV文件(TestData.csv)。

Add1

Add2

Sum

8

2

10

6

2

8

4

2

6

l   创建TestData.csv文件

“CSV”,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件,可以用记事本打开。打开Excel,并复制上面数据到Excel中,选择菜单|文件|另存为,选择CSV格式,即可创建CSV文件。

对于每一段录制的操作,VSTS都可以把它抽象成一个方法,它会把这些操作以静态方法的形式存放在UIMap.Designer.cs的类里面。可以对这些方法做任意的修改,也可以把需要输入的方法增加一个输入的参数。

2、添加数据源到Coded UI Test(Add the Data Source binding in Coded UI Test)。

1)打开VS菜单|Test View-> Windows -> Test View,如图1所示。

图1  Coded UI Test属性中创建数据连接

3)通过上面操作,打开新的数据源向导界面,创建数据源。选择CSV File—>单击Next,如图2所示。

图2  新建数据源向导

 4)选择步骤一建立的TestData.csv文件,测试数据源向导预览,单击“Finish”,该csv数据文件加入到该项目中。如图3所示。

图3  新建数据源向导文件数据预览

新文件数据文件属性自动添加到Coded UI Test的CodedUITest1.cs文件中。文件属性如下:

[DeploymentItem("TestProject\\TestData.csv"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\TestData.csv", "TestData#csv", DataAccessMethod.Sequential), TestMethod]

3、在Coded UI Test中使用数据。打开Coded UI Test文件(CodedUITest1.cs)添加代码片段。

代码片段如下:

this.UIMap.计算器Window.Item8Window.Item8Button.SearchProperties[WinProperties.Button.Name] =

TestContext.DataRow["Add1"].ToString();

这样的修改后,当运行测试的时候会第一次运行单击按钮(计算器)动作。程序员会搜索CSV file,在其中挑选适合的值。

注意:测试的对象必须包含被处理的所有数据,并且数据源必须存在。可以参考的列名(例如:Add1”)。

同样的,添加下面代码片段,它修改了第二次点击计算器。

代码片段如下:

this.UIMap.计算器Window.Item2Window.Item2Button.SearchProperties[WinProperties.Button.Name] =

TestContext.DataRow["Add2"].ToString();

新增this.UIMap.AssertSum()方法,调用下面的代码:

this.UIMap.AssertSumExpectedValues.ItemEditText = TestContext.DataRow["Sum"].ToString();

现在可以进行验证,从CSV文件获取数据进行自动化测试结果。

4、运行数据驱动测试。单击右键弹出菜单,选择“Run Tests”,运行Coded UI Test方法进行自动化测试。如图4所示。

图4  运行数据驱动测试

该测试运行时候将执行3次(如需要多次迭代,根据数据源的数据行)。测试结果将显示每个迭代的细节。如图5所示。

图5  数据驱动测试结果信息

至此,我们已经看到测试实例,了解了如何创建一个数据驱动测试。VSTS自动生成的UIMap.Designer.cs的UIMap类,里面的方法都可以重用,稍加修改就能达到比较好的测试效果(同时也需要对这个类的方法进行整理)。

如果测试用例是MTLM工具创建,还有一个更简单的方法,使其数据驱动。有关MTLM结合的工作流程将在以后中的介绍。

在Visual Studio 2010中实现数据驱动Coded UI Tests相关推荐

  1. 在Visual Studio 2010中创建多项目(解决方案)模板【三】

    前文回顾: 在Visual Studio 2010中创建多项目(解决方案)模板[一]:多项目解决方案模板的创建 在Visual Studio 2010中创建多项目(解决方案)模板[二]:Templat ...

  2. 一起谈.NET技术,Visual Studio 2010 中的代码约定设置

    软件约定称为代码约定,通过这一约定可以表示代码正常工作所需的正式条件. 如果方法未按预期收到数据或生成的数据不符合预期的后置条件,代码约定将导致代码引发异常. 有关前置条件和后置条件的概述,您可能需要 ...

  3. 如何在Visual Studio 2010中使用CppUTest建立TDD的Code Kata的环境

    CppUTest 是一个功能全面的测试框架,是为了支持在多种操作系统上开发嵌入式软件而特别设计的.CppUTest的宏被设计成不需要了解C++也可以写测试用例.这使得C程序员更容易用这个测试框架. 那 ...

  4. VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件

    VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件 目录 问题探究 图文教程 问题探究 使用Visual Studio ...

  5. Visual Studio 2010中C++项目升级指南

    如何升级? Visual Studio 2010支持来自VC6.Visual Studio 2002.Visual Studio 2003.Visual Studio 2005和Visual Stud ...

  6. 在Visual Studio 2010 中使用菱形向导对窗口进行布局

    "一个移动机器人,需要花大量的时间来进行运算,才可以避开环境中的简单的障碍物.人类也一样,只不过他们从未意识到罢了-直到光明消失在地平线.伴随着痛苦,他们才真正体会到需要进行的运算有多少.& ...

  7. Visual Studio 2010 中JS注释制作

    Visual Studio 2010中的js注释已经很强大了,但怎么才能和调用c#的方法一样容易呢?怎样才能让每个参数都有注释说明呢?底下就是想要的答案. 先上图,如图所示: 其中红色的办法为注释效果 ...

  8. 图解Visual Studio 2010中的UML建模功能

    Visual Studio 2010在架构和项目管理方面的功能增加让人眼前一亮,之前曾详细介绍过Visual Studio 2010新增的架构工具,包括通过可视化技术DGML提供直观的图表,依赖图,继 ...

  9. VB.net:使用Visual Studio 2010中的VB.net语言工具箱DataGridView调用SQL数据库Database的表格文件

    VB.net:使用Visual Studio 2010中的VB.net语言工具箱DataGridView调用SQL数据库Database的表格文件 目录 问题探究 图文教程 问题探究 使用Visual ...

最新文章

  1. p1口输入输出实验c语言程序,51单片机P1口输入输出实验实验报告.doc
  2. 用户'NT AUTHORITY\NETWORK SERVICE' 登录失败
  3. linux shell 文件 第一行插入字符串
  4. 【SDOI2017】天才黑客
  5. python绘图教程_pyplot绘图教程
  6. 二、【SAP-PM模块】PM模块(含服务采购)组织架构
  7. java报错怎么看_IGV 哐当就不能用了,除了换台电脑还能怎么办?
  8. 关于response格式转换
  9. Linux的实际操作:用户管理(查看用户和组的配置文件/etc/passwd /etc/group /etc/shadow)
  10. DDD(领域驱动设计)系列之一-DomainPrimitive
  11. ps制作20种特效文字_如何使用AE制作文字破碎动画?制作ae破碎文字特效教程分享...
  12. spark union 会引起shuffle吗_脑鸣不是耳鸣 会引起听力下降吗?
  13. 社区拼团赛道的突然火爆,究竟是受何因素影响?
  14. 二端口输入阻抗和输出阻抗
  15. Matlab 中类的定义
  16. Bazinga(HDU5510+KMP)
  17. 图像处理工具包实现应用图像效果
  18. 老男孩Day9作业:高级FTP
  19. html5中插入样式表方法,如何插入css样式?
  20. 想知道添加水印的软件哪个好?这2款软件简单又实用

热门文章

  1. python 零基础学习之路-01 计算机硬件
  2. 并发编程之多线程篇之四
  3. Error 错误: 找不到或无法加载主类
  4. 【二分查找】及相关问题
  5. subline Text3
  6. [LeetCode] Remove Element
  7. WIN7下回收站不小心删除的文件怎么恢复,免费数据恢复软件下载
  8. (笔记)电路设计(三)之0欧姆电阻、磁珠、电感的应用
  9. MySQL中的编码方式错误
  10. 解决springboot读取jar包中文件的问题