QTP/UFT(功能自动化测试)

公司秉承“专注,专业”的执业理念,凭借专业的营销团队及专业的实施服务技能,业已成为诸多知名厂商在上海区域重要的战略合作伙伴。

电话咨询

UFT简介

HP Unified Functional Testing 概述

使用UFT 针对GUI 和API(服务)测试的组合解决方案,可以跨多个应用层(例如前端GUI 层和后端服务层)测试功能。另外,集成的BPT 功能拥有更多的技术和非技术UFT 用户,使您有更大的机会创建全面自动测试。

UFT 通过在您的流程中较早地启动自动功能测试,帮助您缩短了面市时间。您还可以简化工具,缩减培训和许可证成本。

UFT 为您提供了适用于以下主要服务的集成系

  • 应用程序用户界面的GUI 测试。
  • 应用程序服务或API(非GUI)层的API 测试
  • Business Process Testing
  • 与ALM 集成

UFT窗格

UFT 窗口布局自定义—— 概述

可以修改UFT 窗口的布局。例如,可以移动窗格并调整大小,选择显示还是自动隐藏窗格,创建选项卡式窗格,并选择显示哪些工具栏。如果需要,还可以恢复默认布局。

还可以调整UFT 窗口的大小,以适应每个UFT 会话类型(查看/编辑、录制和运行会话)的需要。例如,创建或编辑测试、组件或应用程序区域时,可以用最大化视图显示UFT,而在运行会话期间最小化UFT 窗口。

UFT 会记住每个模式中其主窗口及其所有窗格的大小和位置。UFT 进入某模式时,布局会还原为该模式最近使用的布局。这意味着要根据当前模式以前的布局来最大化、最小化UFT 主窗口及其每个窗格以及调整大小。

自定义或恢复UFT 窗口布局时,UFT 将应用对所有文档类型和会话类型的变更。

活动屏幕窗格

活动屏幕提供应用程序视图,在录制或更新运行会话期间执行相应步骤时会显示。

对于基于Web 的应用程序,活动屏幕使用捕获的页面的实际 HTML。对于基于Windows 的应用程序,活动屏幕捕获页面的“活动”快照,其中包括对象的图像以及对象的属性数据。

可以为每个步骤捕获活动屏幕。而且,活动屏幕上显示的页面可以包含有关该页面上显示的每个对象的详细属性信息,具体取决于录制或更新测试时所设置的活动屏幕捕获选项。

活动屏幕使您可以在完成会话的录制之后将对象值参数化,并在页面中插入几乎任何对象的检查点、方法和输出值,即使应用程序不可用或者在对应于所选对象的测试中没有步骤也如此。

如果在录制(或更新)测试时,UFT 捕获到对象信息,则可以使用活动屏幕将这些对象添加到本地对象存储库。

此部分包括:

  • 活动屏幕捕获设置
  • UFT 插件的活动屏幕设置
  • 活动屏幕维护
  • 提高活动屏幕性能的提示
活动屏幕捕获设置
  • 您可以为活动屏幕捕获指定UFT 捕获和存储对象信息的级别。例如,可以指示UFT 捕获所捕获屏幕上所有测试对象的所有属性,也可以只捕获录制对象和其父对象的属性。
  • 您可以决定活动屏幕中要捕获和保存的信息量。捕获的信息越详细,用多个活动屏幕选项将步骤添加到测试就越容易。但是,捕获的信息越多,录制和编辑时间也就越长。如已完成设计测试,且仅将测试用于测试运行,则删除或减少活动屏幕信息将特别有利于节省磁盘空间。
  • 如果录制后发现活动屏幕中保存的信息不足以满足测试编辑的需求,或者不再需要活动屏幕信息,要减小测试规模,可更改随测试保存的活动屏幕信息量。
UFT 插件的活动屏幕设置

基于Web 的应用程序活动屏幕

  • 该活动屏幕将显示使用Internet Explorer 浏览器控件捕获的HTML 内容,即使是在其他浏览器上运行的步骤。另外,根据设置,活动屏幕可能会捕获在页面上运行各种脚本之前或之后的HTML 页面。因此,活动屏幕中的某些页面可能会与录制或更新运行会话期间出现的页面略有不同,某些属性值可能不同或不可用。例如,某个浏览器支持的属性,在其他浏览器中不受支持。
  • 活动屏幕还以Internet Explorer 格式存储DOM 信息。因此,仅活动屏幕对象数据可用(未在打开的应用程序中显示对象)时,如果插入Web 对象的Object 属性,则即便您是在另一个浏览器中录制对象,UFT 的语句完成功能也会显示Internet Explorer DOM 的可用本机操作和属性。UFT 在页面上存储图像和其他资源的URL 路径,而不是下载图像后与测试一起存储。因此,可能需要提供登录信息才能查看有密码保护的资源。有关在基于Web 的应用程序的活动屏幕中访问密码保护资源的信息。
  • 可以指定所捕获网页的活动屏幕显示条件。例如,可以指定UFT 应加载ActiveX 控件还是Java 小程序。

非基于Web 的应用程序活动屏幕

  • 非基于Web 的应用程序的活动屏幕页是基于应用程序窗口(或其他顶层对象)可见部分的单张位图捕获,其中的上下文相关区域代表活动屏幕中显示的每个对象。
  • 您可以选择是否随测试保存活动屏幕的内容。如果您希望能从活动屏幕直接编辑保存的测试,则将活动屏幕的内容与测试一起保存就尤其有用。随后,如果完成编辑测试之后需要节省磁盘空间,且计划仅将测试用于测试运行,可以保存不带活动屏幕内容的测试。(如果测试中不包含活动屏幕文件,占用的磁盘空间就会明显减少。)
