QTP - Programmation descriptive

Les scripts QTP ne peuvent s'exécuter que si les objets sont présents dans le référentiel d'objets. Les descriptions des objets sont créées à l'aide de la programmation descriptive -

  • Lorsque les testeurs veulent effectuer une opération sur un objet qui n'est pas présent dans le référentiel d'objets

  • Lorsque les objets de l'application sont de nature très dynamique.

  • Lorsque le référentiel d'objets grossit, il en résulte des performances médiocres à mesure que la taille du référentiel d'objets augmente.

  • Lorsque le framework est construit, de sorte qu'il a été décidé de ne pas utiliser du tout le référentiel d'objets.

  • Lorsque les testeurs souhaitent effectuer une action sur l'application au moment de l'exécution sans connaître les propriétés uniques de l'objet.

Syntaxe

Il existe deux façons de créer des scripts à l'aide de la technique de programmation descriptive. Ils sont -

  • Objets de description
  • Description Chaînes

Objets de description

Le script est développé à l'aide d'objets de description qui dépendent des propriétés utilisées et de leurs valeurs correspondantes. Ensuite, ces descriptions sont utilisées pour construire le script.

'Creating a description object
Set btncalc = Description.Create()

'Add descriptions and properties
btncalc("type").value = "Button"
btncalc("name").value = "calculate"
btncalc("html tag").value = "INPUT"

' Use the same to script it
Browser("Math Calc").Page("Num Calculator").WebButton(btncalc).Click

Description Chaînes

La description des objets est développée en utilisant les propriétés et les valeurs sous forme de chaînes comme indiqué ci-dessous.

Browser("Math Calc").Page("Num Calculator").WebButton("html 
tag:=INPUT","type:=Button","name:=calculate").Click

Objets enfants

QTP fournit la méthode ChildObjects, qui nous permet de créer une collection d'objets. Les objets parents précèdent ChildObjects.

Dim oDesc
Set oDesc = Description.Create
oDesc("micclass").value = "Link"

'Find all the Links
Set obj = Browser("Math Calc").Page("Math Calc").ChildObjects(oDesc)

Dim i
'obj.Count value has the number of links in the page

For i = 0 to obj.Count - 1	 
   'get the name of all the links in the page			
   x = obj(i).GetROProperty("innerhtml") 
   print x 
Next

Identificateurs ordinaux

La programmation descriptive est utilisée pour écrire le script basé sur des identificateurs ordinaux, ce qui permettra à QTP d'agir sur ces objets lorsque deux objets ou plus ont les mêmes propriétés.

' Using Location
Dim Obj
Set Obj = Browser("title:=.*google.*").Page("micclass:=Page")
Obj.WebEdit("name:=Test","location:=0").Set "ABC"
Obj.WebEdit("name:=Test","location:=1").Set "123"
 
' Index
Obj.WebEdit("name:=Test","index:=0").Set "1123"
Obj.WebEdit("name:=Test","index:=1").Set "2222"
 
' Creation Time
Browser("creationtime:=0").Sync
Browser("creationtime:=1").Sync
Browser("creationtime:=2").Sync