Loadrunner关于页面检查的几个函数详解

环境:51Testing软件测试网/VDn_([
Loadrunner版本:8.0
-}sJ:hF216511自建一个test.html文件:
q?#B? m_A216511<html>51Testing软件测试网+vLX Eu&ex6r
<head>
vw9T(]o216511<meta name="google1" content="google2"/>51Testing软件测试网/M o$q%j'o0\
<title>google3</title></head>51Testing软件测试网s&L t{2y.HAI
<body>
.D4|)k6J s |6z216511google4:<input type="text" name="google5" />51Testing软件测试网;j%oaR0zWB'Q|:h
<input type="submit" value="google6"/><br>
}y#H L$@~ i216511<a href="
http://www.google.com/calendar/render?hl=zh-CN&tab=wc" class=gb2>google7</a><br>
"Rg.BMaTtW,Zk+g216511<img src=http://www.google.cn/intl/zh-CN/images/logo_cn.gif width=200 height=88 border=0 alt="google8" title="Google9">
S@J`\1D216511<img src=http://www.google.cn/intl/zh-CN/images/logo_cn.gif width=200 height=88 border=0 alt="google8" title="Google9">51Testing软件测试网7\'[X$U&d,Qw!\
</body>51Testing软件测试网x/dJD.STld'`
</html>

d@m'D+O216511 51Testing软件测试网 p)T.k])J!{
一、web_image_check

