QTP Tutorial #11 – Use of Password Encoder and Active Screen – Explained With Examples

This QTP tutorial will explain two basic but important features of QTP which are used frequently in advanced QTP scripts. They are the QTP password encoder tool and the active screen. 

Click here to see the list of all tutorials published in STH.

QTP Password tool:

For obvious reasons websites do not display password even while we are providing it as an input to sign in. QTP has a unique feature that will preserve the password from being out in the open thus maintaining the password’s integrity. As you might have noticed when we enter the password as ‘Mercury’ in the flights application a long and illegible sequence of characters is set in the password edit box.

This is how it looks:

Dialog(“Login”).WinEdit(“Password:”).SetSecure “512c58cda469a14c01aa536f4a1a6a544d7d09e6”

In the above line of code we can see that the password is encrypted.

QTP records a ‘SetSecure’ method when a password is entered. It automatically encodes the password entered during login and decodes the same while running the test.

This is a mechanism that QTP employs to hide the password on the screen.

The user can also choose to enter a value discreetly into a non-password text box by using the SetSecure method and a encrypted equivalent of the text to be entered as a parameter.

If a need arises that we need to set a secure value in a certain text box then QTP comes with a tool called ‘Password Encoder’. This tool will take a regular text and encodes it.

The “Password Encoder Utility’ is available at:

Start > Programs > HP QuickTest Professional > Tools > Password Encoder

It launches the following app:

Password Encoder Utility

The tool is very user-friendly and self explanatory.

When the “Password” field is provided with an input, the “Generate” button becomes active and on clicking it, the encoded text is displayed in the “Encoded String” field. The same can be copied to the clipboard by clicking on the “Copy” button which gets enabled when the encoded password is generated.

For example:

Password Encoder Utility 1

Click Generate:

Password Encoder Utility 2

The encoded text can be used as a direct input to a text/edit box or as a parameter in the DataTable.

Active Screen:

This is another versatile feature that QTP provides to make the testing process more transparent to the user.  While recording QTP saves a snap shot of the application state when a certain operation was performed on it. The amount of details that you want your active screen to store and record depends on the settings. Before we talk more about the settings and what it means let us take a look at how the active screen looks.

To view the active screen, click on “View->Active Screen”.

Here I have a test that creates a Gmail account and I chose to view the active screen. This is how it looks:

[Click to enlarge image]

Active Screen

As you can see, when I have the statement selected the corresponding object on which the statement acted upon is highlighted in the snap shot that the active screen has captured.

Let us see what happens when I move to the next statement, (Click to enlarge image)

Active Screen 1

The corresponding text box where I am trying to enter the First Name is highlighted and as it can be noted this is no longer the Gmail page, it is the ‘create a new Google account’ page.


Now let us see what how much of information can we ask QTP to store in this snap shot while recording and how do we do it.

Choose “Tools->Options->Active Screen” from the menu. It opens up the following window:

Active Screen 2

Each level of capture and its corresponding features are explained in this window. The default setting is as you see it in the screen shot.

The levels can be changed as required.

The following are the levels and what each level means gets displayed as the user sets them.

  1. Complete
  2. Partial(Default)
  3. Minimum
  4. None

The capture level can be decreased or increased even after a test is created.

Alternately the user can set a custom level of active screen capture by clicking on the “Custom Level” button and choosing the relevant options.

The active screen, apart from being a visual aid at examining process also has several important aspects that can help the tester to manipulate the tests as required.

  1. The Objects in the Active screen can be added to the local or shared object repositories.
  2. Check-points can be added from this screen.
  3. Output values can be added
  4. Parameterization for the fields can also be done from this screen
  5. Steps can be added to the test

For example, in our Gmail page earlier if I choose to add the ‘Sign in’ button to the repository I can do that by right clicking on the object and the following options get displayed for me to choose from: (Click to enlarge image)

Active Screen 3

As you can see, I can insert a checkpoint, output value or choose to view or add object among other things.

Although we are yet to uncover the checkpoint and output value features, it is inevitable to mention them here, as they are some key functionality that the active screen helps with.

Replacing the active screen for a certain step:

In case a need arises for me to change the active screen that got recorded by default, QTP provides me a way to do that.

Choose the option “Tools->Change Active screen” from the menu and QTP lets you go to the new screen and when you click on the new screen, the control goes back to QTP with the following confirmation message: (Click to enlarge image)

Active Screen 4

On choosing “Yes” to this message, the new screen will be displayed hence forth when active screen for that step is viewed.

If all the snap shots in your test have to be replaced or updated, you can choose to run the test in “Update Run mode”. You might be able to guess what this means, but in any case we will have a detailed discussion on it later on in the coming articles.

Active Screen 5

Real time use of active screen is when you want to make changes to the test without opening your application but just from the screen captured during record.

Although it must be noted that tests with Active screen captured occupy way more disk space than the ones without it.

On saving a test using “Save as” an option to exclude Active screen is available to the user.

Active Screen 6

So what you can do is, record a test with active screen, modify it as needed while leveraging as many features as you can from it and “Save as” a new test without the active screen. This ensures that your tests are easy on disk space at the same time you get to use the active screen to your benefit while it was needed.

That is some brief insight into the topics, password encoder and Active screen. 

The next article is going to be about Expert view, Step generator, and we will try to include some checkpoints too. Please feel free to post your questions.




Recommended reading

11 comments ↓

#1 Suresh

Do we always need to encrypt it before using in script? Or the recording session will do it for us?

#2 Smeet

Does recording under active screen allow to add steps for all objects even if the application is not available at the time of adding more steps to script?

#3 Swati

@Suresh: The script will encrypt passwords. You can encrypt any text you want based on your need.

#4 Swati

@Smeet: Yes Smeet. If you have that object available in your active screen(this depends on the settings again) then you can.

#5 nilesh

while working on QTP i do heard that there is a way to decode the paswword as well.. can you help me with remembering tha..please

#6 Sharanya

In the trial version i couldnt find the password encoder and the active screen settings as well .. can you please give the modified link ?

#7 mayank

if Agent Name is Rajat then how we can verify it without using checkpoints.
I know it can be done via if else but I don’t know the syntax

#8 gowrisankar

hi every one ,i have one big doubt in qtp ….how to find out password masking working or not

#9 gowrisankar

i wrote this
browser(“Gmail”).Page(“Gmail”).WebEdit(“Email”).Set “testergowri@gmail.com”
wait 2
a= “sankar”
browser(“Gmail”).Page(“Gmail”).WebEdit(“Passwd”).Set a

#10 gowrisankar

my doubt is while using msgbox …..
it want to take it as masking text

#11 shanmob

my objects are visible but not in the active screen. I need to swipe down or up for QTP to change everytime. Is there any method for that i can make the object in active screen and perform operation.

Leave a Comment