热爱测试,主要研究性能测试和自动化测试方面的技术,希望与同样对测试有热情的你一同进步成长

[转载]深入理解Loadrunner中的Browser Emulation

上一篇 / 下一篇  2009-06-16 13:23:39 / 个人分类:测试工具

深入理解Loadrunner中的Browser Emulation

? {@d G!L0wZ0一:基本介绍51Testing软件测试网b:Hg P9oCy6r6e

51Testing软件测试网w p4VUX"e&_~,g"q,C

在Loadrunner的使用中,对于Run-time Settings下的browser emulation设置是比较容易让人产生困惑的地方。下面我们结合sniffer来具体看看每个选项的用途,以及对测试的影响。51Testing软件测试网$|Q9Zm v

"U1N1Z:ba uB)t3Q0clip_image00251Testing软件测试网/dZ_u4z'c*f#N)o|

51Testing软件测试网3j5l?"W&A7]!@i

                                               Browser Emulation 图

}b-[.I:v8g s051Testing软件测试网$xqw!n:X,g

二:案例和工具51Testing软件测试网QK7RD$tfm

51Testing软件测试网2lC`2YGyha2U

1.测试案例:

j8{d3~FO!viJ4z9s051Testing软件测试网:p![+q"L8tM

打开网站首页两次,对比不同Browser Emulation设置下loadrunner的行为,脚本如下。

^ P2P&_)}%} R kgoi0
Action()
7`!ka4B ?0?0{51Testing软件测试网^^#U3?vb
web_url("www.primeton.com",51Testing软件测试网s!{~V1SR;uK
"URL=http://www.primeton.com/",
Ya5|e` pI#[)k0"Resource=0",
ho:{bh3[$Gz0"RecContentType=text/html",51Testing软件测试网&Le Y([;E%K6E j0?
"Referer=",
co!FO!bF]V*`0"Snapshot=t2.inf",
3^Sj;Sz{E0"Mode=HTML",
lGB4Q(x0LAST);
~p6L&e%k{7\+b[051Testing软件测试网 \,H;nfxC.~S g
web_url("www.primeton.com",
Y*\z t?l'}0"URL=http://www.primeton.com/",51Testing软件测试网kr5Z-}k8H R
"Resource=0",51Testing软件测试网hZ9`PpmB
"RecContentType=text/html",
N&C$N/C I.{0"Referer=",
'K,S-fQ0t#O+n!A0"Snapshot=t2.inf",
!r:{$[c&_pH;e0"Mode=HTML",51Testing软件测试网9krr Ewm7U
LAST);51Testing软件测试网-kS2XBa$j*l
51Testing软件测试网?-K:Z_qm
return0;51Testing软件测试网\FP|`%?)DP)U
}
/?%?;C4S @.] h$cz0

N*`8H*k#KK+N7qIn0

f9DrY[2[z051Testing软件测试网yT9E"?A

2.sniffer工具

5Ni8vJa051Testing软件测试网s$\;c?%R _{7ky6[:i

开源工具:Wireshark(前身是ethereal)(www.wireshark.org)

$F(~f9^"gK%L?051Testing软件测试网OnuN.~

三:测试过程51Testing软件测试网4O\l {ot

51Testing软件测试网)El4n5E*k @

为了方便描述,我们约定用:51Testing软件测试网PlH'K6I b c~

51Testing软件测试网Q(Z2C2qV[jms

A代表Simulate browser cache51Testing软件测试网{E*D TXR)O ?

(QB3s+s xB-}+ao-D0B代表Cache URLs requiring content(HTMLs)

vu+k1FZM/q0

n-G6cyk'D&OO0C代表Check for newer versions of stored pages every visit to the page51Testing软件测试网(_iXa%y.c

51Testing软件测试网"J@3\ R#m EVR

D代表Download non-HTML resources

@iRV_x0

:[!\A"g\7^0E代表Simulate a new user on each iteratioin

|4B!OJ6tK;I)E$f0

a4wC3xB0F代表Clear cache on each iteration51Testing软件测试网7E s#i%H%mN"_O)M*n;k

)W Y?b3f9yhX0首先设置Run Logic中的iteration为2。让Action运行两次,看看循环运行脚本两次,数据包和连接数的变化。

9P6y5^:p0XZI.D yn0

yQpv%_I,X j01.去掉所有选项51Testing软件测试网#@t4NT2}1Y\

-D J|8[o1N ]0结果:共获取数据包95个,建立连接1个(红色标识),断开连接1个(蓝色标识)51Testing软件测试网NN#H1QZ!P

No.     Time        Source            Destination       Protocol Info
@ZP2JLbP2e01 0.000000 192.168.1.61 203.81.29.137 TCP 13835 > http [SYN] Seq=0 Len=0 MSS=1460 WS=251Testing软件测试网In'f%M.j7e5QZ2T
2 0.036053 203.81.29.137 192.168.1.61 TCP http > 13835 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=0
+wEYMFN Kn092 1.415887 192.168.1.61 203.81.29.137 TCP 13835 > http [FIN, ACK] Seq=817 Ack=71762 Win=257760 Len=0
"r)X @:W3K/?maW0
94 1.449960 203.81.29.137 192.168.1.61 TCP http > 13835 [FIN, ACK] Seq=71762 Ack=818 Win=16464 Len=051Testing软件测试网o.Q X IK
51Testing软件测试网/h0f+BN%s(`)g[

wp k8\Q4na0

D ]HclT3P0在这种情况下,数据包非常少(没有选择下载资源文件入css,js,gif等),而且你可以看到,打开4次首页,只建立了一个tcp连接。51Testing软件测试网(qGA6k,A9W-p2lI8fc*J

51Testing软件测试网s ]3`8H3[)T

这时,你即使选择A,发现数据包的数量量页没有变化,因为cache主要还是针对资源文件

ug A Rd.{p0

_"V)rYzCq*k,Gx02.选择E(F)51Testing软件测试网HQ-LK|

&VfU[#hL|0结果:共获取数据包102个,建立连接2个(红色标识),断开连接2个(蓝色标识)

dX8cB&Iu0a0U!H^0
No.     Time        Source            Destination       Protocol Info
8a}6BQAS&T MA)Y b01 0.000000 192.168.1.61 203.81.29.137 TCP 13886 > http [SYN] Seq=0 Len=0 MSS=1460 WS=251Testing软件测试网DF;x-\*J%l
2 0.037013 203.81.29.137 192.168.1.61 TCP http > 13886 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=051Testing软件测试网&|5Ay-{ {?u
48 0.618117 192.168.1.61 203.81.29.137 TCP 13886 > http [FIN, ACK] Seq=409 Ack=35882 Win=257760 Len=051Testing软件测试网'A"R r]7GK9xh
49 0.644106 192.168.1.61 203.81.29.137 TCP 13887 > http [SYN] Seq=0 Len=0 MSS=1460 WS=251Testing软件测试网"[1_e W\VHb
51 0.651919 203.81.29.137 192.168.1.61 TCP http > 13886 [FIN, ACK] Seq=35882 Ack=410 Win=16872 Len=0
)?A?,RqE053 0.676377 203.81.29.137 192.168.1.61 TCP http > 13887 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=0
fZ iQ]4q%I3t7x099 1.310379 192.168.1.61 203.81.29.137 TCP 13887 > http [FIN, ACK] Seq=409 Ack=35882 Win=257760 Len=0
:T;KvO7h$TbC0101 1.347949 203.81.29.137 192.168.1.61 TCP http > 13887 [FIN, ACK] Seq=35882 Ack=410 Win=16872 Len=051Testing软件测试网:Jp [`/[w9u3y

5vM!PQn0在这种情况下,数据包非常少(没有选择下载资源文件入css,js,gif等),对比第一种情况,你会发现它建立了两个连接,这就是E的作用,它对于每次迭代都当成一个新的用户,需要重新建立连接。

)||)g]*AOV1\051Testing软件测试网_4CS9F:}E we0e2B

