在Web(HTTP/HTML)錄制中,有2種重要的錄制模式。用戶該選擇那種錄制模式呢?
HTML-mode錄制是缺省也是推薦的錄制模式。它錄制當(dāng)前網(wǎng)頁中的HTML動作。
在錄制會話過程中不會錄制所有的資源。在回放時,HTML-mode腳本積極地解析返回的信息來獲得要下載的資源。
HTML-mode是亦稱上下文敏感方式因為它只能在先前請求的結(jié)果的上下文之內(nèi)執(zhí)行。由于許多的HTTP 請求數(shù)據(jù)都是從內(nèi)存中取出來的,所以語句必須在正確的前個請求之后執(zhí)行。
HTML-mode錄制的優(yōu)點是:
1.資源從內(nèi)存中取出且在回放時下載。因此,腳本比其他的錄制方式更小且更容易閱讀。
2.由于只有較少的硬編碼腳本,因此只有較少的動態(tài)數(shù)值需要關(guān)聯(lián)。
3.可以插入圖片檢查之類的語句以檢查結(jié)果是否正確。
4.因為HTML模式回放時需要積極地解析返回的信息,因此它可能會比其他錄制模式更加占用資源。然而,HTML模式record/replay有相當(dāng)大的改善,使得差異最小化且微不足道。
URL-mode選項指導(dǎo)VuGen錄制來自server的所有的請求和資源。它自動錄制每一個HTTP資源為URL的步驟。這種錄制模式甚至抓取非HTML應(yīng)用程序,例如applets和非瀏覽器的應(yīng)用程序。推薦使用這種錄制方式錄制以下情況:
1。錄制非browser的應(yīng)用程序
2。取得在下載或不下載哪些資源上更好的控制,既然你可以在腳本中修改。
3。當(dāng)使用LR6.x時,錄制使用applet和/或javascript的瀏覽器應(yīng)用程序
由于URL-模式錄制了所有的請求和資源,需要做更多的關(guān)聯(lián)。腳本看起來也會相當(dāng)?shù)拈L。
-------------------------------------
我發(fā)現(xiàn)用這兩種模式錄制Mercury的網(wǎng)頁(
http://www.mercury.com/),結(jié)果卻有很大差別,HTML-based的response time是7.4秒左右,而URL-based的卻達到22秒左右。根據(jù)MI上面的解釋,估計是由于HTML-based模式的資源占用,從內(nèi)存中讀數(shù)據(jù)引起的。
在使用LoadRunner進行WEB腳本錄制的時候,很多人不清楚URL-based 方式和 HTML-based方式的差別,以及何種情況下使用何種錄制方式,這里給出一個簡單的判斷方法。
HTML-based 方式
HTML-based 方式對每個頁面錄制形成一條語句,對LoadRunner來說,在該模式下,訪問一個頁面,首先會與服務(wù)器之間建立一個連接獲取頁面的內(nèi)容,然后從頁面中分解得到其他的元素(component),然后建立幾個連接分別獲取相應(yīng)的元素。
URL-based 方式
URL-based 方式將每條客戶端發(fā)出的請求錄制成一條語句,對LoadRunner來說,在該模式下,一條語句只建立一個到服務(wù)器的連接,LoadRunner提供了web_concurrent_start和web_concurrent_end函數(shù)模擬HTML-based的工作方式。
如何決定選擇何種錄制方式?
1、如果應(yīng)用是WEB應(yīng)用,首選是HTML-based方式;
2、如果應(yīng)用是使用HTTP協(xié)議的非WEB應(yīng)用,首選是URL-based方式;
3、如果WEB應(yīng)用中使用了java applet程序,且applet程序與服務(wù)器之間存在通訊,選用URL-based方式;
4、如果WEB應(yīng)用中使用的javascript、vbscript腳本與服務(wù)器之間存在通訊(調(diào)用了服務(wù)端組件),選用URL-based方式。