思考,思考自己、思考别人! #ps -ef | grep oracle 修身、齐家、治国、平天下!

我的QTP的学习方法及总结(四)—同步/check

上一篇 / 下一篇  2009-03-26 14:27:20 / 个人分类:QTP学习

我的QTP学习方法及总结(四)—同步/check51Testing软件测试网7q#C$i5v X,Z cvL

                                                            季风51Testing软件测试网.paU+|D&Mk

写脚本的时候,当系统发生页面跳转或是当前操作有返回结果需要等待的时候,需要对是否到达预期页面或预期结果是否返现进行验证,否则很容易出现脚本运行失败的情况。

)O lzA9W"hU7q+Q0

以下是几种常用check方法。

C\2N&L!} P_p3y!hT0

 51Testing软件测试网W'm!NZ"[;g ~

1.      QTP自带Sync方法

8|T'u xYbh,\0

SystemUtil.Run "iexplore.exe", "http://www.google.com"

mm?$lnUX7`(v0

Browser("Google").Page("Google").Sync51Testing软件测试网-r%C9G} tV

与这种方式有关的设置如图。

j5L4HT/j&|ro0

4POG8^[0

51Testing软件测试网(z}R:H k)C

 

%G/kdI)NW!y0

2.      WaitProperty方法51Testing软件测试网^s D7E"]'y x

这个也是支持的一种方法,等待指定对象属性获得指定值或超出指定超时后再继续下一步。原型object.WaitProperty(PropertyName,PropertyValue, [lTimeOut])帮助文档对各个参数有详细说明。TimeOut如果不指定也会使用上图中的设置。51Testing软件测试网pD'TW L

If Browser("百度一下,你就知道").Page("百度一下,你就知道").WaitProperty("title","百度一下,你就知道",1000) Then

w7Y'V-B)e0

   '后续操作

PSUT!GmRn0

End If

%I e!w\-v0

 

h/\wg9v)U0

3.      利用DomRegExp检索

)W/?;[*~)S7Wb\0

这种方法利用DomcreateTextRange方法获得页面文本,再结合正则表达式进行检索,判断页面是否有预期的结果。51Testing软件测试网`.`$l_:DB+buT

set a=Browser("百度一下,你就知道").Page("百度一下,你就知道").Object.body.createTextRange()51Testing软件测试网1m g e_wm

c=Check (a,"")51Testing软件测试网*R m6^&ouSm4b$h7m9|%B

msgbox c

_B$LAWpF0

 51Testing软件测试网7pP\XEx2L6W

'检索函数51Testing软件测试网5n9j]l8|${G(^ k2D

'Obj 检索的对象

i`*b7fh0X$p,r0q0AX+p0

'checkStr 检索的字符串

#N_.](g2~0

Public Function Check(ByRef Obj, ByRef checkStr)

I&} j|UkY0

            b=Obj.text51Testing软件测试网0h8y CU(r4Ce

            Set regEx=new RegExp

6Hm5yc}3Q?I ye"u0r0

            regEx.Pattern=checkStr  '设置需要查找的字符串

!X,\C@AB6x0

            regEx.IgnoreCase=true51Testing软件测试网r0Hd vW`#CJ

            regEx.Global=true51Testing软件测试网3UB@B BP p*E't%^

            Check = regEx.Test(b)   '在页面的文本中检索预期值,返回布尔值

5G*xm%F5_|)Wq!G,K0

End Function51Testing软件测试网.@.BDhW7X`

正则表达式可以参考QTP安装目录help下的VBScript56.CHM文档。51Testing软件测试网gyz'Mw"B

 51Testing软件测试网^3o/nA Y"wE!p

4.      利用Dom本身的查找51Testing软件测试网RToQ'SN&V