3.选择DE(F)51Testing软件测试网j `:pH%~ },\

#K6H%R-X9b2n'X k0结果:共获取数据包1782个,建立连接6个(红色标识),断开连接6个(蓝色标识)

:Y4`Kp9@q0
No.     Time        Source            Destination       Protocol Info
M|x;q#Hil D01 0.000000 192.168.1.61 203.81.29.137 TCP 14016 > http [SYN] Seq=0 Len=0 MSS=1460 WS=2
9|-W4ca \Tt \0
2 0.037911 203.81.29.137 192.168.1.61 TCP http > 14016 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=0
*T"Vc$E!L/~`Fne06 0.107432 192.168.1.61 203.81.29.137 TCP 14017 > http [SYN] Seq=0 Len=0 MSS=1460 WS=251Testing软件测试网&J1nwv[\`wA&dL
9 0.141816 203.81.29.137 192.168.1.61 TCP http > 14017 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=051Testing软件测试网`7Wp6Q,[7hLvZ/B
426 3.334889 192.168.1.61 203.81.29.137 TCP 14017 > http [FIN, ACK] Seq=1852 Ack=150284 Win=257484 Len=051Testing软件测试网C[*L;lk?"m%P4W'K/P
428 3.372253 203.81.29.137 192.168.1.61 TCP http > 14017 [FIN, ACK] Seq=150284 Ack=1853 Win=16998 Len=051Testing软件测试网%]Q1[ }[$aN!y5nV,}\#Hq
448 4.395488 192.168.1.61 203.81.29.137 TCP 14020 > http [SYN] Seq=0 Len=0 MSS=1460 WS=251Testing软件测试网"@,Jj6p_#aKsEF
457 4.439604 203.81.29.137 192.168.1.61 TCP http > 14020 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=051Testing软件测试网gEx*n'X%y
859 7.593610 192.168.1.61 203.81.29.137 TCP 14016 > http [FIN, ACK] Seq=2849 Ack=377404 Win=257484 Len=0
EK ] @&_0870 7.659680 203.81.29.137 192.168.1.61 TCP http > 14016 [FIN, ACK] Seq=377404 Ack=2850 Win=15935 Len=0
.aA F%c.w0888 8.511308 192.168.1.61 203.81.29.137 TCP 14020 > http [FIN, ACK] Seq=1602 Ack=208150 Win=257760 Len=051Testing软件测试网LJ&B }t/QeNe
890 8.549451 203.81.29.137 192.168.1.61 TCP http > 14020 [FIN, ACK] Seq=208150 Ack=1603 Win=17280 Len=051Testing软件测试网%GV n(V*?(vI WJ
892 8.566246 192.168.1.61 203.81.29.137 TCP 14022 > http [SYN] Seq=0 Len=0 MSS=1460 WS=251Testing软件测试网G*oz8z|UE
893 8.601893 203.81.29.137 192.168.1.61 TCP http > 14022 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=051Testing软件测试网 c_o0K4A-QE H A
899 8.702628 192.168.1.61 203.81.29.137 TCP 14023 > http [SYN] Seq=0 Len=0 MSS=1460 WS=2
s:e@q/dB?|0904 8.741807 203.81.29.137 192.168.1.61 TCP http > 14023 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=051Testing软件测试网eKC9g"t"uy XN5n
1298 11.809456 192.168.1.61 203.81.29.137 TCP 14022 > http [FIN, ACK] Seq=1550 Ack=159770 Win=257484 Len=0
:G"f8C^z3bm oc co o5g0
1310 11.878665 203.81.29.137 192.168.1.61 TCP http > 14022 [FIN, ACK] Seq=159770 Ack=1551 Win=17280 Len=0
-{R%N-_v0OD:R Dy v#[01341 12.771707 192.168.1.61 203.81.29.137 TCP 14026 > http [SYN] Seq=0 Len=0 MSS=1460 WS=251Testing软件测试网i3k j`Q*p e"@
1348 12.813950 203.81.29.137 192.168.1.61 TCP http > 14026 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=051Testing软件测试网 MW#w I;C7[4m
1759 16.032952 192.168.1.61 203.81.29.137 TCP 14023 > http [FIN, ACK] Seq=3151 Ack=367918 Win=257484 Len=051Testing软件测试网 n Gs,\#^Ww6T0h\7J
1761 16.068296 203.81.29.137 192.168.1.61 TCP http > 14023 [FIN, ACK] Seq=367918 Ack=3152 Win=17280 Len=051Testing软件测试网Km/{;Bn+] W q
1779 16.983042 192.168.1.61 203.81.29.137 TCP 14026 > http [FIN, ACK] Seq=1602 Ack=208150 Win=257760 Len=0
%U g ny~}01781 17.016836 203.81.29.137 192.168.1.61 TCP http > 14026 [FIN, ACK] Seq=208150 Ack=1603 Win=17280 Len=051Testing软件测试网]6@W(i8m[w5M7{
51Testing软件测试网d/Hp,J g#Sg Y

51Testing软件测试网 Dl$yf1P!~/K!m

51Testing软件测试网ko d s @?A r s

在这种情况下,数据包的数量非常大,连接也很多,由于没有cache功能,每次打开页面都需要重新下载所有的资源文件。51Testing软件测试网1?X([nO:['o~

v h s)l$}B#B\ x04.选择ADE51Testing软件测试网@E NY0@%C4P]Xx

,_5}~ Zo6Q}h)qD0结果:共获取数据包525个,建立连接3个,断开连接3个(不再标识了,syn即为连接请求,fin即为断开请求)51Testing软件测试网)F.I`}/y{

No.     Time        Source            Destination       Protocol Info51Testing软件测试网&BW,a[#D
1 0.000000 192.168.1.61 203.81.29.137 TCP 14189 > http [SYN] Seq=0 Len=0 MSS=1460 WS=251Testing软件测试网1w?5jH7bdHt?hZ
2 0.033657 203.81.29.137 192.168.1.61 TCP http > 14189 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=0
%oj?[,z(k#i-OT}_w06 0.100636 192.168.1.61 203.81.29.137 TCP 14190 > http [SYN] Seq=0 Len=0 MSS=1460 WS=251Testing软件测试网"fCce*DU u0xm
9 0.133703 203.81.29.137 192.168.1.61 TCP http > 14190 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=051Testing软件测试网5PG1ILUb?
429 3.383748 192.168.1.61 203.81.29.137 TCP 14190 > http [FIN, ACK] Seq=1852 Ack=150284 Win=257484 Len=0
'gV6X&Z;Um+XT(D7vG0431 3.418556 203.81.29.137 192.168.1.61 TCP http > 14190 [FIN, ACK] Seq=150284 Ack=1853 Win=16998 Len=051Testing软件测试网&MfCV!tV.W
471 4.352071 192.168.1.61 203.81.29.137 TCP 14189 > http [FIN, ACK] Seq=1504 Ack=235576 Win=257760 Len=0
M-Tj)^"JT0472 4.380312 192.168.1.61 203.81.29.137 TCP 14192 > http [SYN] Seq=0 Len=0 MSS=1460 WS=251Testing软件测试网T3u1bh%P!i/od"b4?
474 4.389778 203.81.29.137 192.168.1.61 TCP http > 14189 [FIN, ACK] Seq=235576 Ack=1505 Win=17280 Len=0
)`R`6K%E9y G;]#BL0476 4.413220 203.81.29.137 192.168.1.61 TCP http > 14192 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=051Testing软件测试网8{%W;i;q4ROm
522 5.078068 192.168.1.61 203.81.29.137 TCP 14192 > http [FIN, ACK] Seq=409 Ack=35882 Win=257760 Len=0
q]sw&j7w*\Om0524 5.115099 203.81.29.137 192.168.1.61 TCP http > 14192 [FIN, ACK] Seq=35882 Ack=410 Win=16872 Len=0
L"lQ$z]}j0
51Testing软件测试网4jAdt%E

51Testing软件测试网@jp3VV.bT

S{2XKXH"`;S0在这种情况下,cache发挥作用,数据包对比第三种情况大大减少,几乎等于打开一次首页的数据量(449个数据包),只有第一次打开页面需要完整下载页面(包括资源文件),后面的三次打开页面都只要下载HTML页面(不包括资源文件)。

