Dictionary Object and QTP

Share This Post -

A little introduction about Dictionary Object:


The Dictionary object is used to store information in name/value pairs (referred to as key and item). The Dictionary object might seem similar to Arrays, however, the Dictionary object is a more desirable solution to manipulate related data.

Comparing Dictionaries and Arrays:

  • Keys are used to identify the items in a Dictionary object
  • You do not have to call ReDim to change the size of the Dictionary object
  • When deleting an item from a Dictionary, the remaining items will automatically shift up
  • Dictionaries cannot be multidimensional, Arrays can
  • Dictionaries have more built-in functions than Arrays
  • Dictionaries work better than arrays on accessing random elements frequently
  • Dictionaries work better than arrays on locating items by their content

    Read more on..

Dictionary Object & QTP

As an alternative to using environment variables to share values between actions, you can use the Dictionary object. The Dictionary object enables you to assign values to variables that are accessible from all actions (local and external) called in the test in which the Dictionary object is created.


'In order to have IntelliSense for the Dictionary object, and have it recognized by other actions, it is added to the registry 
Dim WshShell
Set WshShell =CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\Software\Mercury Interactive\QuickTest Professional\MicTest\ReservedObjects\GlobalDictionary\ProgID", "Scripting.Dictionary","REG_SZ"
Set WshShell = Nothing

After updating the registry, you must close and reopen QuickTest Professional.
' ***********************************************************************************
Available methods
' -----------------------------
GlobalDictionary.Exists(<Key Name>) ' Returns True or False

GlobalDictionary.Remove(<Key Name>) ' Remove a specific key

GlobalDictionary.RemoveAll ' Removes all keys

GlobalDictionary.Add <Key Name>, <Value> ' Create a new key and assigns its value

GlobalDictionary.Item(<Key Name>) ' Gets/Sets a key value