Coded UI 测试自动化框架教程

典型的软件自动化测试需要像Selenium和QTP这样的自动化工具。Coded UI与这些工具类似,对于功能测试特别有用。

Coded UI Test (CUIT) 使用Visual Studio IDE编写脚本,因为录制可以使用Visual Studio进行。

什么是Coded UI Test?

Coded UI Test (CUIT) 是一种通过应用程序的用户界面(UI)来驱动应用程序的自动化测试。因此,得名Coded UI Test (CUIT)。此测试涉及UI控件的功能测试。它会检查包括用户界面在内的整个应用程序的功能。它也用于自动化现有的手动测试。

Coded UI Test

UI 测试架构

Coded UI Test 功能

Coded UI 功能包括

  • 功能测试
  • 生成VB/C#代码
  • 与ALM集成
  • 在实验室中或作为构建的一部分进行构建、部署和测试
  • 本地、远程运行、数据收集
  • 丰富的可扩展性
  • 意图感知录制和弹性回放

Coded UI Test (CUIT) 支持的技术

通过Coded UI,可以轻松测试具有UI(用户界面)的应用程序。该应用程序可以是基于窗口的,也可以是基于Web的。

Coded UI 支持如

  • 基于窗口的桌面应用程序
  • Web Services (SOAP, ASPX, etc.)
  • Window Phone 应用程序
  • WPF (Windows Presentation Foundation)
  • Web 应用程序 (HTML, Silverlight, HTML5)

为什么选择Coded UI进行测试自动化

Coded UI 在测试自动化中备受青睐的原因

  • 开发人员和软件测试人员可以使用相同的工具/语言进行有效协作。
  • 它同时支持Web和Windows项目。
  • Coded UI中的元素识别机制是一个很棒的功能。此外,它还支持同步
  • 回放引擎支持“WaitForControlExist”、“WaitForReadyLevel”等功能
  • 借助“测试代理”,可以在远程机器上运行自动化测试
  • 自动化团队可以使用Coded UI和分层框架开发复杂的测试
  • 软件测试人员可以有效地利用log4net.dll捕获异常并记录结果
  • Coded UI 工具支持描述性编程。它允许软件测试人员根据对象属性自动化场景
  • 它支持AJAX控件。

如何创建Coded UI Tests (CUIT)

创建Coded UI Tests可以通过以下方式进行。

  • 从现有操作录制生成(从手动测试录制转换)
  • 从头开始创建新的Coded UI Test
  • 从头开始编写代码

Coded UI Test 的内容

创建Coded UI Test时,Coded UI Test Builder会创建一个Map。这包括被测UI、测试方法、参数、断言等。对于每个测试,它还会创建一个类文件。

文件 内容 可编辑
UIMap.Designer.cs 声明部分 UIMap 类 方法 属性
UIMap.cs UIMap 类 (部分)
CodedUITest1.cs CodeUITest1 类 方法 属性
UIMap.uitest 测试UI的XML映射。它仅通过UI Map编辑器进行编辑
  1. UIMap.Designer.cs:设计器包含UIMap的代码视图。当测试人员录制某些UI交互或手动向UIMap添加对象时,它会被生成。
  2. UIMap.cs:对UIMap进行的任何修改或自定义都存储在此文件中。最初,此文件将为空,以后可以填充。如果直接修改UIMap.designer.cs文件,请确保它未被录制,否则所有更改都将丢失。
  • CodedUITest1.cs:此文件包含Coded UI测试类、测试方法、断言调用和方法调用。所有断言和方法默认都从此文件调用。
  • UIMap.uitest:它是UIMap类的XML表示。它包括窗口、控件、属性、方法、操作和断言。它仅通过UI Map编辑器进行编辑

在此Coded UI教程的下一部分,我们将学习如何执行Coded UI自动化测试。

如何执行Coded UI Test

Coded UI 提供了两种不同的方式来执行应用程序的测试。

  1. Coded UI 录制和回放 或
  2. Coded UI 手动编码

您需要按照以下步骤执行Coded UI测试,

  1. 创建CodedUI测试项目
  2. 添加Coded UI测试文件
  3. 录制一系列操作
  4. 验证UI字段(如文本框)中的值
  5. 查看生成的测试代码
  6. 添加更多操作和断言
  7. 编辑测试活动和断言的详细信息
  8. 运行测试

Coded UI Test (CUIT) 的最佳实践

以下是Coded UI自动化测试框架的一些最佳实践

  • 尽可能使用Coded UI自动化测试生成器
  • 尽量不要直接修改UIMap.designer.cs文件。否则,您对文件所做的更改将被覆盖
  • 将测试创建为录制方法的序列
  • 每个录制方法应作用于单个页面、表单或对话框。另外,为每个新的表单、页面或对话框创建一个新的测试方法
  • 创建方法时,请使用有意义的方法名,而不是默认名称。有意义的名称有助于识别方法的目的
  • 如果可能,将每个录制方法限制在10个操作以内。这种方法可以使在UI更改时更容易替换方法。
  • 要创建断言,请使用CodedUI测试生成器。它会自动将断言方法添加到UIMap.Designer.cs文件中。
  • 如果用户界面发生变化,请重新录制测试方法/断言方法,或重新录制现有测试方法中受影响的部分。
  • 如果您直接使用API进行编码,请使用UIMap.Designer.cs文件中创建的类的所有方法和属性。这些类将使您的工作更可靠、更容易,并帮助您提高生产力。

Coded UI Test vs Selenium vs QTP 对比

下面是Coded UI vs Selenium vs QTP的比较表

  • Selenium不支持任何WPF以及Windows应用程序
  • Visual Studio CodedUI支持Windows应用商店应用程序测试以及Windows Phone应用程序测试。没有其他工具支持这一点。
  • Test Complete支持Windows应用程序,但需要安装插件。

Coded UI Test Vs Selenium Vs QTP

Coded UI Test vs Selenium vs QTP 对比

摘要

  • 通过应用程序用户界面(UI)驱动应用程序的自动化测试称为CodedUI测试(CUIT)。
  • Coded UI测试自动化框架支持Web Services、Window Phone应用程序、Web应用程序等技术。
  • Coded UI Testing允许开发人员和软件测试人员使用相同的工具/语言进行有效协作
  • 使用CodedUI时创建的文件内容包括
  • UIMap.Designer.cs
  • UIMap.cs
  • CodedUITest1.cs
  • UIMap.uitest