How do I store stuff in QTP?
A variable is used to store dynamic data types like strings, numbers and object values. The variable is a name assigned to a location in your computer memory where the date used by QTP is stored. Think of it as a way to reserve memory in your computer.
For example, say we've created a variable named "Enabled" that QTP uses to store a textbox's enable property that has a value of "true." The variable called Enabled is really just a pointer to a location in the memory where the value "true" is stored.
Declare variables
Although VBScript doesn't require that you declare your variables before using them, it's a good practice to do so. To declare a variable in VBscript, you must use the Dim statement:
Dim myName
Setting values
You can put a value into a variable by using the assignment operator which is the equal sign (=). The variable always is on the left of the equal with the value you want to assign it is placed to the right of the equal sign. So to assign the myName variable a value you would write:
myName = "Joe Colantonio"
Now, QTP knows what you're talking about when you type myName:
Msgbox myName

Keep in mind that variable in QTP are not case sensitive so QTP recognizes MYNAME ,MynAme and myName as the same exact variable.
No need to declare a data type
Unlike some other languages, including java and C#, VBScript doesn't require you to declare in advance the data type of a variable. All variables in VBScript are the same data type, which is a Variant. When you run your script at runtime, VBScript automatically assigns a subtype to the variable. So, a variable named myName can store both a string:
myName = "Joe Colantonio"
Msgbox TypeName(myName)

and an integer value:
myName = 10
Msgbox TypeName(myName)

Basically, VBScript has a built-in method of looking at a variable's value and automatically deciding what its subtypes should be.
Literals
Another term to be aware of is "literal." A literal is value that is hardcoded directly into your script. As a result, said value cannot change during the lifetime of a script –in other words, the time between when a QTP script starts executing until the time it stops. A variable is the opposite -- its value can change throughout the lifetime of your script. For example, if we wrote:
myFirstName = "Joe"
msgBox "Hey " & myFirstName & " where you going with that gun in your hand"
The text "Hey" is a literal and can't change since it's hardcoded into the script. Also in this example, the & (ampersand) is an operator that allows you to concatenate (or join) one or more strings together.
Operators
Operators used in QTP in the script's VBScript code are used to change or test a value. You can also use them to perform things like standard mathematical operations: plus (+), multiply (*), divide (/) and subtract (-).
Sum = 50 + 20
Msgbox Sum

How to see results
You may be wondering how you can see the current value of a variable. So far we have used the msgbox function to show the result but there are two other ways to see a variables value.
-
Print Statement
You can also use the QTP's print statement to display info in the QuickTest print log window. The print window will remain open until you close it. For example:
myName = "Joe Colantonio"
print myName

-
ReportEvent Method
Both the msgbox and print statements are helpful if your debugging a script but what if you want to store the variable's value to view and keep as part of the test run's history. For this you would use the ReportEvent Method. This will report an event to the run results of your tests:
myName = "Joe Colantonio"
Reporter.ReportEvent micDone, "My variable name was " & myName,myName

When bad things happen
If you are creating input parameters for your QTP script, you'll need a way to verify that the data being passed to your variables is what is expected. For example, if your script is performing a calculation and someone passes a string rather than a number, an exception will occur. The example below will generate a Type mismatch error:
x = 10
y = "joe"
sum = x + y
msgbox sum

When you are accepting inputs from a user or reading from a file you often have no control over what is being passed to your test's variables. Luckily, VBScript has some functions that can help.
Is functions
One method of checking what has been passed to your variables is to use the IsNumeric function. For example the following code will check if the variable "y" contains a number, and will return either true or false.
y = "joe"
isThisNumber = IsNumeric(y)
msgbox isThisNumber
There are also some other IS functions you can use:
- IsDate() - Returns a Boolean value indicating whether an expression can be converted to a date.
- IsEmpty() - Returns a Boolean value indicating whether a variable has been initialized.
- IsNull() - Returns a Boolean value that indicates whether an expression contains no valid data.
- IsObject() - Returns a Boolean value indicating whether a variable has been initialized.
- IsArray() - Returns a Boolean value indicating whether a variable is an array.
That's it for variables!
Stay tuned for my next post, which will cover Flow Control operations in QTP.

{ 7 comments… read them below or add one }
Hi Joe,
Thanks very much for the post.
In my current project I need to access the name of the variable, I searched a lot but was not able to find the solution. Can you tell me how to display the name of the variable.
e.g.
Dim var
var = “Hello World”
MsgBox var
This will display “Hello World”
Do you know any method by which we can display/access the actual variable name(var in this case) instead of the value stored in it, using QTP.
Thanks in advance,
Navnath Patil.
i never knew we had typename and print functions in QTP.
though i knew we dont need to declare variables in VBScript but i had no idea we called them Variant.
wow..!!! thanks for sharing
Taran Vohra » NP-Thanks for the feedback Taran.
Its one thing to stumble through QTP and figuring out certain things. Its completely another having it all laid out here in way that completely makes sense. Eagerly awaiting the next post.
Alfred Esposito » Cool – Thanks Alfred! I’m still debating if each post in this series should have a video. Would you like to see videos for all the post?Cheers~Joe
Hi Joe,
I am facing a problem in storing the output of the following in a variable
a = Window(“Flight Reservation”).Dialog(“Fax Order No. 1″).WinEdit(“# Tickets:”).Output CheckPoint(“# Tickets:”)
Here “a” is a variable declared in the beginning using DIM
can you please help me in this.
Thanks,
Kulwinder
Kulwinder » Hi Kulwinder – did you figure this out yet? It looks like you are missing parentheses:
a = Window(“Flight Reservation”).Dialog(“Fax Order No. 1″).WinEdit(“# Tickets:”).Output (CheckPoint(“# Tickets:”))