活动屏幕维护

应用程序的内容更改时,您可以继续从上次录制的测试使用活动屏幕。为此,更新所选的活动屏幕显示,以便可以使用活动屏幕将新步骤添加到测试,而不是在新对象或修改过的对象上重新录制步骤。

提高活动屏幕性能的提示
  • 对基于Windows 的应用程序: 您可以选择保存每个步骤的所有活动屏幕信息,只保存某些步骤的信息,或完全禁止活动屏幕捕获。可以在“选项”对话框的“活动屏幕”窗格(工具> 选项> GUI 测试选项卡> 活动屏幕节点)中设置此首选项。保存的信息越少,录制时间越短。
  • 对基于Web 的应用程序: 您可以禁用活动屏幕中所有步骤的屏幕捕获,以缩短录制时间
  • 如果要测试使用UFT 插件的应用程序,请参见《HP Unified Functional Testing 插件指南》以确定对于该环境有无专门的活动屏幕捕获选项。
  • 如果测试中不包含活动屏幕文件,占用的磁盘空间就会明显减少。

书签窗格

在编辑器中编辑操作、脚本化组件、函数库或用户代码文件时可以使用书签。书签便于您在文档的各部分之间进行导航。书签按用户保存在文件系统上。

画布

画布提供了GUI 或API 测试流的直观表示。在文档窗格中以选项卡形式打开。

对于GUI 测试,画布显示测试操作的流。对于API 测试,画布显示测试中包含的步骤。

业务流程测试和流仅以网格视图显示,不会在画布中显示。

画布具有以下功能:

测试操作管理(仅限GUI 测试)

可从画布上的操作访问“操作属性”以及“操作调用属性”。使用这些属性,可以设置操作在测试中使用方式的设置和属性。

从特定操作运行测试

使用操作上下文菜单,可从特定操作运行测试或从特定操作调试测试。因此,无需运行整个测试便可以检查选定操作是否按预期运行。

步骤操作

画布允许您使用下列方式操作步骤:

  • 重新排序。将步骤(针对API 测试)或操作(针对GUI 测试)从一个位置拖到另一个位置。
  • 上移或下移。(仅限GUI 测试)可使用操作上下文菜单中的上移或下移命令更改操作的顺序。
  • 复制并粘贴。(仅限API 测试)选择步骤,然后按CTRL+C 将其复制到剪贴板。按CTRL+V 将其粘贴到测试流中的另一个位置或另一个循环。
  • 删除。(仅限API 测试)选择步骤,然后按键盘的Delete 按钮。
流控制(仅限API 测试)

默认情况下,画布包含用作测试步骤容器的“测试流”区域。但是,也可以添加特殊测试流步骤,包括:

  • 循环。主测试流区域为测试步骤提供了默认循环。但是,可以向测试添加其他循环。使用属性页,可以指定循环类型、迭代数和测试流或循环的条件。

数据窗格

通过UFT,您可以插入并运行由“数据”窗格中存储的数据驱动的步骤。

此部分包括:

  • 对于GUI 测试
  • 对于API 测试
  • 对于Business Process Testing
对于GUI 测试

测试使用的数据存储在设计时数据表中,在您插入和编辑步骤时,该数据表将显示在“数据”窗格中。

“数据”窗格具有Microsoft Excel 电子表格的特征,因此,您可以存储并使用其单元格中的数据,还可以在单元格内运行数学公式。

可以使用GUI 测试“数据”窗格,也可以使用任意Microsoft Excel(.xls 或.xlsx)文件。

可以使用DataTable、DTSheet 和DTParameter 实用程序对象操纵“数据”窗格中任意单元格中的数据。有关这些对象的详细信息,请参见《HP UFT Object Model Reference for GUI Testing》的UtilityObjects 部分。

您可以将数据表参数和输出值插入到测试中。在测试中使用数据表参数和/或输出值使您可使用提供的数据创建运行多次的数据驱动测试或操作。

对于API 测试

您可以将Excel 电子表格、本地数据表、XML 文件或数据库查询结果指定为用于测试的数据。

使用“属性”窗格,可以将数据插入测试步骤的输入和输出值。使用这些参数,可以创建数据驱动测试。

对于Business Process Testing

通过“数据”窗格,您可以查看和修改测试或流中的业务组件或组的迭代数据或者测试中特定流的迭代数据。可以添加和删除迭代、填充参数值、将输入参数值链接到测试或流中的其他参数以及将组件或流参数提交到下一个级别。

可以对组件、流和组进行配置,使其在单次运行期间运行指定迭代次数。每次迭代可使用不同的参数值。

对于每次迭代,可使用“数据”窗格配置组件、流或组在测试或流中所运行的数据。

调试窗格

创建测试、组件、函数库或用户代码文件后,可以检查它们是否正常运行。使用调试窗格,您即可随后使用UFT 的调试功能,调试测试、组件、函数库或用户代码文件。

调试窗格是用于在运行会话期间查看应用程序相关信息以及解决运行会话中任何错误的主要界面。

文档窗格

文档窗格是UFT 中的主设计区域,并在单独的选项卡中显示所有打开的文档。可以将每个选项卡作为独立的窗格单独进行移动、固定或浮动,并且可以在文档窗格中拖放或固定任何UFT 窗格。还可以同时打开多种类型的文档。

