天才也许会因为骄傲自满而半途就暗淡无光;而地才不管自己得到多少都不放弃付出最勤劳的汗水,最终成就属于自己的辉煌.

在 LoadRunner 脚本中做关联 (Correlation)

上一篇 / 下一篇  2008-06-30 16:28:25

51Testing软件测试网]!cvB8dv-erG[@

当录制脚本时,VuGen会拦截client端(浏览器)与server端(网站服务器)之间的对话,并且通通记录下来,产生脚本。在VuGen的Recording Log中,您可以找到浏览器与服务器之间所有的对话,包含通讯内容、日期、时间、浏览器的请求、服务器的响应内容等等。脚本和Recording Log最大的差别在于,脚本只记录了client端要对server端所说的话,而Recording Log则是完整纪录二者的对话。
aG%I0@GX.dn,q~ S0
:R:U$c ?F(G8k&v.F!H3} I0当执行脚本时,您可以把VuGen想象成是一个演员,它伪装成浏览器,然后根据脚本,把当初真的浏览器所说过的话,再对网站伺服器重新说一遍,VuGen企图骗过服务器,让服务器以为它就是当初的浏览器,然后把网站内容传送给VuGen。
x"H|0BF0m0所以纪录在脚本中要跟服务器所说的话,完全与当初录制时所说的一样,是写死的(hard-coded)。这样的作法在遇到有些比较聪明的服务器时,还是会失效。这时就需要透过「关联(correlation)」的做法来让VuGen可以再次成功地骗过服务器。51Testing软件测试网7z4WGQAi'd*Y L9G

51Testing软件测试网Yr#]HY \dN

何谓关联(correlation)?

EiN4c7W051Testing软件测试网8y;F0`7I'I%d3J:L\

所谓的关联(correlation)就是把脚本中某些写死的(hard-coded)数据,转变成是撷取自服务器所送的、动态的、每次都不一样的数据。

{ir4m G o\1Ok051Testing软件测试网0t1NL/U2g

举一个常见的例子,刚刚提到有些比较聪明的服务器,这些服务器在每个浏览器第一次跟它要数据时,都会在数据中夹带一个唯一的辨识码,接下来就会利用这个辨识码来辨识跟它要数据的是不是同一个浏览器。一般称这个辨识码为Session ID。对于每个新的交易,服务器都会产生新的Session ID给浏览器。这也就是为什么执行脚本会失败的原因,因为VuGen还是用旧的Session ID向服务器要数据,服务器会发现这个Session ID是失效的或是它根本不认识这个Session ID,当然就不会传送正确的网页数据给VuGen了。

_~.^:_4f!A0

&hEM(n]&tW$lT0下面的图示说明了这样的情形:

+t.M`3gDE{0

[z[ S Zw]+tm0当录制脚本时,浏览器送出网页A的请求,服务器将网页A的内容传送给浏览器,并且夹带了一个ID=123的数据,当浏览器再送出网页B的情求时,这时就要用到ID=123的数据,服务器才会认为这是合法的请求,并且把网页B的内容送回给浏览器。

h5_(`&EU&P6T051Testing软件测试网6? QKo a(S{)o

在执行脚本时会发生什么状况?浏览器再送出网页B的请求时,用的还是当初录制的ID=123的数据,而不是用服务器新给的ID=456,整个脚本的执行就会失败。
N"| H)EL0
.`I ?*^-s*\"D)U9t0要对付这种服务器,我们必须想办法找出这个Session ID到底是什么、位于何处,然后把它撷取下来,放到某个参数中,并且取代掉脚本中有用到Session ID的部份,这样就可以成功骗过服务器,正确地完成整个交易了。51Testing软件测试网 zwZ,\?
哪些错误代表着我应该做关联(correlation)?51Testing软件测试网3gz$IgOd
假如脚本需要关联(correlation),在还没做之前是不会执行通过的,也就是说会有错误讯息发生。不过,很不幸地,并没有任何特定的错误讯息是和关联(correlation)有关系的。会出现什么错误讯息,与系统实做的错误处理机制有关。错误讯息有可能会提醒您要重新登入,但是也有可能直接就显示HTTP 404的错误讯息。51Testing软件测试网x&F hA V0W
要如何做关联(correlation)?
F3^4n%H a0关联(correlation)函数
?|{)EsK0关联(correlation)会用到下列的函数:
8t/I]x KX#HsX0• web_reg_save_param:这是最新版,也是最常用来做关联(correlation)的函数。51Testing软件测试网kZ rg@*y-?f!N@
语法:51Testing软件测试网Bm'Mgy%k-g
web_reg_save_param ( “Parameter Name” , < list of Attributes >, LAST );51Testing软件测试网T8s3]\ _$DIx)F
• web_create_html_param、web_create_html_param_ex:这二个函数主要是保留作为向前兼容的目的的。建议使用 web_reg_save_param 函数。
\R9[|9af"k0详细用法请参考使用手册。在VuGen中点选【Help】>【Function reference】>【Contexts】>【Web and Wireless Vuser Functions】>【Correlation Functions】。
4wuAL @UU)V_9i0如何找出要关联(correlation)数据51Testing软件测试网 Xv1L-_x
简单的说,每一次执行时都会变动的值,就有可能需要做关联(correlation)。51Testing软件测试网"E0z N.w.a3m(Eb|!a.q
VuGen提供二种方式帮助您找出需要做关联(correlation)的值:51Testing软件测试网 L Q_`a}
1. 自动关联51Testing软件测试网&f [.g3B1h4m#\/D3H
2. 手动关联51Testing软件测试网7lu/[2| w/?'VbT9v
自动关联
HCb;\y)BSpx~0VuGen内建自动关联引擎(auto-correlation engine),可以自动找出需要关联的值,并且自动使用关联函数建立关联。51Testing软件测试网t!Y'OKu2I
自动关联提供下列二种机制:51Testing软件测试网.Y/eOo6hW1mq
• Rules Correlation:在录制过程中VuGen会根据订定的规则,实时自动找出要关联的值。规则来源有两种:51Testing软件测试网l+N;K2S]6w LA[
o 内建(Built-in Correlation):51Testing软件测试网#\#Ds:a7@*I
VuGen已经针对常用的一些应用系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,内建关联规则,这些应用系统可能会有一种以上的关联规则。您可以在【Recording Options】>【Internet Protocol】>【Correlation】中启用关联规则,则当录制这些应用系统的脚本时,VuGen会在脚本中自动建立关联。
.GM#M%Oo2p2F4S5r mq0您也可以在【Recording Options】>【Internet Protocol】>【Correlation】检视每个关联规则的定义。
6_L!|~pr4rj0o 使用者自订(User-defined Rules Correlation):51Testing软件测试网gxe Wd E:gL:y'cZ
除了内建的关联规则之外,使用者也可以自订关联规则。您可以在【Recording Options】>【Internet Protocol】>【Correlation】建立新的关联规则。
1m)V/m*p*]C@h1H0• Correlation Studio:有别于Rules Correlation,Correlation Studio则是在执行脚本后才会建立关联,也就是说当录制完脚本后,脚本至少须被执行过一次,Correlation Studio才会作用。Correlation Studio会尝试找出录制时与执行时,服务器响应内容的差异部分,藉以找出需要关联的数据,并建立关联。
&^:ld Yx7n!j;j)I0Rule Correlation

:|$y6Q+LvR051Testing软件测试网\4WBDdpJ2Q

请依照以下步骤使用Rule Correlation:51Testing软件测试网3s%U;E }2qC
1. 启用auto-correlation
W$^ qO2xD}|%V01. 点选VuGen的【Tools】>【Recording Options】,开启【Recording Options】对话窗口,选取【Internet Protocol】>【Correlation】,勾选【Enable correlation during recording】,以启用自动关联。
!G&KBd?&ta_d02. 假如录制的应用系统属于内建关联规则的系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,请勾选相对应的应用系统。51Testing软件测试网-~Xh2A[b6M3q
3. 或者也可以针对录制的应用系统加入新的关联规则,此即为使用者自订的关联规则。51Testing软件测试网 |Hbf|2ud/o
4. 设定当VuGen侦测到符合关联规则的数据时,要如何处理:51Testing软件测试网&Z:pd3gMAO7|
 【Issue a pop-up message and let me decide online】:跳出一个讯息对话窗口,询问您是否要建立关联。
3_!me@]T x~0 【Perform correlation in sceipt】:直接自动建立关联
7~Zs1Y d hW02. 录制脚本
iU+E&r#dt.IGI0开始录制脚本,在录制过程中,当VuGen侦测到符合关联规则的数据时,会依照设定建立关联,您会在脚本中看到类似以下的脚本,此为BroadVision应用系统建立关联的例子,在脚本批注部分可以看到关联前的数据为何。
#p#Z%N!z#i[+]051Testing软件测试网F(Jr6OK,T#He t
3. 执行脚本验证关联是OK的。51Testing软件测试网 O5P(xk&qXY6\(~#b

f dHVXaI0Correlation Studio51Testing软件测试网)g(L$k p5pj
当录制的应用系统不属于VuGen预设支持的应用系统时,Rule Correlation可能既无法发挥作用,这时可以利用Correlation Studio来做关联。51Testing软件测试网L4LF(R0V+V }{"[8E

/odwD2f[qd0Correlation Studio会尝试找出录制时与执行时,服务器响应内容的差异部分,藉以找出需要关联的数据,并建立关联。

/a5m kf?9Y0

hIe Mw6b6?,g[Ap0使用Correlation Studio的步骤如下:51Testing软件测试网2Gt r o8O(D

51Testing软件测试网)]W9dqx~ \c

1. 录制脚本并执行51Testing软件测试网PJ AzNH ju }-X

51Testing软件测试网'uKxB%\9I P

2. 执行完毕后,VuGen会跳出下面的【Scan Action for Correlation】窗口,询问您是否要扫描脚本并建立关联,按下【Yes】按钮。51Testing软件测试网3}NQ ws}e2W
51Testing软件测试网1JS"V2^[/U"N!]F
3. 扫描完后,可以在脚本下方的【Correlation Results】中看到扫描的结果。51Testing软件测试网&]"d6H a U w
51Testing软件测试网d:zT#DC&`(Y
4. 检查一下扫瞄的结果后,选择要做关联的数据,然后按下【Correlate】按钮,一笔一笔做,或是按下【Correlate All】让VuGen一次就对所有的数据建立关联。

B6Ef&Sr&F Li1b(h~c_0

IU-Ll$W}d*H;n0注意:由于Correlation Studio会找出所有有变动的数据,但是并不是所有的数据都需要做关联,所以不建议您直接用【Correlate All】。51Testing软件测试网&o0b w ^9p;C

D-A*OZVj^,M05. 一般来说,您必须一直重复步骤1~4直到所有需要做关联的数据都找出来为止。因为有时前面的关联还没做好之前,将无法执行到后面需要做关联的部份。51Testing软件测试网A2lv]Q7{GGn+lp

rs-Zo$@#h7M{Q0有可能有些需要做关联的动态数据,连Correlation Studio都无法侦测出来,这时您就需要自行做手动关联了。51Testing软件测试网ERm |p1P

51Testing软件测试网 Qp X~g3gM.C

手动关联51Testing软件测试网 _I;bMe8Uz%~Y

51Testing软件测试网.c_ W2bO#v8U

手动关联的执行过程大致如下:51Testing软件测试网W4Ei kJ/P"jS"U

9OPj5b.rT*Uo3T01. 使用相同的业务流程与数据,录制二份脚本51Testing软件测试网,Zq0qe m7BS

Dcr C4S0`2t02. 使用WinDiff工具协助找出需要关联的数据51Testing软件测试网[J rzSJ

\NIwJpTS03. 使用web_reg_save_param函数手动建立关联51Testing软件测试网7T.Y4P'UQm#FA/Q U

3b.g QJ5H oS04. 将脚本中有用到关联的数据,以参数取代

p/S4TT |u {G)K0

YP5ffD$pM+l0接下来将详细的说明如何执行每个步骤

d B0Fn N'I@`8F2P051Testing软件测试网[-z9J6qRn;Zf

使用相同的业务流程与数据,录制二份脚本51Testing软件测试网)~'wKYid7_

2X8uw'J"oi4^ h}3s01. 先录制一份脚本并存档。51Testing软件测试网&h Nn8rW5FC

51Testing软件测试网sh8j/Ba Ma

2. 依照相同的操作步骤与数据录制第二份脚本并存盘。注意,所有的步骤和输入的数据一定都要一样,这样才能找出由服务器端产生的动态数据。51Testing软件测试网@|*xf3e-}X

51Testing软件测试网9w,}BQ9z

