调试测试、组件、函数库或用户代码文件

相关项: API 测试GUI 操作、脚本化 GUI 组件、函数库、用户代码文件和业务流程测试

此任务描述可以控制和调试测试运行以便可以识别和处理文档中的问题的不同方式。

要练习此任务,请参阅调试函数 - 练习 (对于 GUI 测试) 或调试 API 用户代码文件 - 练习 (对于 API 测试)。

先决条件

开始调试之前,确保您具有以下先决条件:

先决条件 描述
Microsoft Script Debugger

必须安装 Microsoft Script Debugger 才能以调试模式运行测试或组件。

如果未安装,则使用 OpenText Functional TestingAdditional Installation Requirements 实用程序安装它。

可从 Windows“开始”菜单或通过运行“<Installdir>\bin\UFTInstallReqs.exe”访问 Additional Installation Requirements 程序。

启用 API 测试调试器

要调试 API 测试,必须启用调试器。

选择“工具”>“选项”>“API 测试”选项卡 >“常规”节点,然后选择“以调试模式运行测试”

返回页首

减慢调试会话

在测试运行期间,OpenText Functional Testing 通常快速运行步骤。当调试时,您可能希望减慢测试运行速度以启用更有效的调试。

要减慢测试运行速度,请执行以下操作:

  1. 浏览到“选项”对话框的“测试运行”窗格 (“工具”>“选项”>“GUI 测试”选项卡 >“测试运行”节点)。
  2. 用您希望 OpenText Functional Testing 在每个步骤之间等待的毫秒数修改“按以下时间延迟执行每个步骤”值。

返回页首

步入、步出或跳过特定 GUI 步骤

调试 GUI 测试以确定步骤如何运行时使用以下方法。

选项 描述
步入

仅运行活动文档中的当前步骤。

在工具栏中,按“步入”按钮

调试 GUI 测试时,如果当前步骤调用另一个操作或函数,则会在文档窗格中显示被调用操作或函数。测试或函数库暂停在被调用操作或函数的第一行。

步出

将运行继续到函数或用户代码文件结尾,返回到调用测试、组件或函数库,然后将测试运行暂停在下一行 (如果该行存在)。

在工具栏中,按“步出”按钮

步过

如果当前步骤调用用户定义函数,则被调用函数全部执行,但不在文档窗格中显示被调用函数脚本。然后,测试运行返回到调用文档,并暂停在下一步骤 (如果该步骤存在)。

在工具栏中,按“跳过”按钮

如果当前步骤调用另一个操作,则被调用操作显示在文档窗格中,并且测试运行暂停在被调用操作的第一行(类似于步入)。

返回页首

在特定 GUI 步骤或操作开始或暂停

  • 在文档中选择希望 OpenText Functional Testing 停止处的步骤,并选择“运行”>“运行到该步骤”

  • 选择希望 OpenText Functional Testing 开始运行处的步骤,并选择“运行”>“从该步骤调试”

  • 备注: 这些命令也可用于在特定操作处停止。在画布中右键单击操作,并选择运行到该操作从该步骤调试从该操作运行

返回页首

GUI 测试中使用断点

有关详细信息,请参阅使用断点

备注:  

  • 如果使用 Run 自动化方法运行测试,即使测试中保存了断点,测试也不会在断点处停止。

  • 如果使用 Run 自动化方法运行包含断点的测试,则断点保持可见,但在测试运行期间将被忽略。

  • 如果正以隐藏模式 (如 OpenText Functional Testing 远程代理中所指定) 从 ALM 测试实验室模块 运行测试,OpenText Functional Testing 不会在断点处停止测试。

  • 如果正以非隐藏模式从 ALM 测试计划模块运行测试,当在 OpenText Functional Testing 远程代理中选择“在调试模式下运行测试集”选项时,测试将在断点处停止。

有关远程代理设置的详细信息,请参见远程代理设置对话框

返回页首

检查 GUI 测试 变量和表达式的值

在测试运行期间,使用以下选项查看代码表达式、变量和对象属性的当前值。

在监视窗格中监视值

“监视”窗格显示已添加到“监视”窗格中的选定变量和表达式的值。

备注: 测试对象的隐藏属性和方法不会显示在“监视”窗格中。

从编辑器或从函数库 (但不是从关键字视图) 将表达式添加到“监视”窗格中。

要添加表达式,请执行以下某项操作:

选项描述
输入表达式名称单击“添加新监视表达式”按钮 ,并在“添加新监视”对话框中输入表达式的名称。
突出显示选定的表达式

仅限 GUI 操作、脚本化 GUI 组件和函数库。

