在近期的某性能測試項目中,使用LR 11做測試,遇到了一個問題:在錄制的腳本中,許多請求都帶有EXTRARES,如:
web_submit_data("clientlog.jspx_23",
"Action=https://gaa-ad.pp2.shanghaionstar.com:8101/Advisor/faces/xAdvisorWeb/bundles/gaacommon/jsf/clientlog.jspx?message=Alerts%20refresh%20completed&clientTime=1466056941075",
"Method=POST",
"RecContentType=text/html",
"Referer=https://gaa-ad.pp2.shanghaionstar.com:8101/Advisor/xAdvisorWeb/desktop/desktop.jsp",
"Snapshot=t57.inf",
"Mode=HTML",
ITEMDATA,
EXTRARES,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=854&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=854&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=854&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=854&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=855&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=855&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=855&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=855&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=856&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=856&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=856&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=856&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=857&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=857&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=857&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=857&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=858&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=858&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=858&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=858&z=11", "Referer=", ENDITEM,
LAST);
這些
EXTRARES資源請求實際上是在上一個頁面請求時發(fā)起,并通過異步的方式返回的一些地圖數(shù)據(jù)。由于在錄制腳本的過程中,上一步操作未能等到這些數(shù)據(jù)全部返回便開始了下一步的操作,因此在隨后的腳本中,LR將這些請求作為
EXTRARES資源附在了這些請求之后。如此一來就造成了一個問題:這些請求的響應(yīng)時間變長,但對于真實的用戶而言,這些請求的響應(yīng)時間卻并沒有那么長(因為這些地圖數(shù)據(jù)在后臺加載,用戶感受不到)。表面上看來,似乎LR測試得到的結(jié)果與實際“不一致”了。而另一方面,這些資源請求又是真實存在的,對于服務(wù)器產(chǎn)生了壓力,所以也不能簡單粗暴地直接在腳本中去掉。
最后,我們采取的辦法是:將這些地圖數(shù)據(jù)的加載單獨寫成一個web_url,使它對服務(wù)器產(chǎn)生真實的負載,并把它放在定義的事務(wù)之外。腳本如下:
web_url("map",
"URL=http://10.16.93.182:22002/maptile/maptile?x=1711&y=854&z=11",
EXTRARES,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1711&y=854&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=854&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=854&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=854&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=854&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1711&y=855&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=855&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=855&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=855&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=855&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1711&y=856&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=856&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=856&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=856&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=856&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1711&y=857&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=857&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=857&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=857&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=857&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1711&y=858&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=858&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=858&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=858&z=11", "Referer=", ENDITEM,
"Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=858&z=11", "Referer=", ENDITEM,
LAST);
同時,將后續(xù)腳本中的
EXTRARES資源請求刪除。
這樣一來,就既模擬了服務(wù)器端真實的負載場景,又避免了客戶端實際響應(yīng)時間不一致的問題。