The Environment
global object is one of UFT's reserved objects and it can be used to store and retrieve both runtime and design-time data.
Note
For a more detailed description of the Environment
object, please see the next recipe Retrieving data from the Environment object.
Proceed with the following steps:
To store a parameter at design time, navigate to File | Settings from the UFT menu and then select Environment. From the Variable type list box, select User-defined, as shown in the following screenshot:
Click on the + button on the right of your Environment window. The Add New Environment Parameter window will open. Enter the new parameter's (variable) name and value:
Click on the OK button to approve. You will notice that the newly created variable, with its value, now appears on the list. You should pay attention to the Type column, in which it indicates that the variable we just created is
Internal
:
What does it mean? A user-defined variable is Internal
when we define it through the UFT GUI. It becomes External
when either we export the variables to an XML file or define them directly in such a file and later, load the file with the variables and values to the test.
Definitions of the types of variable classifications are as follows:
Internal variables: When you open an existing test, which has an
Internal
variable defined, these will be loaded automatically. Changes made to their values during the run session will not be saved. In this sense, the values given toInternal
variables using the GUI can be referred to as default values.External variables: When you open an existing test, which has its user-defined variables loaded from an external XML file, these will be loaded automatically. Their values cannot be changed during the run session. In this sense, the values given to
External
variables can be referred to as constant values.
We can also store a value to an Environment variable dynamically from the code. Such a variable will have global scope but will be accessible during runtime only. This means that you will not see it in the list of Internal
variables, as shown in this recipe. The procedure is equivalent to using the default Add
method of the Scripting.Dictionary
object, as shown in the following line of code:
Environment("MyEnvParam") = "MyEnvValue"
Refer to an article by Yaron Assa at http://www.advancedqtp.com/reservedobjects-as-an-env-object-replacement.