Relevant for: API testing, GUI actions, scripted GUI components, function libraries, user code files, and business process tests
This task describes different ways you can control and debug your run sessions so you can identify and handle problems in your documents.
Ensure that you have the following prerequisites before you start debugging:
|Microsoft Script Debugger||
You must have the Microsoft Script Debugger installed to run tests or components in debug mode.
If it is not installed, use the UFTAdditional Installation Requirements Utility to install it:
|Enable the API test debugger||
To debug API tests, you must enable the debugger.
Select Tools > Options > API Testing tab > General node and then select Run test in debugging mode.
During a run session, UFT normally runs steps quickly. When debugging, you may want to slow the test run speed to enable more effective debugging.
To slow the test run speed:
- Browse to the Test Runs pane of the Options dialog box (Tools > Options > GUI Testing tab > Test Runs node).
- Modify the Delay each step execution by value with the number of milliseconds you want UFT to wait between each step.
Use the following methods when debugging a GUI test to determine how your steps are run.
Runs only the current step in the active document.
In the toolbar, press the Step Into button .
When debugging a GUI test, if the current step calls another action or a function, the called action or function is displayed in the document pane. The test or function library pauses at the first line of the called action or function.
Continues the run to the end of the function, or user code file, returns to the calling test, component, or function library, and then pauses the run session at the next line (if one exists).
In the toolbar, press the Step Out button .
If the current step calls a user-defined function, the called function is executed in its entirety, but the called function script is not displayed in the document pane. The run session then returns to the calling document and pauses at the next step (if one exists).
In the toolbar, press the Step Over button .
If the current step calls another action, the called action is displayed in the document pane, and the run session pauses at the first line of the called action (like Step Into).
Select the step in your document at which you want UFT to stop and select Run > Run to Step.
Select the step at which you want UFT to start the run and select Run > Debug from Step.
Note: These commands can also be used to stop at a specific action. Right-click an action in the canvas and select Run to Action, Debug from Step, or Run from Action.
For details, see Use breakpoints .
- If you a run a test using the Run automation method, the test does not stop at breakpoints even if they are saved in the test.
- If you run a test with breakpoints using the Run automation method, the breakpoints remain visible but are ignored during the test run.
- If you are running a test from the ALM Test Lab module in hidden mode (as specified in the UFT Remote Agent, UFT will not stop the test at the breakpoints.
- If you are running a test from the ALM Test Plan module not in hidden mode, the test stops at breakpoints if you select the Run Test Sets in debug mode option in the UFT Remote Agent
For details on Remote Agent settings, see Remote Agent Settings Dialog Box.
During a run session, use the following options to view the current values of code expressions, variables, and object properties.
The Watch pane displays the value of selected variables and expressions that have been added to the Watch Pane.
Add an expression to the Watch pane from the Editor or from a function library, but not from the Keyword View.
To add an expression do one of the following:
|Enter the expression name||Click the Add New Watch Expression button and enter the name of the expression in the Add New Watch dialog box.|
|Highlight a selected expression||
For GUI actions, scripted GUI components, and function libraries only.
Highlight the selected expression and select Run > Add to Watch right-click the expression and select Add to Watch from the context menu.
To add an description property to the Watch pane, you must use an expression that calls GetROProperty.
This enables you to watch the run-time value of the object's . For example, to watch the value currently displayed in the Calculator application, you can add the expression:
For details, see Watch pane.
UFT's Quick Watch enables you to view the current value of a selected object in a line in your test or component, evaluate the value of an expression, or add an item to the Watch Pane.
In the line in your test or component containing the object, variable, or expression, do one of the following:
Right-click and select Quick Watch
Select Run > Quick Watch
In the Quick Watch, do one of the following:
In the Expression field, enter the name of the object, variable, or expression and click Evaluate. UFT displays the value in the current context of the test or component.
Enter the name of the object, variable, or expression and click Add to Watch. UFT adds it to the list in the Watch Pane.
In the Local Variables pane, UFT displays all variables in the test or component (up to the current step) and their value in the current context of the test or component run.
For details, see Local Variables pane.
As you continue stepping through the subsequent steps in your test, function library, or user code file, UFT automatically updates the Watch pane and Local Variables pane with the current value for any variable or expression whose value changes.
UFT also reevaluates the information displayed in the Watch pane and Local Variables pane as you make changes in the context of your debug session (in the Console Pane).
Note: To expand the ability of UFT to display information on test objects, we recommend registering PDM from Internet Explorer (for versions of Internet Explorer 8 or higher and Visual Studio 2008).
Enter the following in the command line to register the .dll: regsvr32 "%ProgramFiles%\Internet Explorer\pdm.dll"
Change the value of a variable or property manually in Watch pane and Local Variables pane.
For example, for test objects that support the Object property, edit the value of a run-time object property displayed in the Watch pane, thereby changing the value of the property in the application you are testing before you resume the run session.
Do one of the following:
|Console pane||Enter a command to change the value of an object, variable, or expression|
|Watch or Local Variables pane||In the Value column for the object, variable, or expression, manually change the value|
|Watch pane or Quick Watch||
Add any of the following types of expressions:
Expressions added to the Watch pane are saved with the document and updated accordingly as you make changes to your document.
Caution: UFT runs the expressions in the Watch pane to evaluate them.
Therefore, do not add a method or any expression whose evaluation could affect the state of the test or any GUI test object. This can lead to unexpected behavior of your test, component, function library, or user code file.
In the Console pane, enter the command to run.
To view the currently running call stacks in your run session, select View > Debug > Call Stack.
Double-click on a stack name in the pane to navigate directly to the line of code that begins the call stack.
Select View > Debug > Threads.
In the list of threads that is displayed, you can double-click on the thread name to navigate directly to the beginning of the thread.
Select View > Debug > Loaded Modules. UFT displays the list of currently loaded modules (depending where in the test you have paused).
Disable a step in an API test to skip it when you run and debug the test.
In your test, right-click the step you want to disable and select Disable step. The step is disabled and will be skipped when you run your test to debug it.
When you are ready to enable the step again, right-click the step and select Enable step.
When steps are disabled:
Event handlers attached to the step are also skipped.
|Steps with values used as data sources for other steps||
If the skipped step has input values that are used as data sources in other steps, default values are used instead.
|Steps linked to checkpoint values||
If the skipped step is linked to a checkpoint value, the test run will fail because of a missing value.