QTP-Reporter的logevent应用的细节说明!

上一篇 / 下一篇  2009-05-27 15:38:56 / 个人分类:笔记

VwM5j)nIL7h"y!lA0直接进入主题..

&_I [5H/^!r$T] [0

1NwY$f2M!H6uBXj0有想自己定义QTP的报告格式的都应该查找到这么一篇资料,就是QTP REPORTER对象解密的文章,里面说到3个关键的方法.(其实帮助是没有这个使用的说明的,但是只要编写代码的人有调试的良好习惯,在调试窗口加上Reporter对象,你就可以看到这个对象的所有方法以及属性成员了。)51Testing软件测试网Zb,n?&C#[+~0B

_\E!PA!k#~3m9C0Reporter.UnSetContext51Testing软件测试网LK:n2_;}+X(hI

"J Xs&r:Py1q0Reporter.LogEvent("User", dicMetaDescription, Reporter.GetContext)

.x g ?Zw,R;N051Testing软件测试网2@c-nqM;z7w

Reporter.SetContext intContext

8GRxR^051Testing软件测试网+\c~X"F/q+` `u5B

定义了函数如下:51Testing软件测试网^|k9D(cSV ?'f

51Testing软件测试网1L!M!HiH&u

Public Function EnterNode(ByRef NodeName, ByRef NodeContent) 51Testing软件测试网"dc9^*nB,CX#rvv
 Set dicMetaDescription = CreateObject("Scripting.Dictionary") 
:p3d:^9|p4z7Pko `0 dicMetaDescription("Status") = MicDone 
czx7`$~9Z e0 dicMetaDescription("PlainTextNodeName") = NodeName 51Testing软件测试网C4E:t o3{ p[w6s
 dicMetaDescription("StepHtmlInfo") = NodeContent 
#_ `A#boz0 intContext = Reporter.LogEvent("User", dicMetaDescription, Reporter.GetContext) 
\%i _/?HWXG0 Reporter.SetContext intContext
$r[ ?"Hr.kw7S%@s0 Set dicMetaDescription = Nothing
F'`1I!yml0End Function

r*F?"Q8c M'Z051Testing软件测试网I vp$t+`-@8nK

'退出函数:返回上一层
ydb u%TgW7p l0Public Function ExitNode()51Testing软件测试网9j]p3t$u1da
 Reporter.UnSetContext
O7Q4i9s[ Uw5S"{%[0End Function

^c3[`ov:Cr c051Testing软件测试网M {fB;@D

 51Testing软件测试网+NH#T]2T` Q.~:@

51Testing软件测试网7L9Z#w8t(X@ P'Q

但是各位如果不细心看的话很可能就会使用出现错误,例如我们51Testing软件测试网mxmET)oE GI e

Y,U2~ Ijw-d0EnterNode "STEP1","初始化环境"

3\*i2H8k:jO051Testing软件测试网(b-a~"xD wK(f lh

......初始化环境的QTP代码51Testing软件测试网(u? d:q,_!~ C f

51Testing软件测试网} zC)U"wz

ExitNode

YGN'@:^;[0

Kz*o!akrL v0EnterNode "STEP2","结果校验"

t9BpCK+Uq)\-K051Testing软件测试网*M@,\O_v1r

......结果校验的QTP代码51Testing软件测试网k9@9z-gC TN&n

51Testing软件测试网5us F:[,B q7s*T

ExitNode

#P2J$Ae4wb^Q051Testing软件测试网 Q:t4U8_$DE{J

是不是结果就会是这样的树型机构了呢?

%R ns_p@ AG0b051Testing软件测试网6~-E4aNKqvbN

+STEP151Testing软件测试网k:[q5DJ ~(@9U

51Testing软件测试网 Up"N1x1u#X0Yp

   -QTP初始化环境自动生成的报告

}WWQ6k8Bax!N051Testing软件测试网 J^B1j&[

+STEP2

,n@-L8R/yfu0

\z8Gp8]*?x0   -QTP执行结果校验自动生成的报告51Testing软件测试网:o%[kq8_

51Testing软件测试网 z:bz,`1Jn:[ h"F

答案是'否'..

P xc1CoC7k W!`0

:Gav X t2Cx t0你的STEP2很可能是在STEP1里面的某个地方,而不是跟STEP1同级...51Testing软件测试网 hh"hw5]fc

b O.K}e6?5P$Y{@0出现这错误的正是因为对SetContext和UnSetContext的使用不够了解.

8ma1t#e,Uo m0

+~dP_&p@0Q,a0SetContext表示之后增加的报告都作为指定结点下的子树进行添加.51Testing软件测试网 \E$i^\

7iy-]/omTh0而UnSetContext表示在当前的Context上返回上一层.51Testing软件测试网k_7D.NBQ$w

V,f Q^$i.ZhVS t0所以在STEP1里,调用ExitNode时你不能保证此时的CONTEXT等于你SETCONTEXT一致,因为QTP自己生成报告时也会自己修改CONTEXT来生成不同层次的树型报告.51Testing软件测试网;~)aP{%z M

51Testing软件测试网A'\Q,k3Gf D

所以函数应该改动如下:(保存当前的CONTEXT,在需要返回到当前CONTEXT时调用)

!I(q-t6v'[ r2s0

.F$t*nR'Fq ^A0Public Function EnterNode(ByRef NodeName, ByRef NodeContent) 
1JA6Y+S/i$zC0 Set dicMetaDescription = CreateObject("Scripting.Dictionary") 51Testing软件测试网"[:X jW$jN
 dicMetaDescription("Status") = MicDone 51Testing软件测试网 zs1YW S9n2m
 dicMetaDescription("PlainTextNodeName") = NodeName 51Testing软件测试网k"N'ueOk!|
 dicMetaDescription("StepHtmlInfo") = NodeContent 
kv9v8G.qCmaL0 EnterNode = Reporter.GetConText()
51Testing软件测试网^SY9O,G1eGBO
 intContext = Reporter.LogEvent("User", dicMetaDescription, Reporter.GetContext) 
d z&o*g S,iW'Cv S0 Reporter.SetContext intContext51Testing软件测试网#H${i&hD*J
 Set dicMetaDescription = Nothing
@ b:A5v0i;V9c%q9?0End Function51Testing软件测试网4{-C'@c@V

51Testing软件测试网;`7^2F4Q U5`5fL:h

'退出函数:返回上一层
R7]v~ \ f2Ci(S0Public Function ExitNode(ByVal intContext)51Testing软件测试网 }#dw_iV(Y I9?
 Reporter.SetContext intContext
,h+\+L-|3z(Y0End Function

9N.}\*iN \ s$eN051Testing软件测试网x$S/]O8w.Y3c

使用如下

i0E,X^%hJ4X0

O Z h+V:s_3e{QJ0Dim context

Q^ Jj}sqVL0

X0\ LcV0context = EnterNode("STEP1","初始化环境")

Pmd2j'H051Testing软件测试网h,@ pZgxbV]0\

......初始化环境的QTP代码51Testing软件测试网5Kzp4K3p FuY

;Qp!rklL7G co/CX1e%_3v0ExitNode context

6V;Q vGvkS0

P6b7@5cp9NU0context = EnterNode("STEP2","结果校验")51Testing软件测试网0\2N6C$b,z k D

51Testing软件测试网^1\t.\z,c_#E

......结果校验的QTP代码51Testing软件测试网J,K |-eMR'@k

#t8Y!FZ B Z ha W0ExitNode context

]|W:sEfl0

TAG: QTP Reporter REPORTER LOGEVENT

 

评分:0

我来说两句

日历

« 2023-12-27  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 31208
  • 日志数: 33
  • 图片数: 3
  • 文件数: 8
  • 建立时间: 2007-10-10
  • 更新时间: 2011-06-28

RSS订阅

Open Toolbar