\ `b\M051Testing软件测试网CT$v#s |"h

51Testing软件测试网IkFt0S:m ? O

51Testing软件测试网k-}Sj3N/V-q

5.选择ADEF

U;fxl.p cY5FOW+]051Testing软件测试网;q[$jls%`$` ]#nB

选择F之后我们看看结果:共获取数据包942个,建立连接4个,断开连接4个51Testing软件测试网9Ib Z2\5i

No.     Time        Source            Destination       Protocol Info51Testing软件测试网9xp7`S#yL\
1 0.000000 192.168.1.61 203.81.29.137 TCP 14292 > http [SYN] Seq=0 Len=0 MSS=1460 WS=251Testing软件测试网%} ~h v#p m6aGN
2 0.034524 203.81.29.137 192.168.1.61 TCP http > 14292 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=051Testing软件测试网'I8j,j4V-v6j"U
6 0.102314 192.168.1.61 203.81.29.137 TCP 14294 > http [SYN] Seq=0 Len=0 MSS=1460 WS=251Testing软件测试网,I k,O J Y(F h,p
9 0.139752 203.81.29.137 192.168.1.61 TCP http > 14294 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=051Testing软件测试网1ua0W u#oTq[
426 3.791111 192.168.1.61 203.81.29.137 TCP 14294 > http [FIN, ACK] Seq=1852 Ack=150284 Win=257484 Len=0
qE9m)s(\a7uqM0428 3.824970 203.81.29.137 192.168.1.61 TCP http > 14294 [FIN, ACK] Seq=150284 Ack=1853 Win=16998 Len=0
z/]'MwMgE&v0468 6.213276 192.168.1.61 203.81.29.137 TCP 14292 > http [FIN, ACK] Seq=1504 Ack=235576 Win=257760 Len=051Testing软件测试网vDkR,Tzj8Y-J
469 6.244052 192.168.1.61 203.81.29.137 TCP 14297 > http [SYN] Seq=0 Len=0 MSS=1460 WS=2
OI_TU^0471 6.249564 203.81.29.137 192.168.1.61 TCP http > 14292 [FIN, ACK] Seq=235576 Ack=1505 Win=17280 Len=0
kqxN ^7q!_0473 6.279647 203.81.29.137 192.168.1.61 TCP http > 14297 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=0
9CE3w&IU-YNY:x3@0479 6.374967 192.168.1.61 203.81.29.137 TCP 14298 > http [SYN] Seq=0 Len=0 MSS=1460 WS=251Testing软件测试网 o7B+F2pD"v
484 6.419597 203.81.29.137 192.168.1.61 TCP http > 14298 [SYN, ACK] Seq=0 Ack=1 Win=17280 Len=0 MSS=1440 WS=0
:AdA+e"j7B J&P0897 9.858493 192.168.1.61 203.81.29.137 TCP 14297 > http [FIN, ACK] Seq=1550 Ack=159770 Win=257484 Len=0
\iL-C3^0899 9.895188 203.81.29.137 192.168.1.61 TCP http > 14297 [FIN, ACK] Seq=159770 Ack=1551 Win=17280 Len=0
r2z;t.Xn%Y/|0939 12.840029 192.168.1.61 203.81.29.137 TCP 14298 > http [FIN, ACK] Seq=1806 Ack=226090 Win=257760 Len=051Testing软件测试网5J'`6Z4@hq"@;C
941 12.876120 203.81.29.137 192.168.1.61 TCP http > 14298 [FIN, ACK] Seq=226090 Ack=1807 Win=17076 Len=0
^ RhXH;n0