错误窗格

“错误”窗格显示在打开、使用、保存和运行测试、组件、函数库和用户代码文件时生成的错误列表。“错误”窗格还显示错误严重级别: Message、Warning 或Error

会出现以下类型的错误:

  • 代码语法错误
  • 缺失资源(仅限GUI 测试)
  • 缺失引用(仅限API 测试)
  • 缺失属性值(仅限API 测试)
代码语法错误

UFT 会在您每次保存测试、组件、函数库或用户代码文件时检查语法错误。如果代码中存在语法错误,则错误描述将作为错误显示在“错误”窗格中。

对于GUI 测试: 您可以随时通过选择设计 > 检查语法,来手动检查操作、脚本化GUI 组件或函数库的语法。如果UFT 发现任何错误,它会将错误显示在“错误”窗格中。从编辑器切换到关键字视图时,UFT 也会自动检查脚本中的语法错误,反之亦然。

可在VBScript 参考中查看每个VBScript 错误的描述。

对于API 测试: 您可以查看代码语法描述,以帮助解决Microsoft C# 参考的“错误”窗格中显示的代码错误

缺失资源(仅限GUI 测试)

每次打开测试、组件或应用程序区域时,UFT 都会验证指定的资源是否可用。

如果无法找到一个或多个资源,UFT 会在“错误”窗格中一起列出这些资源和UFT 应找到这些资源的位置。如果运行会话期间此窗格中所列资源有一个不可用,运行可能会失败。

可以从“错误”窗格中查找到缺少的资源或将它们从测试或应用程序区域中删除。(除未映射的存储库参数之外,可以通过应用程序区域解决GUI 组件缺少的资源。)

在您成功处理缺失资源之后,它会从窗格中删除。

缺失引用(仅限API 测试)

在解决方案浏览器中,每个API 测试都会包含大量在测试运行会话中使用的引用文件。此外,您还可以将其他引用添加到测试中。

当API 测试运行时,UFT 会检查所有必需的引用文件是否都存在。如果运行会话所需的引用文件不存在,则此缺少的引用将与UFT 应找到此引用的位置一起显示在“错误”窗格中。

通过“错误”窗格可以找到缺失引用文件的名称并将其添加到测试中。再次保存并运行测试之后,该错误将从“错误”窗格中消失。

缺失属性值(仅限API 测试)

向画布中添加某些API 测试步骤时,也必须提供“属性”窗格的"参数/检查点选项卡(属性窗格——API 测试)"中的输入值和属性定义。将这些步骤添加到画布中后,“错误”窗格会显示错误消息说明必须输入的属性值。

您可以双击“错误”窗格中的错误描述以导航到解决错误所需的字段。输入请求的值后,“错误”窗格中不再列出该错误。

输出窗格

“输出”窗格显示以下信息:

  • 运行会话期间无法查找或加载的资产的相关详细信息。
  • 对于GUI 测试和组件: 运行会话期间使用Print 实用程序语句发送的信息。
  • 对于API 测试: 编译和运行测试时在“输出”日志中生成的输出消息。

属性窗格

属性窗格用于查看和编辑测试和组件的全局属性和特定属性。该窗格反映在解决方案浏览器中选定的活动文档。

运行步骤结果窗格

运行测试之前,可以测试各个步骤以确保它们正确运行。画布直接提供了此功能(即“运行步骤”),此功能可用于大多数步骤类型。要运行单个步骤,请选择它,然后从右键单击菜单中选择运行步骤。

搜索结果窗格

“搜索结果”窗格显示您使用“查找”对话框或其他“搜索”菜单项定义的所有出现的搜索条件。搜索结果显示在一个连续列表中或根据源文件进行分组。

您可以浏览搜索结果,在源文件中查找特定结果,以及再次执行最近搜索以检索更新的结果。

解决方案是测试文档和其他资源的集合,类似于绑定器或记事本。可以使用解决方案组织测试文档以帮助您执行全面的应用程序测试。

例如,假设要为一个航班预订应用程序测试Web 应用程序。可以创建一个包含若干测试或组件的解决方案,这些测试或组件验证应用程序的各个方面,比如,登录、预订、验证应用程序和数据库之间的连接,以及验证预订信息从应用程序到航空公司服务器的传输。

在UFT 中,所有测试文档都必须属于解决方案的一部分。因此,当您创建测试文档时,可以立即将其分配给解决方案。可以为解决方案提供描述性名称,也可以接受UFT 提供的默认名称。

UFT 解决方案包括GUI 和API(非GUI)测试、业务组件、业务流程测试和流、应用程序区域、函数库或用户创建的代码文档。向某个解决方案添加测试文档时,该解决方案会保留其与其他测试文档和资源文件的唯一关联,不会在该解决方案中创建与其他测试文档的链接。解决方案与测试文档之间的关系是单向的。解决方案包含对其测试文档的引用,但是测试文档不包含对任何包含其的解决方案的引用。

可以创建解决方案供自己使用,也可以通过将解决方案保存在可访问位置(比如网络驱动器)来与其他用户共享解决方案。尽管可以将测试文档存储在文件系统或ALM 中,但是解决方案始终存储在文件系统中的某个位置。

可以在“解决方案浏览器”窗格中查看和管理解决方案。

任务窗格

使用“任务”窗格,可以创建和管理GUI 操作、GUI 组件、函数库和用户代码文件中需要处理的问题的TODO 注释。

