使用MonitorQTP来监视QTP的运行异常
'`*ZLT%n}#H9EI0关于QTP场景恢复机制的讨论,网上有一大堆,个人觉得它实在是鸡肋,当然我认为他是鸡肋的原因很简单,让QTP自己去处理自己脚本而产生的错误,实在有些扯蛋,更别提还要去配置一翻,配置之后还有几种情况不能使用了。其实我更倾向于通过自己的脚本的错误处理机制来控制脚本产生的错误。51Testing软件测试网^|4|*K'{'u-Ee
但遗憾的是,不管是你的QTP或者你的脚本也罢或者你的测试项目也罢,总会莫明其妙地出现意外问题,而QTP运行又是无人置守的,出现错误时,可能你还在睡觉或跟神仙姐姐约会呢。51Testing软件测试网
MD [cC
cBc
突然想到了一首歪诗,也许我们可以用它来描述QTP的异常。51Testing软件测试网2B4v9_9l2Yi;R
}
你在或不在
N)MfG2I
{0错误就在那里51Testing软件测试网#AK{
Utu9h
继续等待51Testing软件测试网_ ^*UJ*y+k%[8?$Z
51Testing软件测试网)~ Y/{Por k(e
你爱或不爱51Testing软件测试网$jDwd:Sw$_
错误就在那里51Testing软件测试网;zC#Ea w`"{5wc
无声无息51Testing软件测试网ab4W,v/uJ
。。。。。。
? Ws@b&EM,K5{0呵呵,基于以上的原因,我就写了一个小东西,名字叫MonitorQTP,算代替QTP的场景恢复的一些我觉得还可以处理的功能吧!51Testing软件测试网o-LG:B^LQO
一、简单介绍
"W~P$pS'in%V;n ?0先来看看样子,至于它有那些功能我想我不用多做解释,上面的按钮已经说明了。51Testing软件测试网U}KG9?ZE
m#y3o
j/`'CSz+}y051Testing软件测试网Lodm{ k P V#H(k
还是说说他的使用吧,首先你得点击配置邮箱,在下面这个界面正确配置,请一定要正确配置邮箱,因为这个软件要解决“。。。无声无息。。。”,所以得发邮件通知您。我们的工作邮箱是使用的outlook,其它邮箱类型我没有测试过,我想也应该行吧。不过,请注意,如果你是互联网邮箱,我想应该是不行的。配置好之后,你可以点击“测试”看看你能不能收到邮箱,如果OK的话,点击记住我就行了,以后就可以不用配置了。51Testing软件测试网1@*^L&evc7?
^rUzb|051Testing软件测试网7Rd'Y&Q9KQx(p:d
再次,您还得点击“配置计算机5分钟……”按钮,配置当计算机崩溃之后,电脑重启后运行的测试脚本。如果你开了杀毒软件或防护措施的话,请注意请点击允许修改注册表。其它需要注意的地方,软件上面已经说过了,我就不再说了,点击记住我就行了。51Testing软件测试网}u$c&gks/{
A4c
O2Y0]9l{$\}i)c0
D(S:yr2a0现在来介绍一下目前本软件已处理的弹出框错误类型有那些,如果你不认识这些错误,我想这不是我的错。
c0B;?x#W)mqk5V0详细如下图:51Testing软件测试网n\8L1DZg]"}5c
Ee7Voz+t(}}U0
5g a
] o]kv0程序会点击确定按钮
!\|2UEU0
?w&J)f\#V4{c051Testing软件测试网4Pt
Yk.s
程序会点击Stop按钮
5|Lw&Ko1[9?051Testing软件测试网WDFCY La
51Testing软件测试网qF7|4T$zT
程序会点击OK按钮51Testing软件测试网 b7J"nTb'OWoS?cc
如果,你有其它错误类型需要加入程序判断过程的话,比如IE程序中弹出的提示信息框,请点击“添加QTP错误”
i;n:jDS%O1UR}lf7w051Testing软件测试网y(f9{X5\2Q#zL
配置内容的意思为,打开vs2005中的spy++——》Alt+F3,将那个圈圈拖在弹出窗口窗体上,Spy++中标题(C)的内容即需要填入主窗体标题输入框内,类(L)即需要填入主窗体类名输入框中,你希望点击弹出框中的那个按钮,再次获取填入子控件标题和子控件类名然后在下面的输入框内填入,提交即可,请注意主窗体和子控件是成对的,另外子控件需要慎重选择,比如上上上面那个图,如果你先选retry点击,然后再添加了一个相似的窗体,却选择了Stop,程序是不会执行Stop按钮的,所以你得慎重配置。51Testing软件测试网6GQ;[6yS`(p
51Testing软件测试网HF9G_Z.Pj2d_3]
二、程序处理流程
E4r{ F#`#dn3E
k!HI0该程序只有当你的QTP启动后,即QTPro.exe进程存在时才能使用。当程序发现您所存储的错误类型后,程序会记录日志,并截屏到errorCapture文件夹中,如下面所示:
5[F I @#\5r/^0截图:51Testing软件测试网!|+W
t!S
C&RK[
A,ge(K6E n6zk051Testing软件测试网]-~#M?0[2abf
日志:51Testing软件测试网q(iM%V^ Fd4EJ$g
2011-3-31 15:00:02开始监视QTP的运行情况51Testing软件测试网X&L[:By])Th
2011-3-31 15:00:35发现错误窗口,标题为:Run Error类名为:#32770,程序在等待60秒后才会做进一步处理。51Testing软件测试网j o#cq9b(hZ
如日志内容记录的一样,程序会等待大约60秒的时间才会点击你所设定的按钮,这是因为可能某些错误弹出框是你脚本中需要进行处理的,所以我让它等待了60秒。程序点击了你所设定的按钮后,开始记录日志并发送邮件到你的邮箱,通知你有一个QTP错误。51Testing软件测试网&yQ"[)Q+W1F5l
]p%h
邮件:51Testing软件测试网8o8S CO-rd
Lz"`4T6`0p5mY_,D"E0在程序监视是否有弹出框的过程中,程序会获取你本机的CPU使用情况和可用物理内存的情况,如果你的CPU或可用物理内存在5分钟的时间里,CPU都在75%左右,或可用物理内存不足256M,程序将会重启计算机,重启计算机后将会运行你所设定的vbs。另外,请注意本程序是在WinXP下开发的,是否在其它操作系统能重启计算机,没有进行过测试。还有一点需要注意的是,本程序是供Web——QTP使用的且目前只支持IE和FireFox浏览器,另外我没有怎么进行测试,不过在我这里运行得还不错。
#A6CHQ+R
U]0a0三、如何结合QTP来使用此软件51Testing软件测试网)L s}x!N0jd
在你的QTP脚本中添加如下所示代码即可:51Testing软件测试网al7iZ;o)K&y
51Testing软件测试网Zp$Fgq B
Dim fileName51Testing软件测试网1W,AB!i[N~z
'您将监视器所放在的位置
;LHWp[-V-By F3QM0fileName="E:\MonitorQTP\MonitorQTP\bin\Debug\MonitorQTP.exe"
xfe-@ ~n^0'开启监视器
.iz)_AD t%o4DO0Call Start_MonitorQTP(fileName)
3@UCl7](N`0
;q"e
OEwY9h
l0'您的脚本所在的位置51Testing软件测试网J;nACq G
'您的脚本所在的位置51Testing软件测试网&jM1Pu8[8XR@)a
'您的脚本所在的位置51Testing软件测试网y9WWV2s`9|Q6w$Nq
'您的脚本所在的位置51Testing软件测试网R-H+YI+?eW
'您的脚本所在的位置51Testing软件测试网;\
C'Z'j_B7N.{m
!dw-],J.c"z @0
W+i
ynEYT B4m0
olz_4A$K y0'结束监视器51Testing软件测试网D(HMU_ ]b
Call End_MonitorQTP()
X t3s'Qx:i-VyB!T0 51Testing软件测试网o1r7R4Z!AO
_
51Testing软件测试网(k0V]Q&TIT
'作者:文青山
-^&c?S
]0'日期:2011-4-0151Testing软件测试网*X"k9M(IZ
'作用:开启QTP监视器51Testing软件测试网I kRC(N
'参数:filePath,QTP监视器所在的位置
P9c)jR _{`#siuI0'返回值:空51Testing软件测试网d3fdf4WI'KFw
Function Start_MonitorQTP(filePath)
$O|*o eb-Jt:E(B*X0 '如果还存在MontiorQTP.exe,则结束该进程51Testing软件测试网)P ~ t"|g)U
Call SystemUtil.CloseProcessByName("MonitorQTP.exe")51Testing软件测试网"@5H0x:e"l.N[
'启动监视器51Testing软件测试网B~8S x6KA
Call SystemUtil.Run(filePath,"","","")51Testing软件测试网c1W/^ R_{
lu+U
Window("text:=MonitorQTP_v0.1正式版想打广告吗?请联系我!").WinObject("text:=启动监视器").Click51Testing软件测试网l^`Vc*Qs
wait(3)
D4x6QdU4pw0End Function
1PHZ]*@X,a0
^4X1e,~/W:\/|0'作者:文青山51Testing软件测试网'kNo,H/O8x
'日期:2011-4-01
GtH-V)@3w0'作用:结束QTP监视器51Testing软件测试网*~.ak5ML]J.x!\
'参数:无
Cn9`T7N!uA)R8G0'返回值:空
2I(p4O9Et+gu0Function End_MonitorQTP()51Testing软件测试网vr;a#@Dc
For i=0 to 251Testing软件测试网}:?1\
~J0y[Rkj6[g
Call SystemUtil.CloseProcessByName("MonitorQTP.exe")
S(A)@$z/L0 Next
)?'Lrc|$w&Tl3BW0End Function51Testing软件测试网 Q
`u#pi
四、后记51Testing软件测试网+F&F SDEY{
某天,我实在是被QTP的故障恢复机制气得冒烟。堂客看到我无语的样子,就问朗个了。我解释了一下,然后堂客说,嘿不好用的东西,干啥子要用她呢,干球不自己弄一个,哈踔踔的。我的那个神啊,谢谢你让我有了这么好的堂客。
%H#N `4LQQA0
J0I V.RVu(p&_&J]0如果你在使用过程中,出现了什么问题,请将你的操作步骤记录下来然后发邮件给我,我将解决这些问题。如果你有什么新的需求或者建议或者关于此软件的疑问什么的,也可以发邮件给我,我会及时答复。51Testing软件测试网(JC
N,a[
51Testing软件测试网-mtoD2a|
51Testing软件测试网'c'QS
g
Z.Su|/F
MonitorQTP 可提供定制版(如有需求请加QQ详谈:379078880)51Testing软件测试网Y9vD/@T0S
2011-4-251Testing软件测试网b}Z6[uNG
文青山于深圳坪山
1m~u%N8S4anZ'bmGA0