QTP - Programação Descritiva

Os scripts QTP podem ser executados apenas se os objetos estiverem presentes no Repositório de objetos. As descrições dos objetos são criadas usando a programação descritiva -

  • Quando os testadores desejam realizar uma operação em um objeto que não está presente no repositório de objetos

  • Quando os objetos no aplicativo são muito dinâmicos por natureza.

  • Quando o Repositório de objetos cresce muito, isso resulta em um desempenho ruim conforme o tamanho do Repositório de objetos aumenta.

  • Quando a estrutura é construída, de forma que foi decidido não usar o Repositório de Objetos.

  • Quando os testadores desejam executar uma ação no aplicativo em tempo de execução sem ter o conhecimento das propriedades exclusivas do objeto.

Sintaxe

Existem duas maneiras de fazer scripts usando a técnica de Programação Descritiva. Eles são -

  • Objetos de descrição
  • Descrição Strings

Objetos de descrição

O script é desenvolvido usando objetos de descrição que dependem das propriedades usadas e seus valores correspondentes. Então, essas descrições são usadas para construir o 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

Descrição Strings

A descrição dos objetos é desenvolvida usando as propriedades e valores como strings conforme mostrado abaixo.

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

Objetos Filhos

QTP fornece o método ChildObjects, que nos permite criar uma coleção de objetos. Os objetos pais precedem 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

Identificadores Ordinais

A programação descritiva é usada para escrever o script com base em identificadores ordinais, que permitirão ao QTP agir nesses objetos quando dois ou mais objetos tiverem as mesmas propriedades.

' 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