Pages

Friday 12 July 2013

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.

No comments: