LoadRunner腳本之EXTRARES參數

本文爲轉載自用

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嚴謹)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章