LR 兩種錄製:html與url
一直在使用LR,對於Html_based script和Url-based script 兩種錄製方式之間,要如何選擇,仍是一知半解。最近測試時遇到同樣的業務功能,兩種錄製方式的指令碼,單次執行時間差別很大。html的20多秒,而URL的是3秒。疑問?
Web(HTTP/HTML)協議
錄製的是HTTP互動和伺服器響應。
Web(HTTP/HTML)可以使用兩種方式錄製:HTML-based和URL-based。
Web(HTTP/HTML)不直接支援JavaScript,而是把它作為頁面資源儲存。
Web(Click and Script)協議
對於大部分應用程式,包括那些包含JavaScript的程式,可以使用Web(Click and Script)虛擬使用者。對於PeopleSoft Enterprise和Oracle Web Application 11i虛擬使用者,也推薦使用這種錄製方式,有興趣可以嘗試一下。
對於那些使用applets和vbscript的瀏覽器應用 程式或非瀏覽器程式,推薦使用Web(HTTP/HTML)虛擬使用者。
Html_based script
是lr的預設模式,也就是通常說的高層次模式,一般優先選擇這種模式這種模式錄製的指令碼相對簡短,便於閱讀。它把類屬一個頁面的請求放在一個web_url中。為每個使用者請求生成單獨的函式。
HTML-based 方式對每個頁面錄製形成一條語句,對LoadRunner來說,在該模式下,訪問一個頁面,首先會與伺服器之間建立一個連接獲取頁面的內容,然後從頁面中分解得到其他的元素(component),然後建立幾個連線分別獲取相應的元素。
Url-based script
即通常所說的低層次錄製模式,這種模式錄製的指令碼相對長,不利於閱讀,但指令碼更直觀,它把客戶端向伺服器端傳送的每一個請求都放在一個單獨的web_url中,即一個請求對應一個web_url,頁面和圖片分別生成對應的web_url,相對Html_based script模式把類屬一個頁面的請求放在一個web_url中的方式,Url-based script模式的指令碼更直觀。可以捕獲所有作為使用者操作的結果傳送到伺服器的HTTP請求,然後一一記錄下來。可以捕獲非HTML應用程式,例如小程式和非瀏覽器應用程式。
URL-based 方式將每條客戶端發出的請求錄製成一條語句,對LoadRunner來說,在該模式下,一條語句只建立一個到伺服器的連線,LoadRunner提供了web_concurrent_start和web_concurrent_end函式模擬的工作方式。
如何從指令碼辨別使用哪種模式錄製?
可以從指令碼web_url中“mode”的值區分,Html_based script模式下mode的值為“html”,Url-based script模式下mode的值為“http”。從錄製時可看出,web_submit_form、web_link一定是HTML模式,web_custom_request一定是URL模式。
web_url,web_submit_data函式兩種方式都可能,此時只能通過mode的值來判斷。
The Recording Level or Mode for Web scripts. The possible values are: HTML level: Instructs VuGen to record HTML actions intuitively, in the context of the current Web page. The actions are recorded as URL steps (web_url), link steps (web_link), image steps (web_image), and form submission steps (web_submit_form). VuGen records only the HTTP requests that return HTML pages, but not scripts or applications. HTTP level: Instructs VuGen to record all requests from the server as URL steps (web_url statements). It does not generate the web_link, web_image, or web_submit_form functions. This method is more scalable, but less intuitive when reading a generated script. In older versions, the HTTP level is called NORESOURCE.
html錄製可選擇項:
兩種指令碼型別:
1、預設的項,選擇描述使用者行為的指令碼。
web_link是提供一個連線,提供了連線的名稱和需要單擊的超連結名稱,點選就進去,如果連結地址不存在,會出錯。模擬使用者單擊超連結的操作。如果出錯了可以選擇web_url方式。
2、僅包含明確的URL指令碼。
web_url方式不考慮使用者做了什麼,只在於客戶端傳送了什麼請求,只在於系統做了什麼請求。web_url裡邊是需要訪問的超連結地址。
URL錄製時可選擇項:
兩種錄製方式優點對比:
(一)HTML 錄製
優點:減少了捕獲動態值的需要。
(1)資源從記憶體中取出且在回放時下載。因此,指令碼比其他的錄製方式更小且更容易閱讀。
(2)由於只有較少的硬編碼指令碼,因此只有較少的動態數值需要關聯。
(3)可以插入圖片檢查之類的語句以檢查結果是否正確。
(4)因為HTML模式回放時需要積極地解析返回的資訊,因此它可能會比其他錄製模式更加佔用資源。然而,HTML模式record/replay有相當大的改善,使得差異最小化且微不足道。
(5)HMTL錄製級別會為每一個HTML使用者動作產生一個單獨的步驟。而且HTML方式產生的指令碼非常簡潔和直述,易於閱讀。
(二)URL 錄製
優點:指令碼具有靈活性和可量測性。
(1)腳本回放過程中,不再搜尋記憶體和Cache。
(2)指令碼更具可擴充套件性。支援頁面上的Java Applets和ActiveX物件。
(3)URL錄製級別把對伺服器每個物件的請求,都錄製成一個單獨的請求。對業務過程有更好的控制。
如何選擇兩種模式?
1、基於瀏覽器的應用程式推薦使用HTML-Based Script。
2、不是基於瀏覽器的應用程式推薦使用URL-Based Script。
3、如果基於瀏覽器的應用程式中包含了Java Script,applet、vbscript指令碼與等並且該指令碼向伺服器產生了請求,比如DataGrid的分頁按鈕等,也要使用URL-Based Script方式錄製。
4、基於瀏覽器的應用程式中使用了HTTPS安全協議,使用URL-Based Script方式錄製。
5、錄製過程中不要使用瀏覽器的“後退”功能,LoadRunner對其支援不太好。
指令碼錄製過程中,可以根據需要在HTML級別和URL級別之間靈活地切換,以獲得最佳的效果。