QTP - Tanımlayıcı Programlama

QTP komut dosyaları, yalnızca nesneler Nesne Deposunda mevcutsa çalıştırılabilir. Nesnelerin açıklamaları, Açıklayıcı programlama kullanılarak oluşturulur -

  • Test kullanıcıları, nesne havuzunda bulunmayan bir nesne üzerinde bir işlem gerçekleştirmek istediğinde

  • Uygulamadaki nesneler doğası gereği çok dinamik olduğunda.

  • Nesne Deposu büyüdüğünde, Nesne Deposunun boyutu arttıkça düşük Performansa neden olur.

  • Çerçeve kurulduğunda, Nesne Deposunu hiç kullanmamaya karar verildi.

  • Test uzmanları, nesnenin benzersiz özellikleri hakkında bilgi sahibi olmadan çalışma zamanında uygulama üzerinde bir eylem gerçekleştirmek istediklerinde.

Sözdizimi

Tanımlayıcı Programlama tekniğini kullanarak komut dosyası oluşturmanın iki yolu vardır. Onlar -

  • Açıklama Nesneleri
  • Açıklama Dizeleri

Açıklama Nesneleri

Komut dosyası, kullanılan özelliklere ve bunlara karşılık gelen değerlere bağlı Açıklama Nesneleri kullanılarak geliştirilmiştir. Daha sonra bu açıklamalar komut dosyasını oluşturmak için kullanılır.

'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

Açıklama Dizeleri

Nesnelerin açıklaması, aşağıda gösterildiği gibi dizeler olarak özellikler ve değerler kullanılarak geliştirilmiştir.

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

Alt Nesneler

QTP, bir nesne koleksiyonu oluşturmamızı sağlayan ChildObjects yöntemini sağlar. Üst nesneler, ChildObjects'ten önce gelir.

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

Sıra Tanımlayıcıları

Tanımlayıcı programlama, iki veya daha fazla nesne aynı özelliklere sahip olduğunda, QTP'nin bu nesneler üzerinde hareket etmesini sağlayan sıralı tanımlayıcılara dayalı komut dosyası yazmak için kullanılır.

' 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