深入理解Loadrunner中的Browser Emulation
一:基本介绍 在Loadrunner的使用中,对于Run-time Settings下的browser emulation设置是比较容易让人产生困惑的地方。下面我们结合sniffer来具体看看每个选项的用途,以及对测试的影响。
Browser Emulation 图
二:案例和工具 1. 测试案例: 打开网站首页两次,对比不同Browser Emulation设置下loadrunner的行为,脚本如下。 Action()
{
web_url("www.primeton.com",
"URL=http://www.primeton.com/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
web_url("www.primeton.com",
"URL=http://www.primeton.com/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
return 0;
}
2. sniffer工具 开源工具:Wireshark(前身是ethereal)(www.wireshark.org) 三:测试过程 为了方便描述,我们约定用: A代表Simulate browser cache B代表Cache URLs requiring content(HTMLs) C代表Check for newer versions of stored pages every visit to the page D代表Download non-HTML resources E代表Simulate a new user on each iteratioin F代表Clear cache on each iteration 首先设置Run Logic中的iteration为2。让Action运行两次,看看循环运行脚本两次,数据包和连接数的变化。 1. 去掉所有选项 结果:共获取数据包95个,建立连接1个(红色标识),断开连接1个(蓝色标识)
在这种情况下,数据包非常少(没有选择下载资源文件入css,js,gif等),而且你可以看到,打开4次首页,只建立了一个tcp连接。 这时,你即使选择A,发现数据包的数量量页没有变化,因为cache主要还是针对资源文件 2. 选择E(F) 结果:共获取数据包102个,建立连接2个(红色标识),断开连接2个(蓝色标识) 在这种情况下,数据包非常少(没有选择下载资源文件入css,js,gif等),对比第一种情况,你会发现它建立了两个连接,这就是E的作用,它对于每次迭代都当成一个新的用户,需要重新建立连接。 3. 选择DE(F) 结果:共获取数据包1782个,建立连接6个(红色标识),断开连接6个(蓝色标识)
在这种情况下,数据包的数量非常大,连接也很多,由于没有cache功能,每次打开页面都需要重新下载所有的资源文件。 4. 选择ADE 结果:共获取数据包525个,建立连接3个,断开连接3个(不再标识了,syn即为连接请求,fin即为断开请求)
在这种情况下,cache发挥作用,数据包对比第三种情况大大减少,几乎等于打开一次首页的数据量(449个数据包),只有第一次打开页面需要完整下载页面(包括资源文件),后面的三次打开页面都只要下载HTML页面(不包括资源文件)。
5. 选择ADEF 选择F之后我们看看结果:共获取数据包942个,建立连接4个,断开连接4个
在这种情况下,由于选择了F,在迭代的时候清除了cache,所以每次迭代都需要重新下载资源文件。数据包差不多等于第三种情况的一半,约等于打开两次首页的数据量(449×2个数据包)。 6. 关于BC选项 C的解释(Check for newer versions of stored pages every visit to the page) C比较容易理解,类似IE设置中的每次检查,如果不设置C,LR对于已经cache的文件就不会重新向服务器请求,如果选择C,你就可以在数据包中发现很多304信息。 B的解释(Cache URLs requiring content(HTMLs)) LR对于资源文件的cache并不会真正cache在内存中或者在磁盘上,这个选项表示:对于一些需要用到的关联,校验,页面解析内容真正cache在内存中,减少客户端的重复工作。 当然如果你想把GIF也cache到内存中,你可以在Advanced中设置,选择Specify URL requiring content in addition to HTML pages,加入条目image/gif,并勾选。当Vuser运行的时候,你可以对比一下mmdrv.exe进程的内存消耗(内存占用会更多)。 四: 结论 通过上面的测试分析,我们大概知道了每个选项的真正含义,你需要根据你的测试目的来选择合适的设置: 1、 对于一个具体的应用测试,对于前端Web Server不可忽略,缺省设置非常合适,不需要调整(有时候需要考虑把C选上) 注意:很多人在录制脚本的时候,习惯把登入操作放到vuser_init中,这时候缺省设置可能会抛错,建议把这类的操作都放入到action中 2、 如果你更关注后端应用服务器的性能或者说做一些架构的验证分析,那你缺省设置对于你来说就不合适了,你需要选择取消所有的设置项。 当然你也可以根据自己的具体情况做不同调整,但是一定要真正理解这些选项的具体含义才能做到不犯错误 (jamesxiang) |
- 相

浙公网安备 33010602011771号