一:模拟浏览器基本介绍
在Loadrunner有一个浏览器模拟设置,可以使代码模拟浏览器的行为,更加贴近真实的用户操作,从而实现多用户真实的并发操作。这个选项在Run-time Settings》browser》browser emulation
0.User-Agent
此选项点【Change】
use browser:可以直接选择测试的浏览器类型,支持IE、firefox,当前是11版本主要支持3个,chrome暂不支持,可能最新的lr12支持吧。
use custom browser:自定义UA把需要的内容写到里面,更加灵活,可以支持chrome。
主要选项说明:
2.选项详细介绍
1.Simulate browser cache
Simulate browser cache
Instructs the Vuser to simulate a browser with a cache. By default, cache simulation is enable. If you disable this option, all Vuser emulate a browser with no cache avaiable.
模拟浏览器缓存 指Vuser模拟浏览器带缓存。 默认情况下,启用缓存模拟。如果禁用此选项,则所有Vuser使用浏览器不缓存功能。
浏览器缓存
浏览器的缓存就是--使用浏览器访问页面时,浏览器会将一些网页的文字,图片,保存到本地的一个文件内。然后,再次使用浏览器访问这个网页的时候,先前被保存(缓存)的文字和图片不会从新被下载,而是使用保存在本地的资源。 Browser Emulation就是用来设置脚本回放时,lr模拟浏览器缓存策略的 缓存的东西一般都放在C:\Documents and Settings\admin\Local Settings\Temporary Internet Files下。可以进去打开立面都是些什么--文档和图片,而且都是你曾经浏览过的界面中信息
2.Cache URLs requiring content (HTML) 选项
这个选项是指Vugen仅缓存网页的一些必要信息,这些信息可以是一些必须的验证信息、分析数据或者关联数据,当你勾选了这项后,这些信息自动被缓存(默认是启用)。
提示:为了减少虚拟用户的内存占用量,可以禁用该选项,除非它是一个明确规定的测试要求
Cache URLs Requiring Content – Advanced 选项
在高级设置里可以设置指定类型的信息存储到cache中
注意:这里的高级设置时同时针对所有的用户组,而不能对单独用户组进行设置。
修改指定类型信息步骤:
1. 勾选Specify URLs requiring content in addition to HTML page。
2. 点“+”号,添加指定类型信息,如text/plain, text/xml, image/jpeg, and image/gif。
3. 点“-”号,从缓存中去除指定类型信息。
Check for newer versions of stored pages every visit to the page 选项
这个选项是指浏览器会将存储在cache中的网页信息和最新浏览的页面进行比较,当你勾选此项时,vugen会增加"If-modified-since"到HTTP包头,在场景执行过程中这个选项可以显示最新的网页信息,但是也增加了更多的网络流量,通常配置这个选项是用来匹配浏览器设置来达到模拟浏览器的目的
Chang User-Agent:模拟各种浏览器
Download non-HTML resources:模拟本地Cache
Sinulate a new user on each iteration:模拟新用户进行本次迭代操作,只在Action中有作用。
3.Check for newer versions of stored pages every visit to the page
该设置将指示浏览器检查指定 URL 的较新(与存储在缓存中的 URL 相比)版本。启用该选项时,VuGen 将向 HTTP 标头中添加“If-modified-since”属性。此选项将打开页面的最新版本,但将在场景或会话执行期间生成更大的流量。默认情况下,浏览器不检查较新的资源,因此禁用该选项。配置该选项以匹配要模拟的浏览器中的设置。
在调查的过程中,逐渐了解了HTTP的If-Modified-Since的头标签的作用。
大家都知道客户端浏览器是有缓存的,里面存放之前访问过的一些网页文件。
例如IE,会把缓存文件存到“C:\Documents and Settings\zh2000g\Local Settings\Temporary Internet Files” 这样类似的目录里。
其实缓存里存储的不只是网页文件,还有服务器发过来的该文件的最后服务器修改时间。
If-Modified-Since是标准的HTTP请求头标签,在发送HTTP请求时,把浏览器端缓存页面的最后修改时间一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较。
如果时间一致,那么返回HTTP状态码304(不返回文件内容),客户端接到之后,就直接把本地缓存文件显示到浏览器中。
如果时间不一致,就返回HTTP状态码200和新的文件内容,客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示到浏览器中。
下面用一个简单的小例子说明一下。
由于演示例子需要截取HTTP Request和Response的信息,我在这里使用的工具是Fiddler。
1.首先在服务器创建一个简单的HTML文件,用浏览器访问一下,成功表示HTML页面。Fiddler就会产生下面的捕获信息。
需要留意的是
(1)因为是第一次访问该页面,客户端发请求时,请求头中没有If-Modified-Since标签。
(2)服务器返回的HTTP状态码是200,并发送页面的全部内容。
(3)服务器返回的HTTP头标签中有Last-Modified,告诉客户端页面的最后修改时间。
2.在浏览器中刷新一下页面,Fiddler就会产生下面的捕获信息。
需要注意的是
(1)客户端发HTTP请求时,使用If-Modified-Since标签,把上次服务器告诉它的文件最后修改时间返回到服务器端了。
(2)因为文件没有改动过,所以服务器返回的HTTP状态码是304,没有发送页面的内容。
3.用文本编辑器稍微改动一下页面文件,保存。再用浏览器访问一下,Fiddler就会产生下面的捕获信息。
需要留意的是
(1)客户端发HTTP请求时,使用If-Modified-Since标签,把上次服务器告诉它的文件最后修改时间返回到服务器端了。
(2)因为文件被改动过,两边时间不一致,所以服务器返回的HTTP状态码是200,并发送新页面的全部内容。
(3)服务器返回的HTTP头标签中有Last-Modified,告诉客户端页面的新的最后修改时间。
HTTP的If-Modified-Since头标签与客户端缓存相互配合,大大节约了网络流量。
4.Download non-HTML resources选项
该选项指示 Vuser 在回放期间访问网页时加载图形图像。其中包括同页面一起录制的图形图像,还包括未明确同页面一起录制的图形图像。当实际用户访问网页时,需要等待图像加载。因此,如果尝试测试整个系统(包括终端用户时间),请启用该选项(默认情况下启用)。要提高性能并且不模拟实际用户,请禁用该选项。
注意:如果在图像检查中遇到了差异,请禁用该选项,因为每次访问网页时,一些图像会随之改变(例如,广告横幅)。
5.Simulate a new user on each iteration选项
指示 VuGen 将各个迭代之间的所有 HTTP 上下文重置为 init 部分结束时相应的状态。使用该设置,Vuser 可以更准确地模拟开始浏览会话的新用户。它将删除所有 Cookie,关闭所有 TCP 连接(包括 Keep-Alive 连接),清除模拟浏览器的缓存,重置 HTML 帧层次结构(帧编号将从 1 开始)并清除用户名和密码。默认情况下启用该选项。
6.Clear cache on each iteration选项
每次迭代时清除浏览器缓存,以模拟第一次访问网页的用户。清除该复选框可以禁用此选项并允许 Vuser 使用浏览器缓存中存储的信息,模拟近期访问过该网页的用户。