语法:51Testing软件测试网rV[n)r`j
int web_image_check(const char *CheckName, <List of Attributes>, <"Alt=alt"|| "Src=src">, LAST );

参数:51Testing软件测试网{%jV,R&Z6t5d
51Testing软件测试网}Q5X8GK|"S
1、CheckName:Check名称。
|X.qoRA2165112、List of Attributes:
yO GrjI216511支持的属性有:Frame(在多Frame的情况下,定义要查找Frame的范围)。
,{6[\]i{3f K216511支持的选项有:51Testing软件测试网l?0uk`_%^M
Expect:检查通过的条件,默认为Found51Testing软件测试网 l7Tg*e8iad
Matchcase:是否区分大小写,默认为no
5rviEWa216511Repeat:找到第一个符合条件字符串后,是否还继续搜索,默认为yes51Testing软件测试网rMVz8Y/r,~av5rzi
Report:什么情况下(success、failure、always)显示检查结果,默认always51Testing软件测试网@E C+L,a%F!b-z
Onfailure:失败(expect的值决定)的情况下,是否继续,默认为Continue on Error。51Testing软件测试网R j(eO?
3、Alt:图片的ALT标记。51Testing软件测试网.l%Yhl4\$A[
4、Src:图片的SRC标记。

说明:51Testing软件测试网D4_1Y&?m
51Testing软件测试网 E0`(oY:]
1、注意勾上Runtime Settings—Internet Protocl—Preferences—Checks:Enable Image and text check51Testing软件测试网~ jh O@
2、注意该函数放到web_url后面,且Web_url的Mode须为html(此函数仅仅支持基于HTML的脚本)51Testing软件测试网g;M @JAxK
3、Web_image_check检查指定的图象是否在HTML页面中出现。51Testing软件测试网$Wd$]n`%M
4、Alt或者Src两者必须有一个在参数列表中出现。如果两项都通过,那么检查成功。

示例:51Testing软件测试网^'{uU5h O0v"x
Loadrunner脚本:
)\ m s}Kdyo#}216511
+Q n&_'m,OW0R+}9M216511……
uD X I*k k216511 web_url("google\",
W gx,o*Njn216511  "URL=http://127.0.0.1:8000/test.html",51Testing软件测试网Y!jn8g,H][
  "TargetFrame=",
Vm"{F(B216511  "Resource=0",51Testing软件测试网6Q$Z8}-R0Cy"Q0U lj1\
  "RecContentType=text/html",51Testing软件测试网;ZIr'K^
  "Referer=",51Testing软件测试网 _%GJ'j(SseHU{u
  "Snapshot=t1.inf",
3D3?G G!n216511  "Mode=HTML",51Testing软件测试网R+wS:\,YD
  LAST);

 web_image_check("web_image_check",51Testing软件测试网sS:g `K v
  "expect=NotFound",51Testing软件测试网|k-{a#y7P$[
  "Alt=Google8",51Testing软件测试网 p$H gQ+c\$uT
  "matchcase=no",51Testing软件测试网,y8b Qv"O)H
  "repeat=no",51Testing软件测试网*wg dQT,{5w6Nn
  "report=failure",51Testing软件测试网5Jj#c|vcler,j
  "Onfailure=abort",
5paE h1S'S E"s$|216511  LAST);

 web_find("web_find\",51Testing软件测试网&Wp.{4s a0W2k f/t)p
  "What=Google", 51Testing软件测试网 H/S\ XzX:ZEi{H
  LAST);
NUm%W q&d+T1GZ216511……
,?pm;s%{a'x/V3W0x216511
51Testing软件测试网'ZpX~k
运行结果:51Testing软件测试网9ve _;~|G5r6AZ#B
51Testing软件测试网OKL*P(m5Ct,{ Y
Starting action Action.
4L\D&h$[6ON?;j8vJ216511Action.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软件测试网H-ddrgbQ
Action.c(15): web_url("google") was successful, 11968 body bytes, 521 header bytes   [MsgId: MMSG-26386]
xiq&j4R216511Action.c(35): Fatal Error -27191: "web_image_check" failed (1 occurrence(s) found. Alt="Google8", Src="")   [MsgId: MERR-27191]51Testing软件测试网oyKk;ouC)j.^
Action.c(35): web_image_check highest severity level was "FATAL ERROR"   [MsgId: MMSG-26391]
51Testing软件测试网T m L.c8s?
Abort was called from an action.
pyq"I8Z5s216511Ending Vuser...

解释:51Testing软件测试网 Ul9X8]O

2c3@U-k*\5q)Q2165111、 expect=NotFound,由于找到了符合要求的结果,所以为失败51Testing软件测试网y8B]e.R#M
2、 repeat=no,实际上有两个符合条件的结果,不过不继续,所以1 occurrence(s) found
*aZ"Qi`2165113、 Onfailure=abort,该检查结果为fail,所以abort,后面的文件检查未执行。

二、web_find

语法:
0K N+JL*p(H0^216511 int web_find (const char *StepName, <Attributes and Specifications list>, char *searchstring, LAST );

参数:51Testing软件测试网 u|;g1P1I+}_)t

){Wa1S:u2165111、StepName:Check名称
ot|2Ez2165112、Attributes and Specifications list:
@{'C^:x@ K216511支持的属性有:51Testing软件测试网5lB4rCJU/Bz
Expect:定义在什么情况下函数检查成功:找到了指定的搜索标准或者没有找到。例如说,可以检查指定的错误信息是否出现在web页面中。合法的值有2个:found和notfound。默认值是“found”。

Matchcase:指定搜索是否区分大小写,默认为no。

Repeat:指定当第一次发现要查找的字符串时,搜索是否继续。当一个web页面中包含多个被查找的字符串时,此参数是非常有用的。合法的值有2个:yes,no。默认值是“yes”。

Report:指定在什么情况下,VuGen在执行日志中显示此函数的检查结果。合法的值有:success,failure,always。默认值是“always”。

Onfailure:此参数决定在函数检查失败后,Vuser是否中断。参数值是abort。如果指定了Onfailure=abort,当函数检查失败时,不论在运行时设置中的error-handling(Runtime Settings—Miscellaneous)是什么,脚本都会中断。如果没有指定Onfailure=abort,那么运行时设置中error-handling将会起作用。

支持的特性有:RightOf, LeftOf (不支持7.x及更高版本)。

RightOf:要查找的字符串右边的内容。

LeftOf:要查找的字符串左边的内容。

3、Searchstring:需要查找的字符串,格式为“What=stringxyz”。此搜索不区分大小写。

4、LAST:属性列表结束符。

说明:51Testing软件测试网TU![+H)g

&qY!_a:A w,B8I7}9d!D(q2165111、注意勾上Runtime Settings—Internet Protocl—Preferences—Checks:Enable Image and text check51Testing软件测试网d8h`zd!F%}
2、注意该函数放到web_url后面,且Web_url的Mode须为html51Testing软件测试网 M!ua2W y@
3、此函数的作用是在HTML页面中查找指定的字符串。51Testing软件测试网x6g0vW9_*Y
4、函数只能在基于HTML录制的脚本中使用。当指定的HTML请求全部完成以后,开始执行搜索过程,比web_reg_find要慢。
s2Q9_u p.SC2165115、web_find函数在C语言的脚本中已经被web_reg_find所替代,web_reg_find运行速度比较快,而且在HTML-based和URL-based的录制方式中都可以使用。51Testing软件测试网_@W irO,L
6、在C语言脚本中,web_find是向后兼容的。Java和Visual Basic脚本中不支持它。
y|#a1X+|!vw |k:n)Rz2165117、WAP和WSP协议不支持。

示例:51Testing软件测试网)X#o6Yi0a
Loadrunner脚本:
K-v d8bU p21651151Testing软件测试网 cBL:| [ b
……51Testing软件测试网T LT*f6n??;U,w
 web_reg_find("Text/IC=google",51Testing软件测试网o X Z2P*L?
    "Search=Body",51Testing软件测试网$H[zPp#j(?/}x
  LAST);

 web_url("google",51Testing软件测试网q(RKP(U@'I K%n?
  "URL=http://127.0.0.1:8000/test.html",
{ D \j Cv2TH"yR#jC z216511  "TargetFrame=",51Testing软件测试网8i2L4}@#hR
  "Resource=0",51Testing软件测试网9A2Dr1v6OnT4n&fE
  "RecContentType=text/html",
C'[X`D,aO'F216511  "Referer=",
(j#[9o s s216511  "Snapshot=t1.inf",
l1U p7sh k1s!F J216511  "Mode=HTML",
-Ps-H_/Z216511  LAST); 

 web_find("web_find",
0L)k(kUQx216511  "What=Google", 51Testing软件测试网#m ~ r3_3sO
  LAST);
syW%R^&O\ {?216511……
L;O b5T[4Z Ch[216511

FRss5biI216511
运行结果:
l~(\ o4xE21651151Testing软件测试网 m$k.F8U9Z B$T)V
Starting action Action.
I0oT+^h v ~216511Action.c(7): Registering web_reg_find was successful   [MsgId: MMSG-26390]51Testing软件测试网{%NKNA*VK
Action.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]
6gAoA(sn [(r216511Action.c(15): Registered web_reg_find successful for "Text=google" (count=14)   [MsgId: MMSG-26364]51Testing软件测试网4y#bzi;pj8yc
Action.c(15): web_url("google") was successful, 11968 body bytes, 521 header bytes   [MsgId: MMSG-26386]
)D#j4M ge w|216511Action.c(44): "web_find" successful. 3 occurrence(s) of "Google" found (RightOf="", LeftOf="")   [MsgId: MMSG-27196]
I]&@CnV216511Action.c(44): web_find was successful   [MsgId: MMSG-26392]51Testing软件测试网7Jb G m,o]
Ending action Action.

解释:
0[(d8M2B"U;GJp216511
51Testing软件测试网M+[7LTA:R+W']6Gj
可以看出两个函数最后的检索结果不一样,web_reg_find发现了14个,web_find只发现了3个。这是在web_find里再添加一个属性—"matchcase=yes",运行结果为:
3b&x7qy2A216511Action.c(44): Error -27195: "web_find" failed. 0 occurrence(s) of "Google" found (RightOf="", LeftOf="")   [MsgId: MERR-27195]
a,^n bW'P216511Action.c(44): web_find highest severity level was "ERROR"   [MsgId: MMSG-26391]
51Testing软件测试网!C`c4Tsg
web_find只检索“>”、“<”间的内容。

三、web_reg_find

语法: int web_reg_find (const char *attribute_list, LAST);

参数:
?3] jDK216511
Y Wo,@5Qa$f)s c2165111、attribute_list:
2j0BfN5v216511通过Name=Value对来传递参数。例如“Text=string”。Text,TextPfx,TextSfx三个必须有一个出现。其他的属性是可选的。

Text:要搜索的字符串,字符串必须非空,以NULL结尾。可以使用text flags自定义搜索字符串。

TextPfx:要搜索的字符串的直接前缀。

TextSfx:要搜索的字符串的直接后缀。

Search:搜索的范围。可选的值是:Headers(search only the headers) 、Body(search only the Body data)、Noresource (search only the HTML body, excluding headers and resources)、ALL (search body , headers, and resources),默认值是“BODY”。

SaveCount:保存到参数中的匹配的字符串的个数。使用这个属性,需要指定“SaveCount=param”。检查操作被执行后,param 的值是null结尾的数字类型的值。

Fail:设置函数检查在什么状态下失败。可以是“Found或“NotFound”。默认是“NotFound”。

ID:日志文件中标识此函数的一个字符串。

RelFrameId:相关联的FrameId。注意:此参数在GUI级别的脚本中不受支持。

2、LAST:属性列表结束的标记符。

说明:
(~]b3K$P1r2~8v2G-\5K21651151Testing软件测试网s mG@,o/eJ yt
1、web_reg_find属于注册函数,注册一个在web页面中搜索文本字符串的请求,在接下来Action(象web_url)类函数中执行搜索。

2、通过查找期望的字符是否存在来验证是否返回了期望的页面。例如,通过查找“Welcome”来检查主页是否完全打开了。也可以查找“Error”检查浏览器是否发生错误。还可以使用此函数注册一个请求来统计特定字符串出现的次数。

如果检查失败,在接下来的Action类的函数中会报告错误。此函数仅仅注册请求,并不执行。函数的返回值只表明注册是否成功,并不表示检查的结果。

3、此函数不仅能够查找text,还能查找到围绕着text的strings。不要同时指定text和前缀后缀。

4、此函数在HTML-based和URL-based的脚本中都可以使用。此函数是在所请求内容到达之前注册搜索请求的,所以当所请求内容一到达后就会执行搜索,产生的脚本比较高效。
U q5b?&^$o5rx4x?216511
Z:R7?HB4Lq216511示例:
Mh(Ak._h d6zEK\C4`v216511
Loadrunner脚本:51Testing软件测试网^EAhuK5kPqM
51Testing软件测试网m~S&v5I
……51Testing软件测试网FL2c:BF3UV+t(d{
 web_reg_find ("Text/IC=google",51Testing软件测试网*H5v9NI$oI Z%iHdO
    "Search=Body",51Testing软件测试网9tZP#k-U
  LAST);

 web_url("google",
9C.y)N*x%Oi+{"c*h216511  "URL=http://127.0.0.1:8000/test.html",
0j"un ]I R'C6LN216511  "TargetFrame=",51Testing软件测试网8t)}(O+u*\zf_:q1h
  "Resource=0",51Testing软件测试网K"z0K}(mf1W
  "RecContentType=text/html",
&^+dQfd9Zb0\216511  "Referer=",
0D{ ?Tre;ug216511  "Snapshot=t1.inf",
0Oo+_&BmZn4x216511  "Mode= HTTP ",51Testing软件测试网gi&DpX
  LAST); 

 web_url("google",
#FC5oJm5AQa216511  "URL=http://www.baidu.com/",51Testing软件测试网"Z.Dq!TD'e E.d
  "TargetFrame=",
d'h yerq216511  "Resource=0",51Testing软件测试网 f8u-J J0Z}
  "RecContentType=text/html",51Testing软件测试网VlHz Kz0Z&G'MH
  "Referer=",
5XP#Z V(Hz&n+y216511  "Snapshot=t1.inf",
H{5n;w qfjl216511  "Mode=HTTP",
u-s$O0xJ C2Oy5l216511  LAST);51Testing软件测试网o+x$[ y[,r6~
……
(S9Tr?/W.fyu)D6D8P216511

G)Q8QICFf]216511
运行结果:

Starting action Action.51Testing软件测试网 v4a$rL`I7g1S
Action.c(7): Registering web_reg_find was successful   [MsgId: MMSG-26390]51Testing软件测试网.o"i XJ||
Action.c(12): Registered web_reg_find successful for "Text=google" (count=14)   [MsgId: MMSG-26364]
S0f2W8P R_6V'_216511Action.c(12): web_url("google") was successful, 538 body bytes, 295 header bytes   [MsgId: MMSG-26386]
1I)]jL _9uNX216511Action.c(22): web_url("google") was successful, 1714 body bytes, 372 header bytes   [MsgId: MMSG-26386]
?8\@9A9t6n(v216511Ending action Action.

解释:
-^]'MWdBh216511

l"h$CR1F:@216511由上面的结果可以看出,web_reg_find 只在其之后的一个Action类函数中执行搜索。

四、web_global_verification

语法:51Testing软件测试网,Q"f%QM[|
 int web_global_verification (<List of Attributes>, LAST );

参数:51Testing软件测试网0\"]:X1?i@1`IGm
List of Attributes:

Text:此属性是一个非空的,以NULL结尾的字符串,表示要查找的内容。语法是”Text=string”。还可以使用text flags自定义字符串。

TextPfx:没有指定Text的情况下使用此属性。要查找的字符串的前缀。语法是” TextPfx =string”。还可以使用text flags自定义字符串。

TextSfx:没有指定Text的情况下使用此属性。要查找的字符串的后缀。语法是” TextSfx =string”。还可以使用text flags自定义字符串。

Search:可选项,在哪里查找字符串。可选的值是:Headers,Body,NORESOURCE或All。默认值是NORESOURCE。语法是“Search=value”。

Fail:当字符串找不到时的处理选项:Found (默认值)或NotFound。Found表示当找到对应的字符串时发生了错误(例如“Error”)。NotFound表示当找不到字符串时发生了错误。语法是“Fail=value“。

ID:在日志文件中标识当前函数。

注:text flags:/IC表示忽略大小写;/BIN表示指定的是二进制数据。

说明:51Testing软件测试网8qR1v0M%qy
51Testing软件测试网:JS`4h,hG
web_global_verification属于注册函数,注册一个在web页面中搜索文本字符串的请求,与web_reg_find只在下一个Action函数中执行搜索不同的是,它是在之后所有的Action类函数中执行搜索的。可以搜索页面的body,headers,html代码或者是整个页面。

在检测一些应用程序级别(不通过http状态码来表现)的错误时,web_global_verification是非常有用的。如果要定位通过HTTP状态码表现的错误时,使用web_get_int_property。

查找范围:all:这个HTML页面;Headers:页面的头;body:页面的体,包含所有的资源但不包含头;NORESOURCE(默认选项):仅仅包含页面的体,把包括头和资源。

如果不知道要查找的精确的文本,或者要查找的多个文本不是完全相同的,可以使用前缀和后缀来表示。这时需要用到TextPfx和TextSfx属性。这2个属性必须同时指定,一旦指定了其中一个,就不能指定Text属性了。

注意:web_global_verification在WAP协议下不能运行。

示例:51Testing软件测试网-^PD.GF'FO%V
Loadrunner脚本:51Testing软件测试网[:R(G#e7l7OO#Y;gM$T
51Testing软件测试网J$R6OI k0J#LP
……
P#~ `a:eV216511 web_global_verification("Text/IC=google",
&? \*x%KS216511  "Fail=NotFound",
.~;}G;vOJNBbx216511   LAST);

 web_url("google",51Testing软件测试网7HW5w-Iq;j dZ4_
  "URL=http://127.0.0.1:8000/test.html",
r*S)\}:IyO%g216511  "TargetFrame=",
kd)B%Y9EQ0W(Z216511  "Resource=0",
js8Id(\216511  "RecContentType=text/html",51Testing软件测试网1ba"Hf5wmYi
  "Referer=",51Testing软件测试网BU_8}ow \
  "Snapshot=t1.inf",
5L3]6{ e.u~|216511  "Mode= HTTP ",
m2y*rp m7k6V216511  LAST); 

 web_url("google",51Testing软件测试网[%^RQ!X3HSu;A"W
  "URL=http://www.baidu.com/",
8Uk%CUc216511  "TargetFrame=",
)_#aD8}GU ~e#t If;D216511  "Resource=0",
e3HMt h216511  "RecContentType=text/html",51Testing软件测试网jP:t.C9TnV~0s
  "Referer=",
Hu.G j1p0H\~216511  "Snapshot=t1.inf",
/K p@R? D'[2G216511  "Mode=HTTP",
-t`?]a216511  LAST);
}0n$E3b4^"L216511……51Testing软件测试网-] |`%mt*dx o

q yEA%C216511
运行结果:

Starting action Action.
]6tM~t+L216511Action.c(7): Registering web_global_verification was successful   [MsgId: MMSG-26390]
}4g%~^AKd216511Action.c(11): web_url("google") was successful, 538 body bytes, 295 header bytes   [MsgId: MMSG-26386]
!J5n@r8HG216511Action.c(21): Error -26366: "Text=google" not found for web_global_verification   [MsgId: MERR-26366]
&X6`(Fj` n216511Action.c(21): web_url("google") highest severity level was "ERROR", 1714 body bytes, 372 header bytes   [MsgId: MMSG-26388]

eQx1iyvi216511Ending action Action.

解释:
}~w6r5P9qO2H`216511由上面的结果可以看出,web_global_verification在其之后所有的Action类函数中执行搜索。51Testing软件测试网$ZrR"hR[

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值