Tricentis Tosca 16.0 Released on Feb-2023 ----- UFT has been upgraded from UFT 15.0.1 to UFT One 15.0.2, Beginning at November 2020.

Wednesday, 3 June 2015

Dictionary Objects

A Dictionary object stores the items (data key, item pairs) in the array. Each item is associated with a unique key. The key is used to retrieve an individual item and is usually an integer or a string, but can be anything except an array.

Advantages: it Can be used as “Global variable” declaration, so that any test can access the values from it in the run time. We can store and retrieve any number of run time values from dictionary.
It is one of the Parameterization techniques we can use in QTP/UFT.

Disadvantages: we can not specify the values in the design time like Data table , Action parameters, environment variable, So it is useful only in Run time , not design time


Methods of dictionary object:

1. Add Method - Adds a key and item pair to a Dictionary object.
odict.add "Currency", "Rupee"

2. Exists Method - Returns true if a specified key exists in the Dictionary object, false if it does not.
odict.exists(“country”)   ‘will return true  for dictionary defined in above examples.

3. Items Method - Returns an array containing all the items in a Dictionary
object.aite = odict.items(“country”)

4. Keys Method - Returns an array containing all existing keys in a Dictionary
object.aite = odict.keys(1)

5. Remove Method - Removes a key, item pair from a Dictionary
object.odict.remove("Currency")

6. RemoveAll Method - The RemoveAll method removes all key, item pairs from a Dictionary
object.odict.removeAll()

Properties of Dictionary object:

1. Count Property - Returns the number of items in a collection or Dictionary.
object.Intcount = odict.count

2. Item Property - Sets or returns an item for a specified key in a Dictionary object. For collections, returns an item based on the specified

 key.ItemVal = odict.Item("Capital")   ‘ gets value of the key
odict.Item("Capital") = “MUMBAI”     ‘ sets value of  the key.

3. Key Property - Sets a key in a Dictionary

object.odict.Key("Capital") = "City"

odict.item(“City”)    ‘will now give value of item stored in key Capital before.

Overview:

'To Create a dictionary ,Scripting.Dictionary object should be created
Set objDictionaryName = Createobject("Scripting.Dictionary")
'To add a dictionary item
objDictionaryName.Add(Key,Item)
'To Retrieve an Item
objDictionaryName.Item(key)
'To retrieve the count of items in dictionary
objDictionaryName.count
'To check if a Key exists in a Dictionary
objDictionaryName.Key
‘Removes the key and its items from the dictionary
objDictionaryName.Remove(key)
'Removes all the keys and Items available in dictionary
objDictionaryName.RemoveAll
'Returns the array collection of Keys available in Dictionary
objDictionaryName.Keys
'Performs the type of comparison needed on the key
They are two types of comparison modes –

1)vbTextCompare - in this mode text case sensitivity is ignored 

2)vbBinaryCompare - in this mode text case sensitivity will be taken into consideration.

              objDictionaryName.CompareMode = vbTextCompare

Example-1:

Simple Script to retrieve all Keys of dictionary and replace the keyword Keys with Items to get all the list of items in dictionary.

‘Create Dictionary Object
Set o1 = createobject("Scripting.dictionary")

‘Add Object to Dictionary
o1.Add "QTP","Fucntional Testing Tool"
o1.Add "Load Runner","Performance Testing tool"
o1.Add "Service Test","Speciality in WebSerices"
o1.Add "Sprinter","ALM Connection needed"

‘To get Array
arrDict = o1.Keys
For i = 0 To Ubound(arrDict)
    msgbox arrDict(i)
Next

‘To get the Key and Item pair
For i = 0 To Ubound(arrDict)
    msgbox "Key - '" & arrDict(i) & "' Item - '" & o1.Item(arrDict(i)) & "'"
Next

Example-2:

strKey = "R2014010175489"
strItemVal = "Mike Tuffer"

Set objDict = Createobject("Scripting.Dictionary")
objDict.Add strKey,strItemVal

'result - output ItemVal contain the "Mike Tuffer"

outputItemVal = objDict.Item(strKey)
print outputItemVal

'Result - intDictItemsCount contains the number of items already available in Dictionary in the current case it is "1"
intDictItemsCount = objDict.Count


'Checks if key is available in the dictionary

If objDict.Exists(strKey) then
    reporter.ReportEvent micPass,"Check Dictionaryfor key " & strKey,"Dictionary contains the key " & strKey
    else
    reporter.ReportEvent micFail,"Check Dictionaryfor key " & strKey,"Dictionary does not contains the key " & strKey
End if

‘Returns you the array collection of Keys available in Dictionary
objDict.Keys

'Removes the "R2014010175489" and its item "Mike Tuffer" from the dictionary

objDict.Remove(strKey)