欢迎你~~~

loadrunner函数详解

上一篇 / 下一篇  2008-09-26 14:11:37

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

2008-09-24 10:05:21 / 个人分类:LoadRunner

环境:
8H4qx:|?mb'k,}|0Loadrunner版本:8.0
3L j9Z o c`1pi%n0自建一个test.html文件:
n] f:JAf+O\*p0<html>
$wj'L(P AE;o0<head>
$rS^;e[ c^7cs0<meta name="google1" content="google2"/>51Testing软件测试网5J6A+f x};Q UD:P
<title>google3</title></head>51Testing软件测试网 OMO!_cn+` ?
<body>51Testing软件测试网2y Mj(uqZ&c
google4:<input type="text" name="google5" />
Ih7kh.] bz"^0<input type="submit" value="google6"/><br>51Testing软件测试网;v0y^_I;}#jC
<a href="
http://www.google.com/calendar/render?hl=zh-CN&tab=wc" class=gb2>google7</a><br>
f2g {w)_)tJ7m0<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[X4H] cj o
<img src=http://www.google.cn/intl/zh-CN/images/logo_cn.gif width=200 height=88 border=0 alt="google8" title="Google9">51Testing软件测试网H2~ A#Sz
</body>51Testing软件测试网n,b&\dG
</html>

K,{&s6yrJ\JB.~"o0 
x+W2E!yN0一、web_image_check

语法:
3qh ].m0V,d{O0int web_image_check(const char*CheckName,<List of Attributes>,<"Alt=alt"|| "Src=src">, LAST );

参数:51Testing软件测试网r{V^!ah-tQ$?.m&v.B

FmP lc aI01、CheckName:Check名称。51Testing软件测试网"Da/@Z5_qF
2、List of Attributes:
"d`y#~H WQXwT7|0支持的属性有:Frame(在多Frame的情况下,定义要查找Frame的范围)。
!q%{2kN ?0支持的选项有:51Testing软件测试网&IG)`jUn
Expect:检查通过的条件,默认为Found51Testing软件测试网 b*eq Ub?
Matchcase:是否区分大小写,默认为no51Testing软件测试网y g+f"n.L5Kh"X
Repeat:找到第一个符合条件字符串后,是否还继续搜索,默认为yes
AV:X+Bp-U0Report:什么情况下(success、failure、always)显示检查结果,默认always51Testing软件测试网.j t#`0DV(a\~
Onfailure:失败(expect的值决定)的情况下,是否继续,默认为Continue on Error。
[,N3Xf%eS)@03、Alt:图片的ALT标记。
\e`"Fc1iIUO*U04、Src:图片的SRC标记。

说明:51Testing软件测试网*Nj N?mrX&A

GfbzJpX2y01、注意勾上Runtime Settings—Internet Protocl—Preferences—Checks:Enable Image and text check51Testing软件测试网,u0[yl6Gf}-JZ~
2、注意该函数放到web_url后面,且Web_url的Mode须为html(此函数仅仅支持基于HTML的脚本)51Testing软件测试网!N1v|3v ux
3、Web_image_check检查指定的图象是否在HTML页面中出现。
] Z1M~'l04、Alt或者Src两者必须有一个在参数列表中出现。如果两项都通过,那么检查成功。

示例:51Testing软件测试网 y3b9g"N)w'y,G
Loadrunner脚本:
%A)V3S|'_oR3c&QR/J051Testing软件测试网8Ogh$YR4A F
……51Testing软件测试网 zKbSq
 web_url("google\",
r8Mbg6}l7aS0  "URL=http://127.0.0.1:8000/test.html",
4l AJ_A ]U3p0  "TargetFrame=",51Testing软件测试网Mi.ip3}-B[z
  "Resource=0",
D0DqCME L0  "RecContentType=text/html",51Testing软件测试网Ovd6JK0i8X+O-y
  "Referer=",
6n'g2g*Lq1fa[+[q N0  "Snapshot=t1.inf",
0{ ?X&~5^0  "Mode=HTML",51Testing软件测试网m {,RzZaAM^
  LAST);

 web_image_check("web_image_check",
s{z0CzR,m4n4f {0  "expect=NotFound",51Testing软件测试网[9q0J/E;`/tT*eP
  "Alt=Google8",51Testing软件测试网 B(p(dN|
  "matchcase=no",51Testing软件测试网_W G.]x$@%k Hzd
  "repeat=no",51Testing软件测试网B:ub?%J
  "report=failure",51Testing软件测试网X)zF @M:CP
  "Onfailure=abort",51Testing软件测试网ki6YW&?a-Ah
  LAST);

 web_find("web_find\",51Testing软件测试网j-m1g2cQ|T
  "What=Google",
8k6eV)yU0  LAST);
zg"UR@/zm#q n0……51Testing软件测试网Y Z]5bG y0u4{#l\
51Testing软件测试网-xNSW PT(@
运行结果:51Testing软件测试网{QH XHe5Q;o}
51Testing软件测试网x|_#Rt(A.} rq
Starting action Action.
F#Q H$uA8~6QD"r0Action.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]
$f @.S sN/rI4].qV0Action.c(15): web_url("google") was successful, 11968 body bytes, 521 header bytes   [MsgId: MMSG-26386]51Testing软件测试网y+Q}7X2V6O&},S
Action.c(35): Fatal Error -27191: "web_image_check" failed (1 occurrence(s) found. Alt="Google8", Src="")   [MsgId: MERR-27191]
'R)q.xt+T g r%x0Action.c(35): web_image_check highest severity level was "FATAL ERROR"   [MsgId: MMSG-26391]