有时候会遇到真的无法使用相同的输入数据,那您也要记住您使用的输入数据,到时才能判断是您输入的数据,还是变动的数据。51Testing软件测试网tv8y-Q^]-f(L

51Testing软件测试网c f)}]1@)lE3wrF

使用WinDiff工具协助找出需要关联的数据

,E$w(EH2{'J\!R!`9j-G&u6`0

M3{f.q{:U#{y:m01. 在第二份脚本中,点选VuGen的【Tools】>【Compare with Vuser…】,并选择第一份脚本。

?z,]s6e@051Testing软件测试网Q7f6z2cP{L

2. 接着WinDiff会开启,同时显示二份脚本,并显示有差异的地方。WinDiff会以一整行黄色标示有差异的脚本,并且以红色的字体显示真正差异的文字。(假如没看到红色字体,请点选【Options】>【View】>【Show Inline Differences】)。

*u7d5@y#gNal0

$x b*X"D X"]6y+g J03. 逐一检视二份脚本中差异的部份,每一个差异都可能是需要做关联的地方。选取差异的脚本,然后复制。

0qL7wu*I0x.I%Q0

BdS)] D \Z0在复制时,有时并不需要取整行脚本,可能只会选取脚本中的一部分。51Testing软件测试网hgP&kJ x BE
注意:请忽略lr_thik_time的差异部份,因为lr_thik_time是用来模拟每个步骤之间使用者思考延迟的时间。
m ^3O.W2T2{ M051Testing软件测试网IA5q2l!B"m,Q1h&T
4. 接着要在Recording Log(单一protocol)或是Generation Log(多重protocol)中找这个值。将鼠标光标点到Recording Log的第一行开头,按下Ctrl+F,开启【Find】窗口,贴上刚刚复制的脚本,找出在Recording Log第一次出现的位置。
}c'zrW@a ^0
FP&R%cbw g0结果会有二种:51Testing软件测试网~~E"h7l%{G)J5@9J

'A2zEO"g F0o 在Recording Log中找不到要找的数据,这时请先确认您找对了脚本,毕竟现在开启了二个几乎一样的脚本,很容易弄错。

0g'L8V&{*s$`C(j2Q3~0

e.Y6@9Q.^jkX,D ?J4n0o 在Recording Log中找到了要找的数据,这时要确认数据是从服务器端传送过来的。首先可以先检查数据的标头,从标头的Receiving response可以知道数据是从服务器端传送到client端的。假如此数据第一次出现是在Sending request中,则表示此数据是由client端产生,不需要做关联,但是有可能需要做参数化(parameterized)。

[L9t\ T/G&s0

3DJA*U4R{0您要找的标头格式如下:

t cj*GXhJIYkf051Testing软件测试网$R,RZI&J

*** [tid=b9 Action1 2] Receiving response from host astra.merc-int.com:80 ( 25/11/2002 12:04:00 )51Testing软件测试网!J9n Q:~Oa g3bD0_t
51Testing软件测试网`S;bhK1i9P)k*V
5. 现在您已经找到录制二次都不一样,而且是由服务器所产生的动态数据了,而此数据极有可能需要做关联。
5I~6Gh^0

*Y9p9Y1[6c^V _#E051Testing软件测试网|,o Nw5sk

使用web_reg_save_param函数手动建立关联51Testing软件测试网bLaE/LW3iz6_V

f#tP"N]X2n Y0在找到是由服务器所产生的动态数据之后,接下来要做的就是找出适当的位置,使用web_reg_save_param函数,将这个动态数据撷取到某个参数中。

u V*q9p B8kwA(E6G0

v1k9II1u|x01. 要在哪里使用web_reg_save_param函数?

B(H8O;TN(O0

\Q*l sVO)EV hT;y.K0在之前的步骤,我们已经在Execution Log找到可能需要关联的动态数据。在Execution Log中选取动态数据前的文字然后复制,我们将会利用这段文字,来帮助我们找出要关联的动态数据。51Testing软件测试网hdJ/s lK`H

t;v,z)IgXzG2t0不过在这之前我们要先找出使用web_reg_save_param函数的正确位置,所以我们要再重新执行一遍脚本,而且这次会开启所有的Log。

c*n E;[3G ]+u"y051Testing软件测试网Qxn*j,@1s z/X H7C

1. 在VuGen中点选【Vuser】>【Run-Time Settings】。

'F1`:ne }p[I7Stx051Testing软件测试网4G7EwD\`f9F7E

2. 点选【General】>【Log】。51Testing软件测试网|t9]G1|e

51Testing软件测试网9AJG[a{ rb E

3. 勾选【Enable logging】、【Always sends messages】、【Extended log】,以及【Extended log】下的所有选项。

$d,`8rj$d'd&]"j5l6p051Testing软件测试网%jz u%Z:lTCk"NO*}

4. 按下【OK】就可以执行脚本了。51Testing软件测试网GMT8Yr(l

%@L A'MU f y%S{ H"~0执行完脚本之后,在Execution Log中搜寻刚刚复制的字符串。找到字符串后,在字符串前面会有A.tion1.c(7),这个7就是到时候要插入web_reg_save_param函数的位置,也就是要插入到脚本的第7行。51Testing软件测试网.Ov G3~;p4\)`

51Testing软件测试网M7kU K2c*Sy?}

在脚本的第7行前插入一行空白行,然后输入51Testing软件测试网 Rv1K B)RXo

e#mvtCYF0web_reg_save_param(“UserSession”,51Testing软件测试网\(F ?-U4@j-E*u e
“UserSession” 这个 “UserSession” 就是到时要使用的参数名称,建议给个有意义的名字。51Testing软件测试网 ytMu%KA(Og0Z;U
注意:到这里整个web_reg_save_param函数还没完成。
*w6s[.aY]0
n#Q(X Fx x^*Q@A02. 找出web_reg_save_param中要用到的边界51Testing软件测试网6?:o*{,I'A8R:cN

&M(T)LIi["H0f{4^0web_reg_save_param函数主要是透过动态数据的前面和后面的固定字符串,来辨识要撷取的动态数据的,所以我们还需要找出动态数据的边界字符串。

u|9X7y Z,_0

5V)L6Ms |*RS\:S0bk0找出左边界字符串

|N ^D-Fm0

)Nb U2Q;LhfC {Zq0再回到Execution Log中,选取动态数据前的字符串并且复制它。51Testing软件测试网nmh8r:_+YQ\/jVN^/L

U3`%d hH`,@ n0这时会有个问题,到底要选取多少字符串才足以唯一识别要找的动态数据呢?建议是越多越好,但是尽量不要包含到特殊字符。51Testing软件测试网gC1kz:`7R r

51Testing软件测试网4L4B6Pe*QC

在这边我们选取「input type=hidden name=userSession value=」字符串。选好之后,还要再确认一次这段字符串真的是可以唯一识别的,所以我们在Execution Log中透过Ctrl+F的搜寻,找找看这段字符串是否可以找到要找的动态数据。假如找不到,web_reg_save_param函数还有个ORD参数可以使用,ORD参数可以设定出现在第几次的字符串才是要找的字符串。51Testing软件测试网0J],pBF6G Jz

2I\[.d;D0将这个边界字符串加到未完成的web_reg_save_param函数中:

;UNMkNi!z051Testing软件测试网3D6T5M]?q

web_reg_save_param(“UserSession”, “LB= input type=hidden name=userSession value=”,51Testing软件测试网"W-F H8Yp/gr0n9M+S

7g9~4Y^a3IQ!T0找出右边界字符串51Testing软件测试网{etX.j,bRJ

51Testing软件测试网@1yjw-IzX6ee,r:K

接下来要找出动态数据的右边界字符串,这个字符串就比较好找了,从动态数据的最后一个字符开始,通常就是我们要找的右边界字符串了。

6o[{ L.\;]:~-Wb0

#ge8RN3p$[ C0以这个例子来看,就是「>」,所以再把右边界字符串加入,web_reg_save_param函数中,这时web_reg_save_param函数已经快完成了。最后再加上「LAST);」就完成整个web_reg_save_param函数了。51Testing软件测试网 C Y s)WV#@QB
web_reg_save_param(“UserSession”, “LB= input type=hidden name=userSession value=”, “RB=>”, LAST);
Jp:d0Mnle$FU0
RJ8g?vSr _ Fh0将脚本中有用到关联的数据,以参数取代51Testing软件测试网;l#zQ l3\ U8V\b

51Testing软件测试网-dc*yUb

当使用web_reg_save_param建立参数后,接下来就是用“UserSession”参数去取代脚本中写死的(hard-coded)资料。

9n.@rBu051Testing软件测试网,xIiETC,H

范例:

Z)d_ Q!D051Testing软件测试网{ D0k){c@4kP

51Testing软件测试网z-`/g_;I4mR@
“Name=userSession”, “Value=75893.0884568651DQADHfApHDHfcDtccpfAttcf”, ENDITEM,51Testing软件测试网"pG7e~%\Ou`
换成
ay6Q p[[j1C0“Name=userSession”, “Value={UserSession}”, ENDITEM,51Testing软件测试网W(Z m+n,O` \
51Testing软件测试网!t3L Ofe\
到这里您已经完成了一个关联了,接下来就是执行脚本,是否能成功运行,假如还是有问题,就要检查看看是否还需要再做另一个关联。51Testing软件测试网 Y4}S^3I

9Cr@MC [0关于 web_reg_save_param 函数51Testing软件测试网~W*Y+?IWL F"pw:{:X"o

n!Yf8n(M;[ }#K*s0对于关联(correlation)来说,web_reg_save_param是最重要的一个函数,其功能是在下载的网页内容中,透过设定的边界字符串,找出特定的数据并将其储存在一个参数中,以供后续脚本使用。
+GEK lu0接下来将针对web_reg_save_param做比较详细的说明。51Testing软件测试网~1R @3bECb8cC8BU-N

51Testing软件测试网8dZr~n

Service and registration type function51Testing软件测试网%[;U i5fX

51Testing软件测试网(sET#v+R7r8G%II0A^

web_reg_save_param是一个Service function。service function主要是用来完成一些特殊的工作的,如关联、设定proxy、提供认证信息等,当其作用时,不会对网页的内容做任何的修改。51Testing软件测试网GRR]l!a

51Testing软件测试网1rP6F3{r.o&n

web_reg_save_param同时也是一个registration type function (只要函数名称中包含_reg_的字眼,表示其为registration type function)。registration type function意味着其真正作用的时机是在下一个action function完成时执行的。举例来说,当某个web_url执行时所接收到的网页内容中包含了要做关联的动态数据,则必须将web_reg_save_param放在此web_url之前,则web_reg_save_param会在web_url执行完毕后,也就是网页内容都下载完后,再执行web_reg_save_param找寻要做关联的动态数据并建立参数。

8ab$G8aGQ;@&}4O0

P9h;qEk-e9X I0所以要记住一点,要使用registration type function时,要注意其放置的位置必须在要作用的action function之前。

Mg b1hw2v-vD0

c1{$JG)S0语法

7^.Q#\%V N ls!w051Testing软件测试网7egoQIW

int web_reg_save_param(const char *ParamName, <list of Attributes>, LAST);

"C*AbEk~j051Testing软件测试网;]/_4hF^

参数说明51Testing软件测试网O ]7gH~OX2IE R L

Z~ A zS%^H9T{0ParamName:存放动态数据的参数名称51Testing软件测试网q3Io5R1[ J

51Testing软件测试网&n4NN]:ac

list of Attributes:其它属性,包含 Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, 以及 SaveLen。属性值不分大小写,例如 Search=all。以下将详细说明每个属性值的意义:

*f5[/? n.H3Ys.Z0

#i4C ?J P~#Rhb/x0• Notfound:指定当找不到要找的动态数据时该怎么处置。

Cr.u)eN U/R*rg0

)mtH.f#| pnu{0o Notfound=error:当找不到动态数据时,发出一个错误讯息。假如没设定此属性,此为LoadRunner的默认值。
? rfg.@(\g0o Notfound=warning:当找不到动态数据时,不发出错误讯息,只发出警告,脚本也会继续执行下去不会中断。在对角本除错时,可以使用此属性值。

v-Z5{+S8d#P0

Lr4Z"gP'N$x0• LB:动态数据的左边界字符串。此属性质是必须要有的,而且区分大小写。51Testing软件测试网CX*vR;hY

51Testing软件测试网+u ? \6z2es

• RB:动态数据的右边界字符串。此属性质是必须要有的,而且区分大小写。51Testing软件测试网!sXXQ3I3gG O-C#_

bP @RF,h"VE0• RelFrameID:相对于URL而言,欲搜寻的网页的Frame。此属性质可以是All或是数字,而且可有可无。
3ma{m!YQ IpC6K;o0• Search:搜寻的范围。可以是Headers(只搜寻headers)、Body(只搜寻body部分,不搜寻header)、Noresource(只搜寻body部分,不搜寻header与resource)或是All(搜寻全部范围,此为默认值)。此属性质可有可无。

!o2Nm%{r0

Qm}%zt0• ORD:指明从第几次出现的左边界开始才是要撷取的数据。此属性质可有可无,默认值是1。假如值为All,则所有找到符合的数据会储存在数组中。51Testing软件测试网 J|(DBX dz^q

51Testing软件测试网 _ Y(pf.b%m|

• SaveOffset:当找到符合的动态数据时,从第几个字符开始才开始储存到参数中。此属性质不可为负数,其默认值为0。

@+BY"}W3g A0

Qw)G%G?:s b*|0• Convert:可能的值有二种:51Testing软件测试网/MO8yR pY:R0V"_

/O,bcw N5`qEU0o HTML_TO_URL: 将HTML-encoded数据转成URL-encoded数据格式51Testing软件测试网 p bq]xl k?
o HTML_TO_TEXT:将HTML-encoded数据转成纯文字数据格式51Testing软件测试网?wRHur

,M$sG#xI}0• SaveLen:从offect开始算起,到指定的长度内的字符串,才储存到参数中。此参数可有可无,默认值是-1,表示储存到结尾整个字符串。

&@W| ] y^y0

QT CNH8Jp5Y J0范例

7?/ZCFD0

7m)T1Y?'` nc5e0web_reg_save_param("A", "LB/ic=<a href=", "RB='>", "Ord=All", LAST);nner会搜寻网页中所有以 「<a href=」 开头,且以 「’>」结束,当中包含的字符串,并且储存在「A」参数中。
.J ^7C$d^/v5o#B;T0Tips and Tricks
I-rP;@vZse%L0

X$v;OM-Yu|051Testing软件测试网9a'Yg fD/e` ~4a

以下提供一些关联的常见问题:

Fy6If%h@.S0

y+ozPNO0• 如何打印出参数值?51Testing软件测试网|Zl1p5Aw+E'H;v

%b8j'B3H r0H ]-E0lr_output_message这二个函数来做到。例如:51Testing软件测试网Tc2v,` Fc n4q
lr_output_message(“Value Captured = %s”, lr_eval_string(“{ParameterName}”));
4u7w Jg1sc M)f0lr_eval_string与lr_output_message函数的使用说明请参考LoadRunner Online Function Reference。

8OA ~/d4S#y6QJ051Testing软件测试网u c I)V gs Wgj:n`

• 在脚本的data目录下找不到路制时的快照(snapshot)51Testing软件测试网c4I;\C&?1X H M

51Testing软件测试网@x-dg` VI)kX

造成在脚本的data目录下找不到路制时的快照(snapshot)的可能原因如下:

3[`Im,gd0

Y"{I.vPa2W0o 脚本是由VuGen 6.02或更早的版本所录制的51Testing软件测试网-o}7e@1zK#k0j0i:m3s6U

51Testing软件测试网'p*qp5ux q3mJz

o 汇入的Action不会包含快照(snapshot)的档案

$M5@*XE;[e051Testing软件测试网%p%E ki?Cn)Y)T