DomcreateTextRange也提供了查找的相应方法。如下代码。51Testing软件测试网j(S3v!{_8~

set a=Browser("网易电子邮箱-极速3.0正式版").Page("网易电子邮箱-极速3.0正式版").Frame("index").Object.body.createTextRange

q!c4|{ o Q*Z0

msgbox Check (a,"草稿箱")51Testing软件测试网\]VVl]:Z"]m

 51Testing软件测试网*|G gHd)i

Public Function Check(ByRef Obj, ByRef checkStr)51Testing软件测试网r}.T8w|{4EG r X

found = Obj.findText(checkStr)

*Ee6Mdj@)NK0

Obj.select51Testing软件测试网Q3Z+ns2S{ k

Check=found

M!O0y$U Li9E?5g0

End Function51Testing软件测试网Lp|O&b4J]m

以上代码是登陆163邮箱后检索页面是否有“草稿箱”文本并选中文本。51Testing软件测试网H`*B&te8d @ I

 

+G2C OLi!c^0

5.      利用readyState判断页面当前所处状态

+H&B[` X.VK0

利用页面的readyState属性判断当前页面所处状态。

Te-z@I0

SystemUtil.Run "iexplore.exe", "http://www.sina.com.cn/"

C| I#s&o(W0

msgbox Browser("新浪首页").Page("新浪首页").Object.readyState

pc `BE8y Wb{0

V2O.\!Z5L(P-B0

51Testing软件测试网 d.f:z!iLx&[Uw%e

上图是打开sina首页,正在打开的状态及QTP输出的readySta值。如果首页已完全打开返回的值应为Complete

-{L2D4j6P!cz'yT-| x\0

可以通过readyState返回的状态值,判断进行后续操作。readyState的可能值如下(中英):

x,mS(E8ok0

There are five possible values for readyState:

:e? x`4n!e(N KR0

0 (Uninitialized): The object has been created but the open() method hasn’t been called.

O_exG0

1 (Loading): The open() method has been called but the request hasn’t been sent.51Testing软件测试网M^`v6R v)f

2 (Loaded): The request has been sent.

0t&I*Vc6} stl7q0

3 (Interactive). A partial response has been received.51Testing软件测试网7lYXh+X

4 (Complete): All data has been received and the connection has been closed.51Testing软件测试网 eh}SLe8{-c

 51Testing软件测试网 U.|,Rq"roK

readyState有五种可能的值:51Testing软件测试网EX} xS K

0 (未初始化)(xml(标准化越来越近了)HttpRequest)对象已经创建,但还没有调用open()方法。

%Ii/vX-qV*U0

1 (载入):已经调用open()方法,但尚未发送请求。

.Z&T2^7[1fC2F [0

2 (载入完成)请求已经发送完成。

R~U9P#O5G)c0

3 (交互):可以接收到部分响应数据。

n7?fN:VQ w0

4 (完成):已经接收到了全部数据,并且连接已经关闭。51Testing软件测试网3g9A jYU R D|y

 51Testing软件测试网$C"n)U8xFr `b

6.      利用QTP自带的检查点51Testing软件测试网umkFly:O-[U

这种方式就是在脚本中插入Checkpoint进行相应检查,包括文本、图片、对象属性等,在录制过程或是录制完毕选择Insert—Checkpoint按提示操作即可,QTP会自动生成代码。由于QTP可以自动生成代码,在此不再贴出示例。

scx:l)B1p5ra0

 51Testing软件测试网dE([ f7fj$b

以上是几种方法,如果各位朋友还有其他方法,希望贴出来大家学习。

.~a%W4c&S{6C3ZD0

TAG:

刘顺的个人空间 引用 删除 刘顺   /   2010-04-14 11:57:15
学习一下
cnsong99的个人空间 引用 删除 cnsong99   /   2009-12-31 09:14:14
假装不在 引用 删除 假装不在   /   2009-04-29 00:37:45
赞一个!
chatwin的个人空间 引用 删除 chatwin   /   2009-04-17 15:18:53
3
Dreams come true 引用 删除 wtucel   /   2009-03-28 10:11:03
5
 

评分:0

我来说两句

Open Toolbar