Qtp 简明教程

QTP - Descriptive Programming

当对象存在于对象存储库中时,QTP 脚本才能执行。对象描述使用说明性编程创建:

  1. 当测试人员想要对对象存储库中没有的对象执行操作时

  2. 当应用程序中的对象本质上非常动态时

  3. 当对象存储库变大时,它会导致性能下降,因为对象存储库的大小会增加

  4. 构建框架时,决定根本不使用对象存储库

  5. 测试员在运行时希望执行应用程序上的动作,但不了解对象的唯一属性。

Syntax

使用描述性编程技术编写脚本有两种方法。它们是 -

  1. Description Objects

  2. Description Strings

Description Objects

脚本使用依赖于所用属性及其相应值的对象描述来开发。然后,这些描述用于构建脚本。

'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 Strings

对象的描述使用属性和值(如字符串)来开发,如下所示。

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

Child Objects

QTP 提供 ChildObjects 方法,它使我们能够创建对象集合。父对象位于 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

Ordinal Identifiers

描述性编程用于基于序数标识符编写脚本,当两个或多个对象具有相同属性时,这将使 QTP 对这些对象采取行动。

' 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