o 脚本是储存在只读的目录下,早成VuGen无法储存执行时撷取的快照(snapshot)

F5^n2Td'uUgWd051Testing软件测试网z-oFa%yXg&a-K

o 某些步骤并不会产生快照(snapshot),如浏览某个资源

%j\)D2L W!}3e051Testing软件测试网uD X:Pk+r

o 快照(snapshot)功能被取消
%d;Je5V C:j0【Tools】>【General options】>【Correlation】tab >【Save correlation information during replay】

3b'Oc3OTc jk0

{%M-HM }9bsY h0• 开启WinDiff时出现「File no longer available」的错误讯息51Testing软件测试网I Vc*Z{2o8J `

51Testing软件测试网|9Rn STOdZ/x

WinDiff这个工具有些限制,无法开启包含空格符的目录或是脚本,所以建议命名时不要使用空格符,并且尽可能将名称取短一点。

'n[Cr g E$x0

%_lI/Y.G*T`0• 录制时突然跳出【Correlation warning】对话窗口

lk9SA$@H6C~0

Xk2JB-E G5~4{.R'_0当你有勾选自动关联的【Issue a popup message and let me decide online】选项,当VuGen发现有可能要做关联的数据时,就会跳出【Correlation warning】的窗口,询问你要做关联(Correlation in scrīpt)还是要忽略(Ignore)。

$]j3}]B7E8en3Jm6Y0