TODO 注释是在测试文档中的相关步骤旁作为注释插入的提醒。例如,可以提供交接期间给其他人的指示,也可以提醒自己去做某些事。

在API 测试中创建事件处理程序时,编辑器会自动插入TODO 文本,以指示您需要在何处输入代码。可从“任务”窗格或直接从测试文档访问TODO 注释。

工具箱窗格

工具箱窗格包含可用于在测试文档中创建步骤的项。

如何使用工具箱窗格(GUI 测试)

使用测试对象添加步骤

双击测试对象或将其拖放到操作或组件中。插入含有该测试对象的默认操作的步骤。修改操作,并根据需要输入该步骤的参数。

可以将测试对象拖到“关键字视图”和编辑器中的操作或脚本化组件中。

添加对函数的调用

将函数拖到操作、组件或函数库中。将添加对该函数的注释和调用。

注释指示对函数的调用已添加到操作或组件,并指示任何必要的参数。然后为该函数提供参数。

可以将函数拖到“关键字视图”和编辑器中的操作或脚本化组件中。

打开测试对象的对象存储库

右键单击测试对象,选择打开资源。

“对象存储库”窗口将打开并突出显示该测试对象。

在操作或函数库中查找函数

双击要查找的函数,或右键单击它并选择打开资源。包含该函数的操作或关联函数库将在文档区域中打开并指向该函数。

复制并粘贴所选测试对象或函数

右键单击测试对象或函数,选择复制关键字。测试对象或函数现在位于剪贴板上,您可以将其粘贴到函数库,对于测试,粘贴到编辑器中的操作。

将测试对象或函数粘贴到文档窗格与从“工具箱”窗格拖入它的结果一样。

UFT配置

全局选项—— 概述

使用“选项”对话框可以修改UFT 的常规外观和行为。例如,您可以定义用户界面语言,设置启动选项,或者在编辑器中修改代码元素的字体和颜色。设置的值对所有文档和后续测试会话均有效。

  • 常规选项卡(选项对话框)
  • GUI 测试选项卡(选项对话框)
  • API 测试选项卡(选项对话框)
  • 编码选项卡(选项对话框)
  • 文本编辑器选项卡(选项对话框)

GUI 测试、GUI 业务组件和应用程序区域的设置

可以使用“测试设置”或“业务组件设置”对话框或者应用程序区域中的“其他设置”窗格设置影响UFT 使用特定测试或组件的测试选项。组件的多数设置都在应用程序区域及其设置中进行定义。

在运行会话期间以编程方式设置GUI 测试选项

您可以在运行会话期间使用Setting 对象设置和检索测试选项来控制UFT 运行测试的方式。GUI 测试选项会影响您使用测试的方式。例如,可以设置最多允许UFT 加载网页多长时间才确定找不到URL 地址。

您可以在运行会话期间在编辑器中使用Setting 对象设置和检索测试选项的值。有关使用编辑器的详细信息,请参见在编辑器的GUI 测试文档中编程。

使用Setting 对象检索和设置测试选项,可以控制UFT 运行测试的方式。

此外,还可以使用“选项”对话框(全局测试选项)和“测试设置”对话框(特定于测试的设置)设置很多测试选项。

此章节介绍一些可以与测试脚本中的Setting 对象一起使用的GUI 测试选项。有关Setting 对象的所有可用方法和属性的详细信息,请参见《HP UFT Object Model Reference for GUI Testing》的UtilityObjects 部分。

UFT运行和调试操作

运行测试和组件

运行测试或组件时,UFT 执行它包含的步骤。如果已经定义测试或组件参数,则UFT 提示您输入它们的值。运行会话完成时,UFT 显示结果详细信息报告。

使用运行结果

运行测试或组件后,UFT 将显示详细描述每个步骤的成功或失败结果,以及每个失败的原因(如有必要)。在测试或组件运行之后,这些运行结果会立即自动在文档窗格的单独选项卡中打开。

运行结果保存在单个HTML 页面上,其中包含指向其他资源的链接,这些资源包括用于测试运行的数据表、正在测试的应用程序的屏幕捕获、测试运行的视频等。由于运行结果是采用HTML 格式保存的,因此可以将其导出和/或发送给其他人员,而无需安装UFT。

要在浏览器上查看运行结果,应使用以下浏览器之一:

  • Internet Explorer 10 或更高版本
  • 支持的最新版本的Chrome

使用虚拟化服务运行测试

应用程序测试通常在应用程序的实际部署上执行。但是,有时应用程序所基于的服务不可或不能重复使用或测试。例如,它不能测试航班预订应用程序,该应用程序需要结合运行使用实际信用卡服务输入客户的信用卡,而每次运行测试时,该客户的信用卡都会付费。在这种情况下,可在测试期间使用虚拟化服务替换应用程序服务。

使用HP Service Virtualization,通过将虚拟服务的行为配置为与真实服务的预期行为匹配来创建虚拟化服务。在Service Virtualization 中完成服务详细信息的创建时,服务的详细信息将作为虚拟化项目的一部分进行保存。

然后,在UFT 中,将虚拟化项目添加到测试中。项目的设置将与测试一起保存用于将来的测试会话。

添加虚拟化项目后,设计测试时,要对GUI 和API 测试分别使用不同的虚拟服务地址:

  • 对于GUI 测试,将服务地址插入应用程序调用真实服务的函数的应用程序代码中。
  • 对于API 测试,将服务地址代替URL 或将其作为步骤属性插入。

