关于LR中的EXTRARES
LoadRunner脚本之EXTRARES参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
EXTRARES:分隔符,表示标记下一个属性是资源属性的列表(list of resource attributes)。 【EXTRARES后的资源是由script、active、java applet、flash、CSS产生的请求产生的】 and 下面来看看,在EXTRARES后面的资源属性是否可以注释掉...!Let's get the copy and learning started! 在坛子里看到有人在讨论Web请求中的EXTRARES后面的东西能不能不要,我看到一些人理所当然地认为可有可无,为什么呢?谁它的名字叫EXTRARES呢,事实上,性能测试是一门很严谨的技术,不可大意,在没有 100 %把握之前我们不应该下定论。 关于这一点,结论是EXTRARES部分不能删,删除了LR就不会去下载相关资源了,也就意味着一个请求的Response会变小,毫无疑问,响应时间就会变得快一些,吞吐量变得少一些,数据变得非常的不真实。 那么我是如何来设计这个实验模型得出这样的结论的呢?我们就以访问某个web页面来做这个实验,怎么做呢? 1 ) 录制访问本论坛首页的GET请求(web_url函数生成),代码如下: web_url( "bbs.51testing.com" , "URL=http://bbs.51testing.com/" , // 51 论坛摘抄 "TargetFrame=" , "Resource=0" , "RecContentType=text/html" , "Referer=" , "Snapshot=t2.inf" , "Mode=HTML" , EXTRARES, "Url=/images/default/menu_bg.gif" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, "Url=/images/default/frame_on.gif" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, "Url=/images/default/arrow_down.gif" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, "Url=/images/default/portalbox_bg.gif" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, "Url=/images/default/menu_itemline.gif" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, "Url=/images/default/forumlink.gif" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, "Url=/images/default/online.gif" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, "Url=/images/default/arrow_right.gif" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, "Url=/images/default/header_bg.gif" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, "Url=/images/default/cat_bg.gif" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, "Url=http://zs1.cnzz.com/stat.htm?id=1743488&r=&lg=zh-cn&ntime=0.35238800 1269021786&repeatip=6&rtime=1&cnzz_eid=80487640-1268962788-&showp=1280x800&st=357&sin=&res=0" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, "Url=/images/cn.swf" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, "Url=/images/fenl.swf" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, "Url=/images/zazhi.swf" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, "Url=/images/zhuanti.swf" , "Referer=http://bbs.51testing.com/default.php" , ENDITEM, LAST); 2 ) 在此函数后使用web_get_int_property函数来取得响应的大小: lr_output_message( "%d" , web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE)); 3 ) 运行,得到结果为: 1451146 (居然有 1 .4M,这论坛首页也太大了) 4 ) 将EXTRARES后面的属性全拿掉(注释即可),再次运行,得到结果为: 700095 (700K不到,差不多节省了一半的大小) 现在结论基本有了:不能删,那么为了再严谨一点,再并发 10 个用户运行一次看看其响应时间和吞吐量是否一致 5 ) 不备注EXTRARES,打开Controller并发 10 个用户运行 1 次,得出: 总吞吐量: 14511462 总请求数: 430 响应时间: 54 秒 6 ) 备注掉EXTRARES,打开Controller并发 10 个用户运行 1 次,得出: 总吞吐量: 7 , 000 , 941 总请求数: 280 响应时间: 26 秒 从总吞吐量,我们很容易看出这不能少,从总请求数,我们也看出来,刚好少 150 个请求,为什么是 150 呢,因为我们 10 个并发用户做一次,每一个Extrares后面跟了 15 个资源文件, 10 次当然是 150 个GET请求少掉咯。当然,这响应时间的差别也是同样的,非常夸张,令人吃惊。 大家也可以自己去做这样的实验来验证这个结论,东西不能乱删,包括默认录制出来的一些Cookie信息,也不能随便删除,除非你知道它们都在干嘛,你为什么需要/不需要它们。 这次项目测试关注的是login事务,即想要测试出客户端发出登录请求到服务器,服务器端再反馈回来给客户端的时间。所以,不用关注到登录到系统后,整个页面的加载情况,可以适当的注释掉不相干的脚本。 网友观点: A:能不能删除,关键得看你做这个测试的目的是什么,如果是看整个页面的响应时间,那肯定是不能删除的...(跟我差不多的思想) B:回楼上的,即使不对这个页面进行相关指标的测试,哪怕这个页面只是一个附加的页面,比如只是为了用来模拟真实用户场景,或者只是对页面里的某一部分内容进行一下关联,但是有与没有是会对吞吐量和请求数造成影响的,吞吐量则会间接地对响应时间造成影响哦(比如带宽不足的时候),另外从严谨性的角度来考虑,请求数多了,当然会对服务器造成多一些的压力,那么从这方面谈影响那就多了去了。(考虑得真TM严谨) |