You are on page 1of 8

For QTP Realtime Scripts, visit
1. To use an external spreadsheet to data-drive a test

1. Open the Excel file in Excel.

2. Verify that the first row of data contains the Column headers.

3. Rename the sheet(s) to match the names used in the test script (e.g.,
Global, Action1, etc.).

4. Open the test script.

5. Go to Test -> Settings.

6. Select the Resources tab.

7. In the Data table section, select the "Other location" radio button.

8. Click <OK> to close the warning dialog.

9. Enter the full path to the Excel file or browse to the file using the browse
button (...).

10. Click <Apply>.

11. Click <OK>.

2. To compare two .xls files

TrueOrFalse = "Same"
FirstTableCount = DataTable.GetRowCount
SecondTableCount = DataTable.GetRowCount if
(FirstTableCount <> SecondTableCount) then

msgbox "Both files are not

Equal" else
For I = 1 To FirstTableCount

value1 = DataTable.Value("FirstSheetColumn")

value2 = DataTable.Value("SecondSheetColumn")
if(value1 <> value2) then

TrueOrFalse =
"Different" Exit For

if Next

end if

3. To parameterize a password

Option 1:

Use the Set method instead of SetSecure and parameterize that. This method
will not encrypt the password.
For QTP Realtime Scripts, visit
Option 2:

1. Enter the "real" password in the data table.

2. Select the column that contains the password.

3. Right-click on the selected column and select Data -> Encrypt.

If you use Option 2, you can use the SetSecure method to directly access
the encrypted password in the data table.

4. To specify number of times iteration in a test will execute

a. Go to Test -> Settings.

b. Select the Run tab.

c. In the Test Setting window, you will see a section called Data Table
iterations. This is where you can specify the number of iterations.
Select the "Run one iteration only" option to run only with the first
row of data. Select "Run on all rows" to iterate through all rows of
data. Select "Run from row x to row y" to specify which rows of
data in the data table to use.


If you want to run on only one row of data, but do not want to use the first row,
select the "Run from row x to row y" option specifying the same row for x and y.

5. To delete a row from the data table

Selecting a cell or row in the Data Table and pressing Ctrl+X or the Delete key on
the keyboard deletes the data from the selected cell or row, but does not delete the
actual cell or row. Thus, if you delete data from a row in the Data Table using one
of these shortcut keys, QuickTest will still run an iteration on that row.

Workaround: To delete an entire cell or row from the Data Table, select it
and choose Delete from the context menu, or press Ctrl+K on the keyboard.

6. If you import a Microsoft Excel table containing a combo box or list

cells, conditional formatting, or other special cell formats, the
formats are not imported and the cells are displayed in the Data
Table with fixed values.

7. When you record a test and you try to play it back a popup window opens
saying that “An Exception occurred in pdm.dll and Quick Test is going to

How we go around this issue?

If version of Pdm.dll is found on the system, install a newer version

from: This will
be recognized during installation and QuickTest Professional will instruct you to
download the corrected DLL from the Microsoft site.
For QTP Realtime Scripts, visit
8. To verify if a checkbox within a Web table is selected

Use the ChildItem and GetROProperty methods to retrieve the state of a checkbox

The ChildItem method will return an object referencing the checkbox. Follow
this with the GetROProperty method will return the property value specified of
the object.


Set myObj = Browser("Table Example").Page("Table

Example").WebTable("Bats").ChildItem(1, 1, "WebCheckBox",
0) msgbox myObj.GetROProperty ("checked")

Where 0 is not checked and 1 is checked.

9. To rename the local data sheet name in the data table

If you rename a particular action that gets reflected in the local data sheet
whereas you cannot rename any actions in the global data sheet.

10. to access the second row in local sheet without accessing the first row

The SetCurrentRow method sets the specified row as the current (active) row in
the run-time data table.


RowNumber - Indicates the number of the row to set as the active row.
If you do not specify that the sheet is a local sheet, using GetSheet, the row will
be activated in the Global sheet by default.


DataTable.GetSheet("Action1") ' This will activate the specified sheet.

DataTable.SetCurrentRow(2) ' This will set the specified row in the activated sheet.

' If the GetSheet function is not used, it will set the Row in the Global Sheet.
msgbox(DataTable.Value("Data1", "Action1")) ' This will read the cell value.


DataTable.Value("A", "Action2") = "new value"

Whats new in QTP8.2?

Unicode is supported.

Function to send Test result as mail.

For QTP Realtime Scripts, visit
Function SendMail(SendTo, Subject, Body, Attachment)
Set ol=CreateObject("Outlook.Application")

Set Mail=ol.CreateItem(0)

If (Attachment <> "") Then


End If


Set Mail = Nothing

Set ol = Nothing

End Function


'Function SendMail(SendFrom, SendTo, Subject, Body) '

Set objMail=CreateObject("CDONTS.Newmail")

' ObjMail.From = SendFrom

' ObjMail.To =
t = Subject
'ObjMail.Body =


'Set objMail =
Nothing 'End Function



SendTo = "Some one"

Subject = "Sending through QTP

Test" Body = "Testing"

Attachment = "Path"

Call SendMail(SendTo, Subject, Body, Attachment)