Dictionary Object in QTP - A complete guide

上一篇 / 下一篇  2011-11-29 17:23:41 / 个人分类:QTP

Today we will see a less talked about and not so often used ‘Dictionary Object‘ in QTP. Note that, this is not something very QTP specific. Dictionary object was developed by Microsoftand is part of VB Scripting.

What is Dictionary Object?

In simple terms, Dictionary object is similar to a typical array. The difference between a dictionary object and an array is that there is a unique key associated with every item of dictionary object. This unique key can help you in calling that item as and whenever required.

What is the syntax and how can we use dictionary object?

Shown below is a typical script.

Dim dict ‘ Create a variable.
Set dict = CreateObject(“Scripting.Dictionary”)
dict.Add “Company”, “HP” ‘ Adding keys and corresponding items.
dict.Add “Tool”, “QuickTest Pro”
dict.Add “Website”, “LearnQTP”
dict.Add “Country”, “India”

dict is an object of classScripting.Dictionary.Company-HP,Tool-QuickTest Pro, Website-LearnQTP, Country-Indiaare key-item pairs that were added using Add method on dict object.

Other methods available for dictionary object areExists Method,Items Method,Keys Method,Remove Method,RemoveAll Method

Using Exists Method to check whether the key Country exists?

If dict.Exists(“Country”) Then
msg = “Specified key exists.”
msg = “Specified key doesn’t exist.”
End If

Using Items and Keys method to retrieve ALL items and keys respectively from inside dictionary object.

i = dict.Items ‘ Get the items.
k = dict.Keys ‘ Get the keys.
For x = 0 To dict.Count-1 ‘ Iterate the array.
msgbox  i(x) & ” :” & k(x)

Using Remove method to remove Website – LearnQTP pair from the object.


Using Remove all method to clear the dictionary

dict.RemoveAll ‘ Clear the dictionary.

What are the places where it can be used?

When you want to share data between different actions in a test, dictionary object can be used. To do this you should create a reserved test object for the Dictionary object. Here is a process to set up a reserved dictionary object.

  1. Open Window’s registry by opening a Run window and enteringregedit.
  2. Navigate to HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\ReservedObjects.
  3. Create a new key (folder) named GlobalDictionary by right-clicking on the ReservedObjects key and selecting New -> Key.
  4. Under the new key, create a String value namedProgIDby right-clicking on GlobalDictionary and selecting New -> String Value.
  5. Assign “Scripting.Dictionary” to the new ProgID string value by right-clicking on ProgID and selecting “Modify.”
  6. If QTP window is already open you need to close and restart it.
  7. Now to check whether dictionary object was installed successfully in registry, simple writeGlobalDictionary.(don’t forget the dot) and you should see a drop-down containing all methods and properties associated with dictionary object.


Why dictionary object and why not array only?

As shown in the example above, dictionary object was used with the index (key) being string. In the case of array, the index can be ONLY numeric. Then of course we have some obvious advantages like referencing a value with a meaningful keys etc.





Open Toolbar