gk RP(AU&WJ0Abort was called from an action.51Testing软件测试网w/U.S.IN8g
Ending Vuser...

解释:51Testing软件测试网p-M ~U:PJaEbl/r

ac Y,N~s01、 expect=NotFound,由于找到了符合要求的结果,所以为失败51Testing软件测试网"t7~PEeG{ q
2、 repeat=no,实际上有两个符合条件的结果,不过不继续,所以1 occurrence(s) found51Testing软件测试网 q^'bj Bp2}
3、 Onfailure=abort,该检查结果为fail,所以abort,后面的文件检查未执行。

二、web_find

语法:51Testing软件测试网8LLE1J7ufCp
 int web_find (const char*StepName, <Attributes and Specifications list>,char*searchstring, LAST );

参数:51Testing软件测试网 [R;fo,vZ7] B0K

D P^pb0nb*\01、StepName:Check名称51Testing软件测试网 uZ;{!S p)e
2、Attributes and Specifications list:51Testing软件测试网 \9['^?-rzE
支持的属性有:51Testing软件测试网+rT[4Ah*_u
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:属性列表结束符。

说明:
`P+UyN_2q,u8@,fO0
v c@'^B/y ?5t't01、注意勾上Runtime Settings—Internet Protocl—Preferences—Checks:Enable Image and text check51Testing软件测试网+x w;R9g0E+E&mh
2、注意该函数放到web_url后面,且Web_url的Mode须为html
U^.iKO2R5g8C+t a03、此函数的作用是在HTML页面中查找指定的字符串。51Testing软件测试网 tq"b7mf^D8zbb6J
4、函数只能在基于HTML录制的脚本中使用。当指定的HTML请求全部完成以后,开始执行搜索过程,比web_reg_find要慢。
7rj2_ p hJ F/[05、web_find函数在C语言的脚本中已经被web_reg_find所替代,web_reg_find运行速度比较快,而且在HTML-based和URL-based的录制方式中都可以使用。51Testing软件测试网N9r1JUA@1r ~
6、在C语言脚本中,web_find是向后兼容的。Java和Visual Basic脚本中不支持它。51Testing软件测试网X'}~5MV s5L
7、WAP和WSP协议不支持。

示例:
tYKMk?0Loadrunner脚本:51Testing软件测试网 g+{V0~k7D
51Testing软件测试网*c'Yl6? z$N r WZ
……
p)} Qx!yAk0 web_reg_find("Text/IC=google",51Testing软件测试网:COF?s/O
    "Search=Body",51Testing软件测试网ed*sa;w$mL
  LAST);

 web_url("google",51Testing软件测试网^hQ4Zx,t
  "URL=http://127.0.0.1:8000/test.html",51Testing软件测试网Jkk,j H^i5M7i(e1J
  "TargetFrame=",
AeRT@;T h R5G0  "Resource=0",51Testing软件测试网MTh&a|-W
  "RecContentType=text/html",
:WgN"]:b8d D7q0  "Referer=",
GM{l!F*D0  "Snapshot=t1.inf",
U%Zq"iZMW'x0  "Mode=HTML",
+a_P&k)Y'b M"l0  LAST); 

 web_find("web_find",
*a R4iGd gP0  "What=Google",
/c2F;v%V7jt0  LAST);51Testing软件测试网~v^ss
……51Testing软件测试网.E-[5L a:\p
51Testing软件测试网R {F5DqA
运行结果:
L;}&|+W:?h*C.`0
k_J3QD9h3|9} nf0Starting action Action.
w*^j1eD!N0Action.c(7): Registering web_reg_find was successful   [MsgId: MMSG-26390]
:F0B4k$d|(eC)@tx-zpa0Action.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]
t-De8V T&px0Action.c(15): Registered web_reg_find successful for "Text=google" (count=14)   [MsgId: MMSG-26364]51Testing软件测试网 }yU~K2b
Action.c(15): web_url("google") was successful, 11968 body bytes, 521 header bytes   [MsgId: MMSG-26386]51Testing软件测试网$N Xq5Y.b7qD"M
Action.c(44): "web_find" successful. 3 occurrence(s) of "Google" found (RightOf="", LeftOf="")   [MsgId: MMSG-27196]
A7cV fQ0Action.c(44): web_find was successful   [MsgId: MMSG-26392]51Testing软件测试网4B5t;o_0C~A"Wo$f
Ending action Action.