然后,在运行包含虚拟化服务的测试之前,要在Service Virtualization Server 上部署该服务。然后在运行测试时,该测试才能根据需要使用虚拟服务运行。

有关创建虚拟化项目和虚拟服务的详细信息,请参见《HP Service Virtualization User Guide》。

调试测试和组件

在创建诸如测试、组件、函数库、事件处理程序或用户代码文件等测试文档之后,应该检查它是否运行顺畅,且没有语法或逻辑错误。如果有任何问题,您可以停止并调试测试。

UFT 提供不同选项帮助您调试测试以检测并隔离文档中的缺陷。例如:

  • 可以使用“暂停”命令、断点和使您能够步入、步过和步出特定步骤的各种步骤命令来控制运行会话和开始调试。
  • 挂起运行会话时,可以使用调试窗格检查和修改代码对象和变量的值并手动运行脚本或代码命令。
  • 如果UFT 在运行会话期间显示运行错误消息,则可以在错误消息上单击调试按钮以挂起运行并调试文档。

使用运行时引擎运行测试

除了使用完整的UFT IDE 运行测试以外,还可以仅通过安装运行时引擎来运行测试。此选项使您能够运行任何类型的UFT 测试,而无需安装整个UFT 界面。

UFT与HP ALM集成

ALM 集成

UFT 与HP 集中式质量解决方案ALM 集成。ALM 有助于您以项目的形式维护涉及应用程序功能各个方面的各种测试(比如测试、组件、业务流程测试、手动测试、使用其他HP 产品创建的测试,等等)。项目中每个测试或组件的设计都是为了实现应用程序的指定测试需求。为实现项目目标,项目中的测试可以组成多个不同的组。

ALM 提供直观有效的方法,用于计划和运行测试或组件、收集和分析结果以及管理测试和组件版本。它还特别带有一个缺陷跟踪系统,使您能够从最初检测到缺陷开始直到解决缺陷为止,全程紧密监控缺陷。

文件存储在ALM 项目中并可进行访问。此外,如果您计算机上安装了适用于ALM 的UFT 插件,则可以直接从ALM 创建和编辑UFT 测试和组件。创建和编辑测试和/或组件后,您可以从ALM 运行这些测试和/或组件,然后直接在ALM 中查看运行结果。

资源和依赖关系模型

UFT 允许您使用资源和依赖关系模型将测试和组件完全集成到ALM 项目。

  • 用链接的资产代替附件的使用。例如,GUI 测试、操作和应用程序区域分别可以与函数库和共享对象存储库链接,或者API 测试可以与数据表、用户代码文件或活动链接。您的测试或组件分别存储在“测试计划”或“业务组件”模块中,资源文件(包括应用程序区域)存储在“测试资源”模块中。将资源文件与测试或GUI 组件的应用程序区域关联时,这些资产便成为链接的资产。链接资产可缩短下载时间,从而提高运行时性能。(使用附件而不使用链接的话,从Quality Center 和ALM下载资源的时间会延长。)链接资产还有助于确保依赖资产之间的关系能够得到维护。
  • 支持对测试或组件和资源文件进行版本控制。您可以在UFT 或ALM 中创建这些资产的版本,然后在ALM 中对资产版本进行管理。
  • 支持对测试或组件和资源文件进行基线管理。您可以在UFT 中查看基线历史记录,在ALM 中查看和管理基线。
  • 允许在ALM 和UFT 中查看和比较资产。您可以使用资产比较工具比较个别资产的各个版本,使用资产查看器查看资产的早期版本。这两种查看器都已在ALM 和UFT 中提供。
  • 支持跨ALM 项目导入和共享资产。

查看和比较UFT 资产版本

资产是UFT 测试文档(比如,测试、组件或应用程序区域)或UFT 测试文档使用的任何资源文件(比如,函数库、共享对象存储库、数据表、恢复场景或环境变量XML 文件)。资产比较工具和资产查看器允许您查看和比较特定资产的版本。

ALM 中的版本控制

UFT 连接到具有版本控制支持的ALM 项目时,您可以更新和修订UFT 资产,同时又能维护每个资产的早期版本。这可帮助您跟踪每个资产中所做的变更,查看版本与版本之间的修改内容。资产可以包括测试、组件、函数库、应用程序区域、共享对象存储库、恢复场景和外部数据表、XML 文件、用户代码文件或测试活动。

您随时可以签入资产。例如,可能希望每天或在完成任务后签入资产。资产处于已签出给您的状态时,其他用户可以只读模式查看该资产上次签入的版本,但不能修改资产或查看您的变更,直到您签入资产为止。

HP Sprinter

虽然UFT 自动测试可以满足许多测试需求,但您可能也需要手动执行一些测试。您可以使用HP 手动测试解决方案HP Sprinter 运行手动测试。Sprinter 提供的高级功能和工具使手动测试更高效。手动测试通常要求您让测试应用程序去完成与测试相关的任务。例如,可能需要使用图形软件捕获应用程序屏幕快照,可能要录制测试期间的应用程序视频,以及需要切换到缺陷跟踪软件报告缺陷。

Sprinter 能够解决手动测试过程中的这些需求,使您可以不中断测试流而完成这些任务。Sprinter 提供许多帮助检测和提交缺陷的工具。Sprinter 还可以为您执行很多重复而繁重的手动测试任务。这些功能确保了您可以执行手动测试所需的所有任务,同时又使测试工作的中断降至最低。

Sprinter 与ALM 11.00 及更高版本完全集成,您可以从两款解决方案中最大程度受益。

GUI测试设计