QV2ATa6`f2q8_N'X0在这种情况下,由于选择了F,在迭代的时候清除了cache,所以每次迭代都需要重新下载资源文件。数据包差不多等于第三种情况的一半,约等于打开两次首页的数据量(449×2个数据包)。

Zs.Q&WE5T0

x^6CIA]:pCr06.关于BC选项

.DY \ g6a&eU}sO051Testing软件测试网 ](IHC z-H,l

C的解释(Check for newer versions of stored pages every visit to the page

rsf$x)zR,P.M0

`%f([VK&S:X0C比较容易理解,类似IE设置中的每次检查,如果不设置C,LR对于已经cache的文件就不会重新向服务器请求,如果选择C,你就可以在数据包中发现很多304信息。

e?@!V@0

/llU!^6mE0B的解释(Cache URLs requiring content(HTMLs)

3yFGj6q4\c u R8u2v1E0

DPebFh5gB g0LR对于资源文件的cache并不会真正cache在内存中或者在磁盘上,这个选项表示:对于一些需要用到的关联,校验,页面解析内容真正cache在内存中,减少客户端的重复工作51Testing软件测试网*j7D A+xAvUU [

{f#Yz VF0当然如果你想把GIF也cache到内存中,你可以在Advanced中设置,选择Specify URL requiring content in addition to HTML pages,加入条目image/gif,并勾选。当Vuser运行的时候,你可以对比一下mmdrv.exe进程的内存消耗(内存占用会更多)。51Testing软件测试网t-Pvu2iLu

51Testing软件测试网-~1FJ@z3l~8P/x C6ha

四: 结论51Testing软件测试网.fiu~y2g

51Testing软件测试网b8P7G"B.?

通过上面的测试分析,我们大概知道了每个选项的真正含义,你需要根据你的测试目的来选择合适的设置:

0bRPp`E(\ ur051Testing软件测试网 L*Q T.A n)U*ys7|d-TJ

1、 对于一个具体的应用测试,对于前端Web Server不可忽略,缺省设置非常合适,不需要调整(有时候需要考虑把C选上)

A#?-P4Mp4Kn0

eF/]q(vf0注意:很多人在录制脚本的时候,习惯把登入操作放到vuser_init中,这时候缺省设置可能会抛错,建议把这类的操作都放入到action中

#y Zq;D.S&?#wf1[6t:DT0

W^ p5W-|/N+P02、 如果你更关注后端应用服务器的性能或者说做一些架构的验证分析,那你缺省设置对于你来说就不合适了,你需要选择取消所有的设置项。

+CwaSV:Ae0

/[MZI|*FOZ0当然你也可以根据自己的具体情况做不同调整,但是一定要真正理解这些选项的具体含义才能做到不犯错误51Testing软件测试网v8KuCR_

51Testing软件测试网y+N:K Mgx)k

转载自:http://www.cnitblog.com/stomic/archive/2009/03/24/55721.html

1d;zl:YVtx ]0

TAG: LoadRunner loadrunner

my blog 引用 删除 TEST_HUAN   /   2013-04-26 09:57:16
分析的好!你有前途

有钻研精神
职场菜鸟向前冲 引用 删除 yoyotree   /   2009-09-03 11:40:37
说实话 我很佩服你!
bug_no2的个人空间 引用 删除 bug_no2   /   2009-07-07 09:25:27
感觉没有说的很清楚,挺模糊的,没有说明各个选项会给测试带来的影响。连接与中断说明了什么呢?
 

评分:0

我来说两句

Open Toolbar