解释:51Testing软件测试网5d`2c*|Q

D&@,GDM"Gk h$E0可以看出两个函数最后的检索结果不一样,web_reg_find发现了14个,web_find只发现了3个。这是在web_find里再添加一个属性—"matchcase=yes",运行结果为:51Testing软件测试网&jVU:Cl#Z
Action.c(44): Error -27195: "web_find" failed. 0 occurrence(s) of "Google" found (RightOf="", LeftOf="")   [MsgId: MERR-27195]51Testing软件测试网Bke?1c[1D(w:D
Action.c(44): web_find highest severity level was "ERROR"   [MsgId: MMSG-26391]
51Testing软件测试网`\Q!GU
web_find只检索“>”、“<”间的内容。

三、web_reg_find

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

参数:51Testing软件测试网{L/Po$_Uj
51Testing软件测试网C*|;c FHq
1、attribute_list:51Testing软件测试网:~)]3nGN(NCG?0X
通过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:属性列表结束的标记符。

说明:51Testing软件测试网c \{)PV-F0z
51Testing软件测试网k"X9}#D-GL:}"F
1、web_reg_find属于注册函数,注册一个在web页面中搜索文本字符串的请求,在接下来Action(象web_url)类函数中执行搜索。

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

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

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

4、此函数在HTML-based和URL-based的脚本中都可以使用。此函数是在所请求内容到达之前注册搜索请求的,所以当所请求内容一到达后就会执行搜索,产生的脚本比较高效。
&p}NL%mk+O,X5@0
*m Y1D_ F5E[0示例:51Testing软件测试网tgk)An!SW;[
Loadrunner脚本:51Testing软件测试网Q _t$AeU9Bqf+B
51Testing软件测试网VU6v0pb7u%[
……
(xH A1W1B U5L[@Er*E0 web_reg_find ("Text/IC=google",51Testing软件测试网2bah)Q*O,?
    "Search=Body",
OgGT}?0  LAST);

 web_url("google",51Testing软件测试网wqwMa
  "URL=http://127.0.0.1:8000/test.html",
/gQU-mC0aA)up0  "TargetFrame=",
C6g0@t8_\N5qt S0  "Resource=0",51Testing软件测试网+@q4NNa4m)t
  "RecContentType=text/html",51Testing软件测试网m+FR,]9No4oz Z
  "Referer=",51Testing软件测试网C(Z!S[k!V3x
  "Snapshot=t1.inf",51Testing软件测试网&G ng(vw nr bNm
  "Mode= HTTP ",
Sf*W ]Pl/o0  LAST); 

 web_url("google",51Testing软件测试网0u]8N#ko J"Qb
  "URL=http://www.baidu.com/",51Testing软件测试网;H7eW N.cX&A
  "TargetFrame=",51Testing软件测试网t,V{#a!N@j.lwwSL
  "Resource=0",
-uF.Axx$cS0Pz0  "RecContentType=text/html",51Testing软件测试网j _(O{d9] [9gV
  "Referer=",51Testing软件测试网)y Ge9N;{#?2P
  "Snapshot=t1.inf",51Testing软件测试网]O6W&v T^8h
  "Mode=HTTP",
W v,M*l%NRKV0  LAST);51Testing软件测试网,X ]1g_%x4_3\U
……51Testing软件测试网kE?Vu}'T