GUI测试创建概述

可以使用关键字驱动方法、步骤录制、从HP Sprinter 导入步骤或所有这些方法的组合来创建测试。

  • 使用关键字驱动方法可以选择关键字以指示要对应用程序执行的操作。
  • 使用步骤录制可以录制对应用程序执行的操作。
  • 通过从Sprinter 导入步骤,可以将手动测试转换为UFT GUI 测试。

测试创建—— 关键字驱动方法

关键字驱动测试是一种从实际测试步骤中拆分出许多编程工作的技术,以便测试步骤可以提前开发且通常只用少量更新即可维护,即使应用程序或测试需求发生重大更改也是如此。这样,您便可以创建更易于后期更新和维护的结构化的测试。

关键字驱动方法对于既有技术用户又有技术较弱的用户的组织尤其有用,因为此方法可对自动化任务进行明确区分。因此一些专家可以维护资源框架,而技术较弱的用户则可以设计和维护自动测试步骤。另外,基本基础结构就位之后,这两种类型的用户通常可同时执行各自的作业。

使用关键字驱动方法,您可以创建一些测试,使用户能够选择关键字来指示要在应用程序上执行的测试。通过使用关键字驱动方法创建测试,您的测试将变得更加模块化,更专注于使用UFT 内置关键字和您自己的用户定义关键字来进行测试的操作。另外,由于可以在应用程序中出现对象之前将这些对象添加到对象存储库,甚至可以在具备包含新对象的软件内部版本之前开始准备自动关键字驱动测试。

一个或几个自动化专家通常会开发一个与特定应用程序或功能相关的所有测试均可使用的测试自动化基础结构。此自动化基础结构通常包括一个或多个共享对象存储库以及一个或多个函数库。

录制GUI 测试和组件

您可以通过录制用户对应用程序执行的典型过程来创建测试或组件的主体。UFT 录制您执行的操作,将它们作为步骤添加到所选测试操作或组件。然后在运行会话期间,UFT 会使用录制的步骤复制您在录制时执行的操作。

录制步骤时,UFT 将创建表示执行操作的应用程序中对象的测试对象,并将其存储在对象存储库中。以便UFT 在创建测试或组件时和运行会话期间识别应用程序中的对象。UFT 还将为应用程序中的对象输入正确的方法和参数值。因此,作少量准备或计划就可以创建基本测试或组件。录制会话期间,还可以添加检查点和输出值步骤,以便从应用程序中检查或检索值。

在以下情况下录制会非常有用:

  • 对UFT 不熟悉,并希望了解UFT 如何解释对应用程序执行的操作以及它如何将这些操作转换为UFT对象和内置操作。
  • 需要快速创建可测试应用程序或功能的基本功能的测试或组件,且该测试或组件不需要长期维护。
  • 正在使用新应用程序或现有应用程序的主要新功能,并希望了解UFT 与应用程序的交互方式。
  • 正在开发可合并内置UFT 关键字的函数。

录制测试时,可以使用独立的“录制”工具栏将录制的步骤划分为多个操作、添加检查点和输出值、侦测对象或编辑对象存储库中的对象。

GUI 测试中的操作

在GUI 测试中,每个测试均包含对“操作”的调用。操作是独立的模块化测试脚本,包括该操作中的所有步骤以及该操作本地对象存储库和任何关联共享对象存储库中的所有对象。

新建测试时,它包括对单个操作的调用。您可以添加对其他操作的调用,包括对新操作的调用、对(同一测试中或其他测试中) 现有操作的调用或对(同样是同一测试中或其他测试中) 操作副本的调用。通过创建调用多个操作的测试,可设计更具模块化、更有效的测试。使用操作还有助于将测试分成若干逻辑单元,就像网站的几个主要部分,或在应用程序中执行的特定活动。

每个操作都与创建该操作的测试存储在一起。您可以根据操作属性来插入对测试中存储的操作的调用,也可以调用与其他测试存储在一起的操作。

如果计划的测试包括很多个步骤或很多行脚本,建议使用多个操作划分测试步骤。理想情况是,操作不应包括超过几十个的测试步骤。

关键字视图

“关键字视图”可用于以模块化表格式创建和查看操作或组件的步骤。每个步骤均显示为“关键字视图”中的一行,并由各个可修改部分组成。您可以在“关键字视图”中选择项和操作,然后根据需要输入信息来创建和修改步骤。完成时,系统会自动记录每个步骤,使您可以用能懂的句子查看操作或组件的描述。如果需要,还可以将这些描述用作手动测试的指示。

可以使用“关键字视图”将新步骤添加到操作或组件,并查看、修改和调试现有步骤。添加或修改步骤时,请为步骤选择测试对象或其他步骤类型,选择要执行的方法操作,并定义所选操作或语句的任何必需值。使用“关键字视图”时不需要任何编程知识。UFT 会在场景后自动完成执行每个测试步骤实际所需的编程。

生成的编程操作

设计测试时,通常首先会添加一些步骤,这些步骤表示最终用户将作为要测试的业务流程一部分执行的操作。然后,要提高测试的功能和灵活性,您可以向基本框架添加包含编程逻辑的步骤(编程语句)。

编程语句可以包含:

  • 测试对象操作。由UFT 定义的方法和属性。它们可以是用户可对某对象执行的操作、可检索或设置信息的操作或执行由事件触发的操作的操作。
  • 本机操作。在要测试的对象中定义的方法和属性,以便从应用程序的运行时对象中检索。
  • VBScript 编程命令。它们影响测试的运行方式,如条件语句和同步点。它们经常用于控制测试的逻辑流。
  • 注释。使用注释可以解释测试的各个部分,以提高可读性并使它们更易于更新。注释是程序中的解释性备注,不会在UFT 运行时被处理。