.P6J'M MeGHa S0另外你也可以勾选【Perform correlation in scrīpt】,让VuGen自动作关联,不会再跳出询问窗口。51Testing软件测试网E W[(qv+I$f/se"V
或是勾选【Disable correlation engine】,关闭自动关联的功能。51Testing软件测试网SN/n0P Q(`

]T}q;p;P;|0• 如何手动启动「Scan action for correlation」的功能51Testing软件测试网8ZI"e|v Y

{Z9o(R\0要手动启动「Scan action for correlation」的功能,请先执行脚本一次后,点选【Vuser】>【Scan Action for Correlation】。51Testing软件测试网(on$o5`[u-q+^8t

8`-f6A6J4](gwOX0e0• 执行完脚本后并未出现【Scan Action for Correlation】窗口51Testing软件测试网{-p3E2dr9Q6C;~%h)\+pq

9J5^1I'a5n_0要启用【Scan Action for Correlation】功能,请点选【Tools】>【General options】>【Correlation】tab,勾选【Show Scan for correlation popup after replay of Vuser】选项。

2T"QGa!~ qu2M0

TAG:

 

评分:0

我来说两句

日历

« 2024-03-29  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 11658
  • 日志数: 15
  • 图片数: 4
  • 建立时间: 2007-03-16
  • 更新时间: 2009-07-06

RSS订阅

Open Toolbar