高亮显示所选表达式并选择“运行”>“添加到监视点”。右键单击表达式并从上下文菜单中选择“添加到监视点”

要将描述属性添加到“监视”窗格中,必须使用调用 GetROProperty 的表达式。

这使您能够监视对象属性的运行时值。例如,要监视“计算器”应用程序中当前显示的值,可以添加表达式:

Window("Calculator").WinEdit("Edit").GetROPRoperty("text")

有关详细信息,请参阅监视窗格

使用快速监视来监视值

使用 OpenText Functional Testing“快速监视”,可以在测试或组件的一行中查看选定对象的当前值,对表达式求值,或向“监视窗格”中添加项。

  1. 在包含对象、变量或表达式的测试或组件的行中,执行以下某项操作:

    • 右键单击并选择“快速监视”

    • 选择“运行”>“快速监视”

  2. 在“快速监视”中,执行以下某项操作:

    • 在“表达式”字段中,输入对象、变量或表达式的名称,然后单击“求值”OpenText Functional Testing 在测试或组件的当前上下文中显示值。

    • 输入对象、变量或表达式的名称,然后单击“添加到监视点”OpenText Functional Testing 将其添加到“监视”窗格中的列表。

在局部变量窗格中监视值

在“局部变量”窗格中,OpenText Functional Testing 显示测试或组件中的所有变量 (直到当前步骤) 以及它们在测试或组件运行的当前上下文中的值。

有关详细信息,请参阅局部变量窗格

在编辑器中监视值

在编辑器中,将鼠标悬停在对象、变量或表达式上,然后查看这些表达式的值。

OpenText Functional Testing 显示带有以下值的浮动工具提示:

当继续执行测试、函数库或用户代码文件中的后续步骤时,OpenText Functional Testing 自动将“监视”窗格和“局部变量”窗格更新为值有更改的任何变量或表达式的当前值。

OpenText Functional Testing 当您在调试会话 (位于“控制台”窗格中) 上下文中进行更改时,还将对“监视”窗格和“局部变量”窗格中显示的信息重新求值。

返回页首

更改 GUI 测试 属性、变量或表达式

在“监视”窗格和“局部变量”窗格中手动更改变量或属性的值。

例如,对于支持 Object 属性的测试对象,编辑显示在“监视”窗格中的运行时对象属性的值,从而在继续测试运行之前更改正在测试的应用程序中的属性值。

执行以下某项操作:

选项描述
控制台窗格输入命令以更改对象、变量或表达式的值
监视或局部变量窗格在对象、变量或表达式的“值”列中,手动更改值
监视窗格或快速监视

添加以下任何类型的表达式:

  • GUI 测试对象的名称

  • 变量的名称

  • 属性的名称

  • 任何其他类型的代码表达式

添加到“监视”窗格的表达式与文档一起保存,并在更改文档时相应地进行更新。

警告: OpenText Functional Testing 运行“监视”窗格中的表达式以对它们进行求值。

因此,请勿添加对其求值可能会影响测试状态或任何 GUI 测试对象的方法或任何表达式。这可能导致测试、组件、函数库或用户代码文件出现意外行为。

手动运行 GUI 测试 代码命令

在“控制台”窗格中,输入要运行的命令。

返回页首

查看当前 GUI 测试 调用堆栈

要查看测试运行中当前运行的调用堆栈,请选择“查看”>“调试”>“调用堆栈”

在窗格中双击某个堆栈名称可直接导航到开始该调用堆栈的代码行。

返回页首

查看当前运行的 GUI 测试 线程

选择“查看”>“调试”>“线程”

在显示的线程列表中,可以双击线程名称以直接导航到线程的开头。

返回页首

查看加载的 GUI 测试 模块

选择“查看”>“调试”>“加载的模块”OpenText Functional Testing 显示当前加载的模块的列表 (取决于您在测试中暂停的位置)。

返回页首

禁用 API 测试步骤

禁用 API 测试中的某个步骤,以在运行和调试测试时跳过该步骤。

在测试中,右键单击要禁用的步骤,然后选择“禁用步骤”。该步骤被禁用,在您运行测试以对其进行调试时将跳过该步骤。

当准备再次启用该步骤时,请右键单击该步骤,然后选择“启用步骤”

禁用步骤时:

选项描述
事件处理程序

附加到该步骤的事件处理程序也将被跳过。

将值用作其他步骤的数据源的步骤

如果跳过的步骤具有在其他步骤中用作数据源的输入值,则将使用默认值。

链接到检查点值的步骤

如果跳过的步骤链接到检查点值,则由于缺失值,测试运行将失败。

返回页首