在编辑器的GUI 测试文档中编程

GUI 测试操作和脚本化GUI 组件由用Microsoft VBScript 编程语言编码的语句组成。编辑器为熟悉VBScript 的测试者提供“关键字视图”的替代视图。在编辑器中,可以查看用VBScript 编写的操作或脚本化组件。

使用GUI 测试以及脚本化和关键字GUI 组件时,也可以在UFT 中使用VBScript 创建和使用函数库。这样便可提高测试和组件的功能和灵活性。

如果熟悉VBScript,则可以通过编程,添加和更新语句并增强测试、组件和函数库的功能。这样可提高测试或组件的能力和灵活性。

此章节简要介绍了VBScript,并且使用几个简单的编程技术说明了增强操作、脚本化组件和函数库功能的方法。

用户定义的函数和函数库

除UFT 测试对象模型支持的测试对象、方法和内置函数之外,还可以定义您自己的包含VBScript 函数、子例程、语句等的函数库,然后从测试中调用其函数或将其函数用作测试或组件中的操作。

函数库是包含Visual Basic 脚本的单独文档。以标准VBScript 语法编写的任何文本文件可以用作函数库。

函数库可以包含:

  • 函数定义(函数签名和代码)。可以从其他函数、测试中的操作或组件调用这些函数。要从测试或组件调用函数,必须首先将函数库与测试或组件应用程序区域关联。
  • VBScript 语句。这些是不包含在函数定义中的语句(例如,RegisterUserFunc 语句)。UFT 加载函数库时运行所有这些语句。

在运行会话开始时,UFT 加载与测试或组件应用程序区域关联的所有函数库。如果需要在测试运行期间动态加载函数库,则还可以使用LoadFunctionLibrary 语句。

与API 测试的集成

如果具有应用程序的GUI 和API 测试,则可以在单个统一测试运行中一起运行这两种测试。通过在相同测试运行中一起运行测试,可以运行针对应用程序的充分全面测试,而无需维护应用程序的GUI 端和API 端的单独测试运行。只需将调用插入到任何GUI 测试操作中的API 测试或特定API 测试操作,并且UFT 会暂停GUI 测试的步骤,完全运行API 测试或操作并继续GUI 测试运行。

到达包含调用API 测试或操作的步骤时,UFT 将打开调用的测试并运行它。在运行会话期间,“输出”窗格将显示正在API 测试中执行的步骤的实时日志。

插入对API 测试或操作的调用时,调用将在画布和操作(显示在编辑器中)中的相关GUI 操作下显示。

还可以为API 测试包含的任何测试输入或输出参数指定参数值。

如果UFT 使用HP Unified Functional Testing (也称为UnifiedFunctionalTesting) 许可证,则可以包含从GUI 测试对API 测试和操作的调用。插入对API 测试或操作的调用时,调用将在画布和操作(显示在编辑器中)中的相关GUI 操作下显示。

UFT 必须使用HP Unified Functional Testing(而不是仅限QuickTest)许可证,才能在GUI 测试内运行对API 测试的调用。

如果Unified Functional Testing 许可证类型不可用,则根据是从UFT 还是从ALM 运行测试,运行会话行为会有所不同。

  • 从UFT 运行时: GUI 测试运行,直至到达调用API 测试的步骤,然后失败。
  • 从ALM 运行时: 如果GUI 测试包含对API 测试的调用,则UFT 不会打开且测试不会运行。

维护和更新GUI 测试或组件

当UFT 遇到不能执行的步骤或步骤结果指示失败时,测试或组件失败。在很多情况中,这是由于受测试的应用程序未正确运行。然后,UFT 提供运行结果,帮助您了解如何修复应用程序。

有时,测试或组件会失败,因为自创建测试或组件以后,受测试的应用程序已更改,需要更新测试或组件以反映这些变更。对象存储库还可能缺少运行测试所需的一些对象。UFT 提供可帮助识别和解决其中一些问题的工具。

导致测试或组件失败的变更有多种类型:

对象变更

UFT 运行测试或组件中的步骤时,在与该测试或组件关联的对象存储库中查找该步骤引用的对象。通过使用存储库中对象的描述,UFT 尝试在应用程序中识别对

由于许多原因,UFT 可能无法在应用程序中识别对象:

检查点变更

在受测试应用程序中遇到意外条件时,检查点失败。在很多情况中,这是由于应用程序未正确运行。UFT 提供运行结果,帮助您了解如何修复应用程序。

有时检查点失败,原因是自创建测试或组件以来,应用程序已更改,需要更新检查点以反映那些变更。更新运行模式使您能够更新测试或组件中的检查点,以反映应用程序中的变更。

例如,假设应用程序中有一个编辑框的默认值为<输入值>,并且在该编辑框中输入新值时,有检查点检查该值。如果应用程序中的默认值更改为<输入名称>,那么检查点将失败。更新运行模式使您能够更新检查点的预期值,以反映应用程序中的变更。

GUI 测试的恢复场景

运行会话期间的意外事件、错误和应用程序崩溃可能会中断运行会话并破坏结果。当测试或组件以无人值守方式运行时,此问题尤其突出,测试或组件会暂停运行,直至您执行需要恢复的操作为止。要处理此类情况,可以通过UFT 创建恢复场景,并将其与特定测试或应用程序区域关联。触发事件发生时,恢复场景会激活特定恢复操作。

