调试测试、组件、函数库或用户代码文件
相关项: API 测试、GUI 操作、脚本化 GUI 组件、函数库、用户代码文件和业务流程测试
此任务描述可以控制和调试运行会话以便可以识别和处理文档中的问题的不同方式。
要练习此任务,请参阅调试函数 - 练习 (对于 GUI 测试) 或调试 API 用户代码文件 - 练习 (对于 API 测试)。
先决条件
开始调试之前,确保您具有以下先决条件:
Microsoft Script Debugger |
必须安装 Microsoft Script Debugger 才能以调试模式运行测试或组件。 如果未安装,则使用 UFT OneAdditional Installation Requirements 实用程序安装它。
|
启用 API 测试调试器 |
要调试 API 测试,必须启用调试器。 选择“工具”>“选项”>“API 测试”选项卡 >“常规”节点,然后选择“以调试模式运行测试”。 |
减慢调试会话
在运行会话期间,UFT One 通常快速运行步骤。当调试时,您可能希望减慢测试运行速度以启用更有效的调试。
要减慢测试运行速度,请执行以下操作:
- 浏览到“选项”对话框的“测试运行”窗格 (“工具”>“选项”>“GUI 测试”选项卡 >“测试运行”节点)。
- 用您希望 UFT One 在每个步骤之间等待的毫秒数修改“按以下时间延迟执行每个步骤”值。
步入、步出或跳过特定 GUI 步骤
调试 GUI 测试以确定步骤如何运行时使用以下方法。
步入 |
仅运行活动文档中的当前步骤。 在工具栏中,按“步入”按钮 。 调试 GUI 测试时,如果当前步骤调用另一个操作或函数,则会在文档窗格中显示被调用操作或函数。测试或函数库暂停在被调用操作或函数的第一行。 |
步出 |
将运行继续到函数或用户代码文件结尾,返回到调用测试、组件或函数库,然后将测试运行暂停在下一行 (如果该行存在)。 在工具栏中,按“步出”按钮 。 |
步过 |
如果当前步骤调用用户定义函数,则被调用函数全部执行,但不在文档窗格中显示被调用函数脚本。然后,运行会话返回到调用文档,并暂停在下一步骤 (如果该步骤存在)。 在工具栏中,按“跳过”按钮 。 如果当前步骤调用另一个操作,则被调用操作显示在文档窗格中,并且运行会话暂停在被调用操作的第一行 (类似于步入) 。 |
在特定 GUI 步骤或操作开始或暂停
-
在文档中选择希望 UFT One 停止处的步骤,并选择“运行”>“运行到该步骤”。
-
选择希望 UFT One 开始运行处的步骤,并选择“运行”>“从该步骤调试”。
注释: 这些命令也可用于在特定操作处停止。在画布中右键单击操作,并选择运行到该操作、从该步骤调试或从该操作运行。
在 GUI 测试中使用断点
有关详细信息,请参阅使用断点。
注释:
-
如果使用 Run 自动化方法运行测试,即使测试中保存了断点,测试也不会在断点处停止。
-
如果使用 Run 自动化方法运行包含断点的测试,则断点保持可见,但在测试运行期间将被忽略。
-
如果正以隐藏模式 (如 UFT One 远程代理中所指定) 从 ALM“测试实验室”模块运行测试,UFT One 不会在断点处停止测试。
UFT One 15.0.1 及更早版本: 要以非隐藏模式从测试实验室运行业务流程测试,不得选择“ALM 连接”对话框中的“启动时恢复连接”。
-
如果正以非隐藏模式从 ALM“测试计划”模块运行测试,当在 UFT One 远程代理中选择在调试模式下运行 GUI 测试集选项时,测试将在断点处停止。
有关远程代理设置的详细信息,请参见远程代理设置对话框。
检查 GUI 测试 变量和表达式的值
在测试运行期间,使用以下选项查看代码表达式、变量和对象属性的当前值。
“监视”窗格显示已添加到“监视”窗格中的选定变量和表达式的值。
从编辑器或从函数库 (但不是从关键字视图) 将表达式添加到“监视”窗格中。
要添加表达式,请执行以下某项操作:
输入表达式名称 | 单击“添加新监视表达式”按钮 ,并在“添加新监视”对话框中输入表达式的名称。 |
突出显示选定的表达式 | 仅限 GUI 操作、脚本化 GUI 组件和函数库。 突出显示所选表达式并选择运行 > 添加到监视点。右键单击表达式,并从上下文菜单中选择添加到监视点。 |
要将描述属性添加到“监视”窗格中,必须使用调用 GetROProperty 的表达式。
这使您能够监视对象的运行时值。例如,要监视“计算器”应用程序中当前显示的值,可以添加表达式:
Window("Calculator").WinEdit("Edit").GetROPRoperty("text")
有关详细信息,请参阅监视窗格。
使用 UFT One“快速监视”,可以在测试或组件的一行中查看选定对象的当前值,对表达式求值,或向“监视窗格”中添加项。
在包含对象、变量或表达式的测试或组件的行中,执行以下某项操作:
右键单击并选择“快速监视”
选择“运行”>“快速监视”
在“快速监视”中,执行以下某项操作:
在“表达式”字段中,输入对象、变量或表达式的名称,然后单击“求值” 。UFT One 在测试或组件的当前上下文中显示值。
输入对象、变量或表达式的名称,然后单击“添加到监视点”。UFT One 将其添加到“监视”窗格中的列表。
在“局部变量”窗格中,UFT One 显示测试或组件中的所有变量 (直到当前步骤) 以及它们在测试或组件运行的当前上下文中的值。
有关详细信息,请参阅局部变量窗格。
当继续执行测试、函数库或用户代码文件中的后续步骤时,UFT One 自动将“监视”窗格和“局部变量”窗格更新为值有更改的任何变量或表达式的当前值。
UFT One 当您在调试会话 (位于“控制台”窗格中) 上下文中进行更改时,还将对“监视”窗格和“局部变量”窗格中显示的信息重新求值。
注释: 要扩展 UFT One 显示测试对象信息的能力,建议从 Internet Explorer 注册 PDM (对于 Internet Explorer 8 或更高版本以及 Visual Studio 2008)。
在命令行中输入以下内容以注册 .dll: regsvr32 "%ProgramFiles%\Internet Explorer\pdm.dll"
更改 GUI 测试 属性、变量或表达式
在“监视”窗格和“局部变量”窗格中手动更改变量或属性的值。
例如,对于支持 Object 属性的测试对象,编辑显示在“监视”窗格中的运行时对象属性的值,从而在继续测试运行之前更改正在测试的应用程序中的属性值。
执行以下某项操作:
控制台窗格 | 输入命令以更改对象、变量或表达式的值 |
监视或局部变量窗格 | 在对象、变量或表达式的“值”列中,手动更改值 |
监视窗格或快速监视 | 添加以下任何类型的表达式:
|
添加到“监视”窗格的表达式与文档一起保存,并在更改文档时相应地进行更新。
警告: UFT One 运行“监视”窗格中的表达式以对它们进行求值。
因此,请勿添加对其求值可能会影响测试状态或任何 GUI 测试对象的方法或任何表达式。这可能导致测试、组件、函数库或用户代码文件出现意外行为。
手动运行 GUI 测试 代码命令
在“控制台”窗格中,输入要运行的命令。
查看当前 GUI 测试 调用堆栈
要查看运行会话中当前运行的调用堆栈,请选择查看 > 调试 > 调用堆栈。
在窗格中双击某个堆栈名称可直接导航到开始该调用堆栈的代码行。
查看当前运行的 GUI 测试 线程
选择“查看”>“调试”>“线程”。
在显示的线程列表中,可以双击线程名称以直接导航到线程的开头。
查看加载的 GUI 测试 模块
选择“查看”>“调试”>“加载的模块”。UFT One 显示当前加载的模块的列表 (取决于您在测试中暂停的位置)。
禁用 API 测试步骤
禁用 API 测试中的某个步骤,以在运行和调试测试时跳过该步骤。
在测试中,右键单击要禁用的步骤,然后选择“禁用步骤”。该步骤被禁用,在您运行测试以对其进行调试时将跳过该步骤。
当准备再次启用该步骤时,请右键单击该步骤,然后选择“启用步骤”。
禁用步骤时:
事件处理程序 | 附加到该步骤的事件处理程序也将被跳过。 |
将值用作其他步骤的数据源的步骤 | 如果跳过的步骤具有在其他步骤中用作数据源的输入值,则将使用默认值。 |
链接到检查点值的步骤 | 如果跳过的步骤链接到检查点值,则由于缺失值,测试运行将失败。 |