F7l6X lX1N0
运行结果:

Starting action Action.51Testing软件测试网/~S&_!b,^7~#ho{ |R
Action.c(7): Registering web_reg_find was successful   [MsgId: MMSG-26390]
x2f k$a;C0Action.c(12): Registered web_reg_find successful for "Text=google" (count=14)   [MsgId: MMSG-26364]51Testing软件测试网N5ow b o4x]yv,UV
Action.c(12): web_url("google") was successful, 538 body bytes, 295 header bytes   [MsgId: MMSG-26386]
8gf(v(d"|x J] Y cx0Action.c(22): web_url("google") was successful, 1714 body bytes, 372 header bytes   [MsgId: MMSG-26386]51Testing软件测试网g2^!YS0t6z Y&vn2k
Ending action Action.

解释:
$o"dV/C I5N/^0

Yc-q|;Y%B0由上面的结果可以看出,web_reg_find 只在其之后的一个Action类函数中执行搜索。

四、web_global_verification

语法:51Testing软件测试网 ^h*s)n9}3J_x)JQ6pv
 int web_global_verification(<List of Attributes>, LAST );

参数:51Testing软件测试网7Hfg#m4iDa `
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软件测试网CvQ aX ZL%Y5[
51Testing软件测试网K(v0dE Q
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协议下不能运行。

示例:
-eI'k]6S r+f0
Loadrunner脚本:
'K%I"A0J5A0
51Testing软件测试网s5w4s K)Zg+b%v`
……
j!^[^#n@8n$eu0 web_global_verification("Text/IC=google",51Testing软件测试网$qXw0g)KCR*`7z d
  "Fail=NotFound",
5e,?)}%Is*`\0   LAST);

 web_url("google",
c9p}H(~S,h0  "URL=http://127.0.0.1:8000/test.html",51Testing软件测试网^#vS4]9Kdk
  "TargetFrame=",
'F8o*N&{ A-kl0  "Resource=0",
hc!]c/x*fo!d0  "RecContentType=text/html",
V-~+_QJ2GT+s0  "Referer=",
.s-W5~*j'u-ceG,bL0  "Snapshot=t1.inf",51Testing软件测试网-{ A} Ud({6q!K!oe
  "Mode= HTTP ",51Testing软件测试网 e2|na9rb.ba
  LAST); 

 web_url("google",51Testing软件测试网{1y(eHKyo uG#l(X
  "URL=http://www.baidu.com/",
\'Jz:M:R+k~Tr0  "TargetFrame=",
l]JwRP@.}7F0  "Resource=0",51Testing软件测试网3U8e/W"?5Qe P#RwA
  "RecContentType=text/html",
!s2F2P s\w T PT*N0  "Referer=",51Testing软件测试网?9~{Q?R
  "Snapshot=t1.inf",51Testing软件测试网 k~/]T#O Q0Nxnf F
  "Mode=HTTP",
W"| y1E;W?0  LAST);
][5q%o%u+?W0……
3agy[L%ih$R [0
-MK|1?]!f Gz0
运行结果:

Starting action Action.51Testing软件测试网?` O)X"P7H^'gZd
Action.c(7): Registering web_global_verification was successful   [MsgId: MMSG-26390]51Testing软件测试网Z6m1}|R'iGLJ
Action.c(11): web_url("google") was successful, 538 body bytes, 295 header bytes   [MsgId: MMSG-26386]51Testing软件测试网^vy C'A
Action.c(21): Error -26366: "Text=google" not found for web_global_verification   [MsgId: MERR-26366]51Testing软件测试网q J~0C'~|)b5n I_.H
Action.c(21): web_url("google") highest severity level was "ERROR", 1714 body bytes, 372 header bytes   [MsgId: MMSG-26388]

*f^#f r8HU*f0Ending action Action.

解释:51Testing软件测试网3VMY9[p&`0j
由上面的结果可


TAG:

 

评分:0

我来说两句

日历

« 2024-04-26  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 5598
  • 日志数: 9
  • 建立时间: 2008-09-09
  • 更新时间: 2008-11-12

RSS订阅

Open Toolbar