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控件的功能测试。它会检查包括用户界面在内的整个应用程序的功能。它也用于自动化现有的手动测试。

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编辑器进行编辑 | 否 |
- UIMap.Designer.cs:设计器包含UIMap的代码视图。当测试人员录制某些UI交互或手动向UIMap添加对象时,它会被生成。
- 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 提供了两种不同的方式来执行应用程序的测试。
- Coded UI 录制和回放 或
- Coded UI 手动编码
您需要按照以下步骤执行Coded UI测试,
- 创建CodedUI测试项目
- 添加Coded UI测试文件
- 录制一系列操作
- 验证UI字段(如文本框)中的值
- 查看生成的测试代码
- 添加更多操作和断言
- 编辑测试活动和断言的详细信息
- 运行测试
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 对比
摘要
- 通过应用程序用户界面(UI)驱动应用程序的自动化测试称为CodedUI测试(CUIT)。
- Coded UI测试自动化框架支持Web Services、Window Phone应用程序、Web应用程序等技术。
- Coded UI Testing允许开发人员和软件测试人员使用相同的工具/语言进行有效协作
- 使用CodedUI时创建的文件内容包括
- UIMap.Designer.cs
- UIMap.cs
- CodedUITest1.cs
- UIMap.uitest