恢复场景管理器将提供一个向导,指导您完成定义恢复场景的整个过程,包括定义意外事件以及恢复运行会话所需的操作。例如,您可以指示UFT 检测Printer out of paper 消息,并通过单击确定按钮关闭消息来恢复运行会话,并继续运行。

恢复场景由以下部分组成:

  • 触发事件。中断运行会话的事件。例如,屏幕上弹出的窗口,或运行错误。
  • 恢复操作。为了在触发事件中断会话之后继续运行会话而执行的操作。例如,在弹出窗口中单击确定按钮,或重新启动Microsoft Windows。
  • 恢复后测试运行选项。有关在执行了恢复操作之后UFT 应如何继续进行以及从哪个步骤继续(如要继续)的指示。可能需要一开始便重新启动运行,或者完全跳过一步然后继续下一步。

创建恢复场景之后,您将这些场景与选定的测试或组件(通过应用程序区域)关联,以便在触发事件发 生时,可以运行相应场景。您可以确定场景的优先级,并设置在运行会话期间应用场景的顺序。还可以选择禁用与测试或应用程序区域关联的特定场景或所有场景。

还可以定义哪些恢复场景将用作所有新测试的默认场景。

对于测试: 您可以在解决方案浏览器中关联恢复场景和GUI 测试,删除、启用、禁用与该测试关联的恢复场景,查看恢复场景的属性以及确定它们的优先级。

UFT 自动脚本

可以使用UFT 自动化对象模型编写自动执行UFT 操作的脚本。UFT 自动化对象模型为您提供可用于从另一个应用程序控制UFT 的对象、方法和属性。

使用UFT 自动化对象模型提供的对象、方法和属性,可以编写配置UFT 选项并运行测试或组件的脚本,而无需通过UFT 界面手动执行这些操作。

对于多次或在多个测试或组件上执行相同任务,或根据需要为特定环境或应用程序快速配置UFT,自动脚本尤其有用。

什么是自动化?

自动化是一项可以从其他应用程序访问某个应用程序内的软件对象的Microsoft 技术。可以使用诸如VBScript 或VC++ 之类的脚本编制或编程语言创建和操纵这些对象。您可以使用自动化以编程方式控制应用程序的功能。

什么是UFT 自动化对象模型?

对象模型是由系统或应用程序的实现组成的软件对象(类)的结构表示。对象模型定义了一组类和界面及其属性、方法和事件,以及它们之间的关系。

UFT 自动化对象模型是您可用于控制几乎所有配置并运行通过UFT 界面提供的功能的一组对象、方法和属性。尽管无法始终进行一对一的比较,UFT 中的大多数对话框具有相应的自动化对象,对话框中的大多数选项可以通过相应的对象属性进行设置和/或检索,并且大多数菜单命令和其他操作都有相应的自动化方法。

可以使用UFT 自动化对象模型提供的对象、方法和属性以及诸如循环和条件语句之类的标准编程元素设计脚本。

对于多次或在多个测试或组件上执行相同任务,或根据需要为特定环境或应用程序快速配置UFT,自动脚本尤其有用。

GUI测试 测试对象 检查点和输出值

UFT 通过识别和标识测试对象及其预期属性和值,测试动态更改的应用程序。为此,UFT 将采用与某个人查看一张照片然后记住其细节类似的方式,分析应用程序中的每个对象。

以下各部分介绍与测试对象模型相关的概念,并且介绍UFT 如何使用搜集的信息测试应用程序。

API测试设计

API 测试是指,UFT 如何使您能够通过测试非GUI 应用程序来查看应用程序的API 流程是如何执行的。使用UFT API 测试,创建表示应用程序所执行活动的测试(甚至使用应用程序的实际和输出数据),并使用检查点评估测试的成功或失败。

通过将活动从“工具箱”窗格拖到画布中来设计API 测试。“工具箱”窗格包括标准活动和技术特定活动(如HTTP、Java、JMS、IBM WebSphere MQ 和SAP)的集合。可以通过导入WSDL 和WADL、创建REST 服务或使用文件系统或ALM 中的服务来将其他活动添加到“工具箱”窗格。也可以使用内置活动向导来新建自定义活动

Business Process Testing in UFT

Business Process Testing 为您提供基于组件的可自定义测试框架,该框架支持:

组件重用和模块化

组件重用和模块化通过加速测试的创建、维护和执行来降低成本。

UFT 全局选项

同时为简单和复杂的应用程序创建测试

接受测试的应用程序可以是一个简单的、基于HTML 的Web 应用程序,也可以是一个涉及到打包应用程序以及后端服务和数据库的复杂业务流程。

各种角色之间的协作

测试框架非常灵活,足以满足各种角色的需要,如手动测试者、自动化工程师和主题专家。

Business Process Testing 可帮助您记录组件和测试,包括展示它们应如何使用的截图等。这样拥有不同角色和技能集的人员便可以共享他人的资产。

管理测试部分

管理测试部分包括组件文档、测试运行结果、版本控制、报告和历史记录。另外,使用ALM 可生成包含给定项目中测试、流和组件相关信息的文档。

在Business Process Testing 中安排组件,通过在业务流程测试或业务流程流中包括关键字GUI 组件、脚本GUI 组件或手动组件来测试不同的场景。通过使用Business Process Testing,您可以根据自己的需要安排组件。