『原创』Loadrunner关于页面检查的几个函数详解
上一篇 / 下一篇 2008-09-24 10:05:21 / 个人分类:测试工具
环境:51Testing软件测试网0m*M_$t5N
Zh3a
Loadrunner版本:8.0
a jM$g7S%L
mQ-VTXc,p0自建一个test.html文件:
L?g(^OX)xf ^w0<html>
.fe$]a5NTN0<head>
}fh}
o'C@o;B6Vq0<meta name="google1" content="google2"/>
@
I"qo i*D"]0<title>google3</title></head>
7r9~[)_|6{0<body>
s0GL,c2|!B\
M a j0google4:<input type="text" name="google5" />
'KK s*MW+r*@0<input type="submit" value="google6"/><br>
^EU P4@7Zx0<a href="http://www.google.com/calendar/render?hl=zh-CN&tab=wc" class=gb2>google7</a><br>51Testing软件测试网nw6LcSP[0h
PM&?7S
<img src=http://www.google.cn/intl/zh-CN/images/logo_cn.gif width=200 height=88 border=0 alt="google8" title="Google9">51Testing软件测试网O}
vd1z
<img src=http://www.google.cn/intl/zh-CN/images/logo_cn.gif width=200 height=88 border=0 alt="google8" title="Google9">
4r-O }(w5|$V(H q6Na0</body>51Testing软件测试网${4X6VV2\
tjno
</html>
t
G$i
][8M*x Qi(~3X3y0
_Ee3s8v4m7_"e w ]O(?N!wi0一、web_image_check51Testing软件测试网0V:L|8k*D5Es(M,YI
%j%O3oh`0x0语法:
+H0bW1GR/QzT0int web_image_check(const char*CheckName,<List of Attributes>,<"Alt=alt"|| "Src=src">, LAST );51Testing软件测试网6O;x6c a
r8g
FuT
参数:
e
kzAR-uw
z051Testing软件测试网@8Q?"Q\q)l|
1、CheckName:Check名称。51Testing软件测试网2Ic#J|ImS
2、List of Attributes:
o2OXYf M0支持的属性有:Frame(在多Frame的情况下,定义要查找Frame的范围)。51Testing软件测试网2ue.on
]@7MH
支持的选项有:
ZZ
g\pjM@!O0Expect:检查通过的条件,默认为Found51Testing软件测试网5b2r
T+@)s5i a
Matchcase:是否区分大小写,默认为no51Testing软件测试网F@7xTi&F;tUO8W
Repeat:找到第一个符合条件字符串后,是否还继续搜索,默认为yes
N;C:P/hx0X$h0Report:什么情况下(success、failure、always)显示检查结果,默认always51Testing软件测试网/lZ
aAc/b&S
Onfailure:失败(expect的值决定)的情况下,是否继续,默认为Continue on Error。51Testing软件测试网AD4ZZf0F'[4M9{[
3、Alt:图片的ALT标记。
&ARc/`X ow7Rm"R04、Src:图片的SRC标记。
|f M
J^(b0说明:
N1NQT8fA0
zd.H+m\/a01、注意勾上Runtime Settings—Internet Protocl—Preferences—Checks:Enable Image and text check
ip\t\02、注意该函数放到web_url后面,且Web_url的Mode须为html(此函数仅仅支持基于HTML的脚本)
:P@,Pn`+_"c03、Web_image_check检查指定的图象是否在HTML页面中出现。
GesA6WH/MR)_F04、Alt或者Src两者必须有一个在参数列表中出现。如果两项都通过,那么检查成功。51Testing软件测试网bt1n3u'R%W
示例:51Testing软件测试网:@5l2h5XE
Loadrunner脚本:51Testing软件测试网-P8fa+?;s
51Testing软件测试网4S?`^y2R3]OLc
……51Testing软件测试网dC e6a i7H
web_url("google",51Testing软件测试网8qUdis*O
"URL=http://127.0.0.1:8000/test.html",
9nu gzP1W0 "TargetFrame=",51Testing软件测试网@CU h)jn
?
"Resource=0",51Testing软件测试网'GQ+n+xF5\"b-i%f
"RecContentType=text/html",51Testing软件测试网+cuyF[f
"Referer=",
A%?:Ffs+y0 "Snapshot=t1.inf",51Testing软件测试网? ~\,Fwt7t4`J
"Mode=HTML",51Testing软件测试网r&\+^h$rO:v
LAST);51Testing软件测试网0g'|YyVp6X&XB
web_image_check("web_image_check",
4{0}5A#hX5q0 "expect=NotFound",
"v(F+J'Dcd0 "Alt=Google8",
#Pd!}yVJ0 "matchcase=no",51Testing软件测试网EMV/PpEz"_2Y
"repeat=no",
T,}O"P;w3E&b0 "report=failure",51Testing软件测试网G#qqC
]
"Onfailure=abort",51Testing软件测试网 mWN9X@vs X$wU
LAST);
NVF\ T4r#`.?0 web_find("web_find",51Testing软件测试网cE*[M?U]7~ }
"What=Google",
r1L:udg(|)e
N0 LAST);51Testing软件测试网(H3XLNR k*v-p5f
……
9?[c%Kk'enU.O0
,P(lx1r-{ uV:PG0运行结果:
W9}l:R0j Y!U051Testing软件测试网f%Cy ?`5x a
Starting action Action.
m!](]3DFD3M6V X(}0Action.c(15): Found resource "http://www.google.cn/intl/zh-CN/images/logo_cn.gif" in HTML "http://127.0.0.1:8000/test.html" [MsgId: MMSG-26659]51Testing软件测试网~3xpk1Mmm
Action.c(15): web_url("google") was successful, 11968 body bytes, 521 header bytes [MsgId: MMSG-26386]
+b%LC%T(L jn0Action.c(35): Fatal Error -27191: "web_image_check" failed (1 occurrence(s) found. Alt="Google8", Src="") [MsgId: MERR-27191]
4Z7ZqkI-vMh0Action.c(35): web_image_check highest severity level was "FATAL ERROR" [MsgId: MMSG-26391]
q9~'_B`;_0Abort was called from an action.
:y[d J[u5t)B!iR
do%[0Ending Vuser...51Testing软件测试网`*|2U+Wq_@
X]IU+u9df/d;h0解释:51Testing软件测试网8^^&E,pD G
51Testing软件测试网0V%YA_4x4b8J2Ybx5h
1、 expect=NotFound,由于找到了符合要求的结果,所以为失败
Fm!h6j{#{*C I:SR02、 repeat=no,实际上有两个符合条件的结果,不过不继续,所以1 occurrence(s) found
vQ[:^9bX0h03、 Onfailure=abort,该检查结果为fail,所以abort,后面的文件检查未执行。
二、web_find
[Fbg&g0\"N&RQ4Yp0语法:51Testing软件测试网L3lbK(A({
int web_find (const char*StepName, <Attributes and Specifications list>,char*searchstring, LAST );51Testing软件测试网s
Sq3bg
参数:
"x/l7pa ]
CS"e'j Lc051Testing软件测试网#g j6S&L u%A.G1R F+v
1、StepName:Check名称51Testing软件测试网s-T1ccR0U
2、Attributes and Specifications list:51Testing软件测试网-N_ v+xKA
支持的属性有:51Testing软件测试网 ^:n^LFm6IJu
Expect:定义在什么情况下函数检查成功:找到了指定的搜索标准或者没有找到。例如说,可以检查指定的错误信息是否出现在web页面中。合法的值有2个:found和notfound。默认值是“found”。
Matchcase:指定搜索是否区分大小写,默认为no。
vgiA(Evr6cr051Testing软件测试网-t3Z4ZpwlRepeat:指定当第一次发现要查找的字符串时,搜索是否继续。当一个web页面中包含多个被查找的字符串时,此参数是非常有用的。合法的值有2个:yes,no。默认值是“yes”。
;y?&n0~ q U;V0SO fc~&XWz0Report:指定在什么情况下,VuGen在执行日志中显示此函数的检查结果。合法的值有:success,failure,always。默认值是“always”。
*g.x2Ob1W7Cv/j00} e.j@6ZKS:Taf0Onfailure:此参数决定在函数检查失败后,Vuser是否中断。参数值是abort。如果指定了Onfailure=abort,当函数检查失败时,不论在运行时设置中的error-handling(Runtime Settings—Miscellaneous)是什么,脚本都会中断。如果没有指定Onfailure=abort,那么运行时设置中error-handling将会起作用。
\h%n"JH \0bA&DK*m'X9m"c.zkw0支持的特性有:RightOf, LeftOf (不支持7.x及更高版本)。51Testing软件测试网 v8G6].N e)h0Svz$Q
&| B[V_ C,v"W*R%K0RightOf:要查找的字符串右边的内容。
J!_9fOX_;R08I;I,m9y"{u0LeftOf:要查找的字符串左边的内容。
4xef2i7{1uXM ij051Testing软件测试网 rSy]/i a3、Searchstring:需要查找的字符串,格式为“What=stringxyz”。此搜索不区分大小写。
e+Be0E4i&? x(J0%FX)~YI9w04、LAST:属性列表结束符。
6B"zT5F#A:y7j2K U0KM|*WCB2Q|o$Y0说明:
:v%H,xn C7_(])W5k051Testing软件测试网M.R'M)~ d%B rU/U
1、注意勾上Runtime Settings—Internet Protocl—Preferences—Checks:Enable Image and text check
Rv4v
JPf%[\a l!d$]02、注意该函数放到web_url后面,且Web_url的Mode须为html
`a}p6{V]03、此函数的作用是在HTML页面中查找指定的字符串。51Testing软件测试网$\A
kh~*ps
4、函数只能在基于HTML录制的脚本中使用。当指定的HTML请求全部完成以后,开始执行搜索过程,比web_reg_find要慢。
5Yb7fuR.kB0yUM5a05、web_find函数在C语言的脚本中已经被web_reg_find所替代,web_reg_find运行速度比较快,而且在HTML-based和URL-based的录制方式中都可以使用。51Testing软件测试网%S w\.K%B8E
6、在C语言脚本中,web_find是向后兼容的。Java和Visual Basic脚本中不支持它。51Testing软件测试网)^;wh]g2M3Ua+U
7、WAP和WSP协议不支持。
0Y5~w9k#k0示例:
AdT nK%}!S _"|0Loadrunner脚本:51Testing软件测试网~
h9o8q.}J3h1H Q@Cx-G1K
q\nLs0……
vZ_!G7jt1NV6W HW0 web_reg_find("Text/IC=google",51Testing软件测试网#M;a5O_3W5t g
"Search=Body",
5B~2[Z_U])C+K0 LAST);
web_url("google",
*o!rI!z4L|i0 "URL=http://127.0.0.1:8000/test.html",51Testing软件测试网 hn@oCZ/C
"TargetFrame=",
YC:n*q:g$\0 "Resource=0",
R,ZP[t0 "RecContentType=text/html",
[ C$m,YW0 "Referer=",51Testing软件测试网K
o)|bu
"Snapshot=t1.inf",51Testing软件测试网7k&\p`z!Q T
"Mode=HTML",
4|"FKwxAI(K ^0 LAST); 51Testing软件测试网mMJ2D E&F5Q
4T)qJ3Exr'gy#Ow0 web_find("web_find",
{0z(@GhKq/TS0 "What=Google",51Testing软件测试网"O(ZThx!|^
LAST);51Testing软件测试网D%f$^2e }#_
……
1DA K/sc3W0
~Imc6b[/Typ0运行结果:51Testing软件测试网{&lg
Fq
51Testing软件测试网Bkum e
Starting action Action.51Testing软件测试网P)nR/VE:^
Action.c(7): Registering web_reg_find was successful [MsgId: MMSG-26390]
!o"O
x{o5Cm)F*e$v0Action.c(15): Found resource "http://www.google.cn/intl/zh-CN/images/logo_cn.gif" in HTML "http://127.0.0.1:8000/test.html" [MsgId: MMSG-26659]51Testing软件测试网T$?3^+h`
Action.c(15): Registered web_reg_find successful for "Text=google" (count=14) [MsgId: MMSG-26364]
+Z#tu.PF5kr0Action.c(15): web_url("google") was successful, 11968 body bytes, 521 header bytes [MsgId: MMSG-26386]51Testing软件测试网
u8R"Y+H7^(y4F
Action.c(44): "web_find" successful. 3 occurrence(s) of "Google" found (RightOf="", LeftOf="") [MsgId: MMSG-27196]
9h:?,mhDmuW-s0Action.c(44): web_find was successful [MsgId: MMSG-26392]
TV?:t#H0Ending action Action.51Testing软件测试网;F:ne@z.D`0M
解释:51Testing软件测试网"qz&yHZiA
7HzAp2N"i D0可以看出两个函数最后的检索结果不一样,web_reg_find发现了14个,web_find只发现了3个。这是在web_find里再添加一个属性—"matchcase=yes",运行结果为:
pl-Zr7L-d4z0Action.c(44): Error -27195: "web_find" failed. 0 occurrence(s) of "Google" found (RightOf="", LeftOf="") [MsgId: MERR-27195]51Testing软件测试网H!w"Z0}#r
o6C:ls*e
Action.c(44): web_find highest severity level was "ERROR" [MsgId: MMSG-26391]
7K_#[y;t3L}0web_find只检索“>”、“<”间的内容。
三、web_reg_find51Testing软件测试网 T&d,C9vARW:y)pG
51Testing软件测试网7J$xt&_'|\ X`i语法: int web_reg_find (const char*attribute_list, LAST);51Testing软件测试网6rYxQ T"dS
5S\%_+U'h.M"N0参数:
bX!MRM;I\-A/~:X051Testing软件测试网ix ]]i!?D6xC
[:u
1、attribute_list:51Testing软件测试网![|0_q+{V6\/H
通过Name=Value对来传递参数。例如“Text=string”。Text,TextPfx,TextSfx三个必须有一个出现。其他的属性是可选的。51Testing软件测试网9Mf:pmM
Text:要搜索的字符串,字符串必须非空,以NULL结尾。可以使用text flags自定义搜索字符串。
+{7z_,w~.M051Testing软件测试网/G!m7^*l G\8tTextPfx:要搜索的字符串的直接前缀。51Testing软件测试网 fK H.OpEi
WL!~'u:^\ e3Lp0TextSfx:要搜索的字符串的直接后缀。51Testing软件测试网 Gu9GY9w&xP