在近期的某性能測(cè)試項(xiàng)目中,使用LR 11做測(cè)試,遇到了一個(gè)問題:在錄制的腳本中,許多請(qǐng)求都帶有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資源請(qǐng)求實(shí)際上是在上一個(gè)頁面請(qǐng)求時(shí)發(fā)起,并通過異步的方式返回的一些地圖數(shù)據(jù)。由于在錄制腳本的過程中,上一步操作未能等到這些數(shù)據(jù)全部返回便開始了下一步的操作,因此在隨后的腳本中,LR將這些請(qǐng)求作為
EXTRARES資源附在了這些請(qǐng)求之后。如此一來就造成了一個(gè)問題:這些請(qǐng)求的響應(yīng)時(shí)間變長,但對(duì)于真實(shí)的用戶而言,這些請(qǐng)求的響應(yīng)時(shí)間卻并沒有那么長(因?yàn)檫@些地圖數(shù)據(jù)在后臺(tái)加載,用戶感受不到)。表面上看來,似乎LR測(cè)試得到的結(jié)果與實(shí)際“不一致”了。而另一方面,這些資源請(qǐng)求又是真實(shí)存在的,對(duì)于服務(wù)器產(chǎn)生了壓力,所以也不能簡(jiǎn)單粗暴地直接在腳本中去掉。
最后,我們采取的辦法是:將這些地圖數(shù)據(jù)的加載單獨(dú)寫成一個(gè)web_url,使它對(duì)服務(wù)器產(chǎn)生真實(shí)的負(fù)載,并把它放在定義的事務(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);
同時(shí),將后續(xù)腳本中的
EXTRARES資源請(qǐng)求刪除。
這樣一來,就既模擬了服務(wù)器端真實(shí)的負(fù)載場(chǎng)景,又避免了客戶端實(shí)際響應(yīng)時(shí)間不一致的問題。