丰肚翩翩 发表于 2010-3-23 09:54:24

关于模拟浏览器清缓存的疑问

lr运行设置中browser emulation中最底端clear cache on each iteration到底有多大作用?选不选他对服务器的压力有影响吗?

我脚本中录下来10个url请求,回放的时候也必然向服务器请求10次,对服务器的压力相当于固定了,清不清本地浏览器缓存应该没什么作用吧?

还有 reset all http contexts是什么意思? 有什么作用?

云层 发表于 2010-3-23 10:46:34

访问一个网站,第一次要下载所有的东西,后面访问会比较快因为图片等不动的东西会被缓存,不清本地缓存会降低服务器上的负载,从而得到比较真实的用户访问情况

丰肚翩翩 发表于 2010-3-23 14:26:15

还是不明白

如果用浏览器访问会是像楼上所说的那样,这个我也知道

问题是用loadrunner回放的时候应该“一视同仁”吧!因为执行的时候,脚本里所有申请图片的函数肯定会执行,也就是说所有图片申请请求都发给了服务器,与清不清缓存应该没关系吧??

望高手门解答

shanxi 发表于 2010-3-23 16:50:32

回复 3# 的帖子

理论上来讲,浏览器是会对第一次访问的内容依据服务器的设置按规则采取缓存策略

但LR是否真正模拟了浏览器的缓存机制呢?

云层 发表于 2010-3-23 17:27:34

回答是,LR确实会走缓存机制,缓存机制不是少发请求,而是请求返回的正文不收了

shanxi 发表于 2010-3-23 17:49:11

原帖由 云层 于 2010-3-23 17:27 发表 http://bbs.51testing.com/images/common/back.gif
回答是,LR确实会走缓存机制,缓存机制不是少发请求,而是请求返回的正文不收了

你这结论是否有一个比较科学的分析呢?给个相信的理由吧

虽然http://www.blogjava.net/tacy/archive/2007/11/06/158397.html从抓包角度得出如下结论
“在这种情况下,cache发挥作用,数据包对比第三种情况大大减少,几乎等于打开一次首页的数据量(449个数据包)”
没发现文章中所说的 “449个数据包”出自哪,不过从文中3. 选择DE(F) 的结果1782/4,看起来也差不多。

虽然如此,但作为proxy方式运行的LoadRunner毕竟没有hook浏览器,其时间的准确程度仍然令人怀疑。。。。

[ 本帖最后由 shanxi 于 2010-3-23 18:08 编辑 ]

jx9747 发表于 2010-3-23 19:54:48

最近使用的LR9.5,貌似不会有这样的情况

丰肚翩翩 发表于 2010-3-24 09:51:39

是不是这个意思?

“回答是,LR确实会走缓存机制,缓存机制不是少发请求,而是请求返回的正文不收了”

也就是说lr的图片请求发给服务器了,服务器也把图片通过网络传给lr了,只是lr不接收而已??? 那么服务器的压力相当于没有减小了?

浏览器的缓存机制也是这样的吗?

云层 发表于 2010-3-24 09:57:16

请求压力没怎么减少,但是带宽压力和io压力减少了很多

丰肚翩翩 发表于 2010-3-24 10:21:13


云层 发表于 2010-3-24 09:57
请求压力没怎么减少,但是带宽压力和io压力减少了很多

带宽和io压力怎么会减少呢?同样都是请求图片,同样都是返回图片

shanxi 发表于 2010-3-24 11:28:48

回复 10# 的帖子

第二次及以后应该是没有请求的

LoadRunner录制时会记录下所有的请求,第一次没有cache时会发出录制时记录的请求,而第二次及以后便不会再发送同resource有关的请求了。

丰肚翩翩 发表于 2010-3-24 11:36:55

11#的说法能证明吗?

我执行的时候看了日志,有没有缓存打出的日志是一样的,从哪能看出来没发送呢?

skyzhu 发表于 2010-3-24 11:37:58

同11#

楼主自己写2个一摸一样的图片请求放在一起(非迭代,只是脚本里重复或循环),然后打印LOG,看了就知道了
第1次一定是完整的图片内容,第2次正文就会是0字节

(默认的选择情况下,实际里面的选项还是比较复杂的)

[ 本帖最后由 skyzhu 于 2010-3-24 12:25 编辑 ]

shanxi 发表于 2010-3-24 11:42:29

回复 12# 的帖子

你没看到 http://www.blogjava.net/tacy/archive/2007/11/06/158397.html
“4. 选择ADE”的结果吗?

即使这样,LoadRunner的结果仍然不准确,:)

[ 本帖最后由 shanxi 于 2010-3-24 11:47 编辑 ]

jaunty 发表于 2010-3-24 13:34:21

如果不清缓存,那么本机就会有缓存。那么第二次再打开该页面的时候,客户端还会根据逻辑继续发出请求,但是服务端会判断是否有缓存,如果有缓存的话就不会重新返回资源给它会直接读取本机缓存。否则才会响应一个资源给客户端。如果你模拟的都是不同的新用户的话,建议每次都清缓存。

用百度百科查询一下 cookies 和 cache 学习一下cache的基础知识。

丰肚翩翩 发表于 2010-3-24 14:40:55

明白了 谢谢各位

原来loadrunner的缓存机制与浏览器在临时目录缓存的文件没关系!!!

JonnyGu 发表于 2010-3-24 14:53:20

回复 15# 的帖子

对头,不过实际上我们做的时候一般是不清除缓存的,因为这样得到的结果会更好,客户会更满意:lol
页: [1]
查看完整版本: 关于模拟浏览器清缓存的疑问