RSS Feed

Parameterization in QTP (Part 2)

Posted on

In part 1 of this QTP Parameterization tutorial we explained Datatable Parameterization with example. In this QTP tutorial let’s focus on remaining three techniques for parameterization in QTP:

2) Random number parameters
3) Environment variable parameters
4) Test/Action parameters

#2 – Parameterization in QTP using Random Number

If a certain field needs to have any number within a certain range you can specify the same using QTP. In the Value configuration properties screen, select “Random number” and the following options come up: QTP random number parameterization

As you can see, the options are pretty self explanatory. The range can be set and how many times during a particular iteration run or a test run should this value be generated can be programmed here.

Let us just keep the default settings and click OK and see the line of code that gets inserted.

Browser("Google").Page("Google").WebEdit("q").Set RandomNumber("p_Text")

In real time, this is a very useful feature that can help the tester automate the scenarios in which the numeric range of data needs to be verified.

#3 – QTP Parameterization using Environment Variables

Environment variable is a value that remains the same throughout a test run unless explicitly changed by the program.

3 types of environment variables:

  1. User defined internal
  2. User defined external
  3. Built in

We will start with built in variables because that is the simplest.

Built in variables are created by QTP itself and contain information about the test path, operation system etc. These are read only and hence can only be used by the user as they are.

Some examples are TestIteration, OS, OSVersion etc. The usage is similar to the usage of any other variable. For example in the second iteration of a test you want to display a custom message, this is how you can do it:

If TestIteration=2
Msgbox “Cusotm message: Take a break!”
End if

Next, let us try to parameterize a certain value with an environment variable.

QTP Parameterization using Environment variables

From the above screen, you can see that the type is read only and we are only able to create a user defined- internal environment variable.

Click on the “Name” Drop down box:

QTP Parameterization using Environment variables

Even though we have not created any environment variables in this test so far there are many of them available in the drop down to be used.

Select any one of them:

QTP Parameterization using Environment variables

It shows that the variable is a built-in and read only. So this shows how we can use a built in variable.

But if we need a new one, enter a new name, say PV assign 0 and save it:

QTP Parameterization using Environment variables

Let us first accept the default values and enter a “0” in the value field and click OK. The following is the line of code that gets inserted:

Browser(“Google”).Page(“Google”).WebEdit(“q”).Set Environment(“PV”)

Since we inserted an E.V. it is obvious that the value of PV is going to be 0 throughout the test. The next time you are trying to parameterize anything else with an environment variable within the test this one will be available in the list.

User defined – external:  In case when we need to have an entire list of environment variables available for a test, the user has an option to create it externally and associate it to the test and make those variable available to this test.

<Name>First Name</Name>
<Name>Last Name</Name>

Once this is set, we can add this file to the test by going to File->Settings->Environmentand selecting “User defined” from the drop down:

QTP Parameterization using Environment variables

In the screen, you can see the option to add the file, so ahead and add it.

Alternately, if I need the variables in this test for another one, I can export them into a file by clicking on “Export” option.

So now that we know how to set and use environment variables, there is yet another use for these:

In case, we set the values for URL_env and Browser_env variables, then the record and run settings set overrun and no matter what you set there, it is going to consider the values that these variables contain.

#4 – QTP Parameterization using Action and Test Parameters

We know that a test in QTP but a call to an action. Input parameters for an action or test are nothing but the values that get supplied to them from else where in the test.

They could be:

  1. Value(s) passed on while calling that action
  2. Return value of another action (Output parameters)
  3. A value that it gets from some top level action

Output parameters are the return values of an action that can be used later in the test.

The way these can be used to parameterize is as follows:

These can be used as a parameter by using the “Parameter” keyword.

If this is the statement that you need to parameterize so that the value you set is not a constant “Thomas” but a value that is the input value of an action that is already defined, say “OPFirstName”:

Browser(“Gmail: Email from Google”).Page(“GoogleAccounts”).WebEdit(“FirstName”).Set “thomas”

This is how it is done:

Browser(“Gmail: Email from Google”).Page(“GoogleAccounts”).WebEdit(“FirstName”).Set Parameter(“OPFirstName”)

Also, if there is a output parameter that is already defined then you could also write something like:

Parameter(“TotalValue”) = Browser(“Gmail: Email from Google”).Page(“GoogleAccounts”).WebEdit(“FirstName”)

Now let us see, how the i/p or o/p parameters can be set in the first place. Let’s start with an action.

You can define, modify, and delete input and output parameters in the Parameters tab of the Action Properties dialog box (Edit > Action > Action Properties or right-click an action and select Action Properties).

QTP Parameterization using Action and test parameters

Similarly, for the test, the parameters can be set:

QTP Parameterization using Action and test parameters

So, to call an action with the input parameters this is the statement that needs to be used:

RunAction ActionName, IterationQuantity, Parameters

This concludes our parameterization in QTP topic. Out of all that we have discussed in these 2 articles, the one that we use the most is the data table option. So please take some time to write a test and run it with all the iteration options to get a grip on this topic.


2 responses »

  1. Hi would you mind stzting which blog platform you’re working with?
    I’m looking to sgart my own blog in the near
    future but I’m having a hard time selecting between BlogEngine/Wordpress/B2evolution and Drupal.

    The reason I ask is because your design seems different then most blogs and I’m looking
    for somethingg unique. P.S Sorry for being off-topic but I had to ask!



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: