Parameterization in QTP (Part 2) – QTP Tutorial #20

By Vijay

By Vijay

I'm Vijay, and I've been working on this blog for the past 20+ years! I’ve been in the IT industry for more than 20 years now. I completed my graduation in B.E. Computer Science from a reputed Pune university and then started my career in…

Learn about our editorial policies.
Updated March 6, 2024

In part 1 of this QTP Parameterization tutorial, we explained Datatable Parameterization with an example.

In this QTP tutorial let’s focus on the remaining three Techniques for parameterization in QTP:

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

=> Click Here For QTP Training Tutorials Series

Techniques for Parameterization

#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’s just keep the default settings, click OK and see a 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

The 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 include TestIteration, OS, OSVersion, etc. The usage is similar to the usage of any other variable. For example, in the second iteration of a test, if you want to display a custom message, then this is how you can do it:

If TestIteration=2
Msgbox “Cusotm message: Take a break!”
<….Code….>
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” Dropdown 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 built-in and read-only. This shows how we can use a built-in variable.

If you 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. Next time you are trying to parameterize anything else with an environment variable within the test, then this one will be available on the list.

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

Typically, this file is a .xml with the following structure and is available on your desktop:

<Environment>
<Variable>
<Name>First Name</Name>
<Value>Swati</Value>
</Variable>
<Variable>
<Name>Last Name</Name>
<Value>Seela</Value>
</Variable>
</Environment>

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

QTP Parameterization using Environment variables

On the screen, you can see the option to add the file, so go 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 the “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 are set to 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 action. Input parameters for action or test are nothing but the values that get supplied to them from elsewhere in the test.

They could be:

  1. Value(s) passed on while calling for that action.
  2. Return value of another action (Output parameters)
  3. The 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 ways these can be used to parameterize are 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 “Swati” 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 "swati”

This is how it is done:

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

Also, if there is an 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 action.

You can define, modify, and delete the input and output parameters in the Parameters tab of the Action Properties dialog box (Edit -> Action -> Action Properties or right-click 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 the 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.

=> Visit Here For The QTP Training Tutorials Series

As always, please let us know your comments, and feel free to post your questions. Upcoming topics are actions, functions, and some error handling methods.

Was this helpful?

Thanks for your feedback!

Recommended Reading

9 thoughts on “Parameterization in QTP (Part 2) – QTP Tutorial #20”

  1. Hi Swati, At what situations we need to do the parameterization using environment variables ? Parameterization using data table can give a variety of inputs to the run session but envi.variables do have the same value through out the run session.Then why they are used? thanks

    Reply
  2. Hi , i got one scenario . the script line states as Browser(“”).page(“”).webtable(“”).webtable(“”).webelement(“”).set/click/GETROProperty…

    here above case , the webtable (any one in the flow ,in some cases two )name changes as dynamically like date and time in webtable(Ex: 14/05/2013 10:10)and some times 6digit number (any number)in another case
    so ,like this changing the webtable names , how can capture names and properties .and how to manage the Object repository for parameterizing the above script ?
    or if it is descriptive how to manage ?
    and if Regular Expressions then can you give me in detailed ,please waiting for help !!!
    Thank you.

    Reply
  3. @Venkatesh: value configuration Options can be configured for any step in your test by going to the Keyword view and clicking on the “data” column.

    Reply
  4. @Karun, descriptive programming with regular expressions comes to my mind as a possible solution. However, without the actual AUT it might be tricky to give you absolute code.
    Have you tried using just ‘name:=*’ to identify the webtable in the page and then get the RO Property? Again, the working of this would depend on how many tables are in your page etc.

    I wish I could give you a more exact answer, but without the app this is the best anybody can guess.

    Reply

Leave a Comment