QTP中使用描述性编程
fY[vj3K?0我们简单介绍一下有关功能测试的基本方法,这实际上对于所有自动化功能测试产品来说都是一样的。一般情况下,用QTP来进行功能测试的基本方法主要包括三个主要阶段:51Testing软件测试网5R1p`2G [5b
Q#c/Gk3?Y!R01、创建测试或组建51Testing软件测试网,Zy+s]/B!rS
首先可以通过在应用程序或网站上录制会话,或者建立对象库并使用关键字驱动功能向关键字视图中手动添加步骤来创建测试或组件。在QTP里面我们可以通过两种方式添加步骤来创建测试或组件:51Testing软件测试网}XA:N,{$~&rvb"T
在应用程序或网站上录制会话。51Testing软件测试网jC
Ql yzy~P!^
建立对象库并使用这些对象在关键字视图或专家视图中手动添加步骤
.g'Gy!H+K{n+R:i&f0然后在在测试或组件中插入检查点,检查页面、对象或文本字符串中的特定值或特征,通过它可以标识网站或应用程序是否正常运行。或是通过用参数替换固定值扩展测试或组件的范围。提供数据表中的数据,定义环境变量和值,定义测试、组件或操作参数和值,或者使用QTP生成随机数字或当前用户和测试数据等。
+^9OkG,q!b5A@0最后如果需要的话使用QTP中众多的功能测试功能来增强测试或组件或添加编写语句来实现更复杂的测试目标。51Testing软件测试网"FN$o\*^{,\WQ
2、运行测试和组建51Testing软件测试网#R8P \/@SR#|
控制运行会话,帮助标识和消除测试或组件中的缺陷。使用“单步执行”、“单步跳过”和“单步退出”命令逐步运行测试或组件,或设置断点使测试或组件在预定点暂停。每当测试或组件在断点处停止时,可以在“调试查看器”中查看其变量的值。51Testing软件测试网ct})e'J ri
o:@
3、分析结果51Testing软件测试网w K ]x8L,il
在运行测试或组件之后,通过两种方式可以查看其结果:在“结果”窗口中查看结果;自动报告在运行会话过程中检测到的缺陷,可能的话并上报到其他缺陷管理产品中。
cjw"| N:s0.试图与对象模型51Testing软件测试网CJ'Qpvyx
在介绍QTP中的Descrīptive Programming前,我们有必要先介绍一下ExpertView及在ExpertView里进行编码的一些基本知识。51Testing软件测试网5w y2Oj;n"?/T.v
在QTP里面提供了两种视图,第一种我们把它称为KeywordView(关键字视图,在早期的版本中称为TreeView),第二种把它成为ExpertView(专家视图),这两种视图分别是针对两种类型的人进行使用的。
Gc}rt3@0ja01、KeywordView(关键字视图)
){jM1L!j(e0通过关键字视图,QTP提供了一种模块化的表格格式创建和查看测试或组件的步骤。每个步骤在关键字视图中都是一行,这样用户可以轻松的修改任何一部分组成。
xc+}/I
c4u
pMS_0在录制会话过程中,用户在应用程序上执行的每个步骤在关键字视图中记录为一行。例如,在51testing的页面上执行的下列三个步骤:
m
CmK(E z+o0在“用户名”编辑框中输入zhoda02。51Testing软件测试网l
K$R,T?]8r4L7Ik
在“密码”编辑框中输入加密字符串41c630a213508cd49eb35089db1b893144b9。51Testing软件测试网l.tL9\5Z3q,M0f
单击“登录”按钮。51Testing软件测试网[N#HGm
那么,关键字视图将包含下列行:51Testing软件测试网UT+W7C"Z^3RMY
g
Dx{RI{^051Testing软件测试网'ZSxS~9cFJ6m
51Testing软件测试网`;Q6[.@y!mq
很显然,关键字视图非常直观有效,使用的人可以很清晰的看到被录制对象的录制层次及运行步骤,比较适合那些对于业务操作流程熟悉的人员使用。但是,如果需要一些增强型的操作,那就需要切换到专家视图里进行了。
L Z$jHsEt02.ExpertView(专家视图)
$R Fx+i@+a0hfWg0QTP在关键字视图中的每个节点在专家视图中对应一行脚本。上面例子对应的脚本如下:(删除后一句是因为前后重复,一句可以说明问题)51Testing软件测试网'g;u4lIx$xhVC!@
Browser("51Testing软件测试网:软件测试的专业网站").Page("51Testing软件测试网:软件测试的专业网站").WebEdit("username").Set "zhoda02"
7^
[mVD?
n0Browser("51Testing软件测试网:软件测试的专业网站").Page("51Testing软件测试网:软件测试的专业网站").WebEdit("password").SetSecure "41c630a213508cd49eb35089db1b893144b9"51Testing软件测试网CA;e;H1TB!g
Browser("51Testing软件测试网:软件测试的专业网站").Page("51Testing软件测试网:软件测试的专业网站").WebButton("登录").Click
4[}FPx~;g0对于QTP来说,其核心编码语言是Visual Basic scrīpt,因此,如果用户熟悉VBscrīpt,可以运用自如的添加和更新语句,并通过编程方式增强测试和脚本,而这一切必须在专家视图中完成。
9z!z^@+k+y9q3J_+W$`0更为重要的是,有些操作是必须在专家视图中才可以完成的,例如:要处理动态对象、客户化报告、获取对象运行时的属性值(Run-time Value)等等,这些都必须通过专家视图中的VBscrīpt编码完成。
Gf%o8yA8A0然而,QTP里所有的操作都是基于对象进行的,所以我们必须对对象模型有一个基本了解,才可以在专家视图内进行Descrīptive Programming。51Testing软件测试网M9k0oRvnhM9_S
3、测试对象模型
r*?#a:z[HI0测试对象模型是一大组对象类型或类,QTP用这些对象类型或类来表示应用程序中的对象。每个测试对象类都有一个可以唯一标识属于该类的对象的属性列表,以及一组QTP可以对其进行录制的方法。它包括测试对象(Test Object)和运行时对象(RunTime Object)。51Testing软件测试网2h6e%@'ua,u
测试对象是QTP在测试或组件中创建的用于表示应用程序中的实际对象的对象。QTP存储有关该对象的信息,这些信息有助于它在运行会话期间标识和检查该对象。51Testing软件测试网3p,\*t'sS,I(p
运行时对象是网站或应用程序中的实际对象,在运行会话期间执行针对该对象的方法。
*?8yFyQb*h#|v0如果录制时执行应用程序的相应操作,则一般情况下QTP将完成以下操作:51Testing软件测试网%o9Q*h3x*G
标识QTP测试对象类(表示执行了操作的对象),并创建相应的测试对象51Testing软件测试网K0T/~ Iw.l0q'J!Z
读取应用程序中对象属性的当前值,然后将属性和属性值列表与测试对象一起存储。51Testing软件测试网1]1sAA1w
选择该对象的唯一名称,一般使用该对象某个重要属性的值。
7l5|7jNs-NP2Z
f4B1hC0C(P0使用适当的QPT 测试对象方法录制对对象执行的操作。51Testing软件测试网U5X/P{I*LZ Av
例如,假定使用以下HTML 源代码单击“查找”按钮:51Testing软件测试网EjD \8a e1e
<INPUT TYPE="submit" NAME="Find" VALUE="Find">51Testing软件测试网n:S2zO&PfF
QTPl将单击的对象标识为WebButton 测试对象。它将创建一个名为Find 的WebButton 对象,然后为该Find WebButton 对象录制下列属性和属性值,同时还会录制对WebButtion的Click方法。
M4s({B-Dc&L'}r0^t0
DTk?.s{2e0
-Ws]$N
EGW9jE0在关键字视图及专家视图中显示内容分别为:51Testing软件测试网V?1gJ4H
,G isa*Z0
J9s0P*d\
u+u'Y0Browser("Mercury Interactive").Page("Mercury Interactive").WebButton("Find").Click51Testing软件测试网I3{XSC3P Pd0h*G
运行测试或组件时,QTP通过其测试对象类及其描述(一组用于唯一标识该对象的测试对象属性和属性值)来标识应用程序中的每个对象。测试对象及其属性和属性值的列表存储在对象库中。例如在上例中,QTP将在运行会话期间在对象库中搜索WebButton 对象,通过名称Find 来查找其描述。QTP根据找到的描述,在应用程序中查找WebButton 对象,该对象带有HTML 标记INPUT、类型为submit、值为Find。找到对象后,它将对其执行Click 方法。
$z4JH&[#N4V] [Z0在这样一组对象模型的基础上,QTP为各类应用对象都提供了一组方法和属性,例如Web Objects,Windows Objects,SAPGUI Objects,ActiveX,Java等。下面是一些Web Objects的方法和示例:51Testing软件测试网pR.[ wn x.dZ
对象
d&B!RY'KyB;} Fg/XM0方法
Browser
i$Jp"n.mG-p@.t{M0Check
M O
K.X!V*W#i0Frame
D/Zm]dbwF1a f;v0Click
Image51Testing软件测试网 \l%Kd!L$tB bHJ
Exist51Testing软件测试网XJ1bE;Mm
X&g"?
sk,d1n3ET)~a0Link51Testing软件测试网jmd
?+pk%iv%V
GetCellData
Page
W6Rw3ehk Tz0GetProperty
n
eK
U;\9U8pO"f0WebArea51Testing软件测试网d/~e?Ue9~C B
GetROProperty
y
X+Uivt.V0WebButtion51Testing软件测试网`*r!o$_ev
Mouseover
WebCheckBox
}yL.o(}EJ0RowCount
WebEdit51Testing软件测试网B-mj2AXY`5n
Select
h
o8A$~*\{Nv_0WebList51Testing软件测试网U&r8E!j9Z6Wv||6c
Set51Testing软件测试网E#~$_%u"ur6dg
WebRadioGroup
qc&g