qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          LoadRunner的HTML與URL錄制方式

          LoadRunner的HTML與URL錄制方式
          2010年02月26日 星期五 15:46

          在跟使用Loadrunner工具使用者交流的過程中,經常有人提到這個問題,基于HTML(HyperText Markup Language 超文本置標語言)模式錄制與基于URL(Uniform Resource Locator的縮寫,統一資源定位符,也被稱為網頁地址,是因特網上標準的資源的地址。)錄制模式到底有什么不同?為什么通常情況下我們都會去選擇使用URL模式去錄制我們的業務腳本?所以在這里我把我知道的東西寫出來跟同行分享和交流:

          HTML是一種高級別的錄制模式,這種模式是基于“瀏覽器”或者說是“內容敏感”的。這種錄制選項是讓瀏覽器去決定在回放下載HTML資源,哪些頁面資源(比如圖片或者Flash內容)是需要被下載。

          URL是一種低級別的錄制模式,這種錄制選項不允許瀏覽器去確定哪些頁面資源(比如圖片或者Flash內容)是需要下載的。每項資源在錄制回話的過程中都被錄制到腳本中。這種級別錄制模式同時也會錄制其他任何隱藏的對象,比如session ID(也就是會話ID)信息,包括發給服務端和從服務端收到的session ID信息。

          腳本方面的不同,HTML級別錄制模式將生成的是web_submit_form語句來提交終端用戶可以看見或者修改的信息。當基于HTML模式在提交窗體時遇到錯誤,你可以選擇URL模式去錄制任何從服務端發送過來的請求和資源。而URL基本錄制模式將生成的是web_submit_data語句,這些語句記錄的是所有通過瀏覽器實際發送給服務端的信息。值得注意的是URL錄制模式會錄制那些HTML模式沒有能錄制到隱藏信息。通常情況下,隱藏信息里面會包含session ID信息。

          寫到這里,熟悉的人可能應該明白為什么在通常的情況下,我們選擇URL模式去錄制我們基于Web(HTTP/HTML)協議的腳本,概括的說就是現在的應用(或者說將來的應用)為了安全性,都會包含像session ID、token等動態信息。簡單的說就是每一訪問,服務端都會給客戶端發送一個描述會話的session信息,而session ID使用的是動態的生成技術。如果要是腳本能夠正?;胤牛ǔP枰堰@個動態的信息保存下來,這個需要使用到correlation 技術(也就是關聯技術)。在以后我會在我的博客里面繼續寫我對關聯的理解(包括自動關聯、手工關聯、規則等實用技術)。

          在Web(HTTP/HTML)錄制中,有2種重要的錄制模式。用戶該選擇那種錄制模式呢?
          HTML-mode錄制是缺省也是推薦的錄制模式。它錄制當前網頁中的HTML動作。
          在錄制會話過程中不會錄制所有的資源。在回放時,HTML-mode腳本積極地解析返回的信息來獲得要下載的資源。
          HTML-mode是亦稱上下文敏感方式因為它只能在先前請求的結果的上下文之內執行。由于許多的HTTP 請求數據都是從內存中取出來的,所以語句必須在正確的前個請求之后執行。
          HTML-mode錄制的優點是:
          1.資源從內存中取出且在回放時下載。因此,腳本比其他的錄制方式更小且更容易閱讀。
          2.由于只有較少的硬編碼腳本,因此只有較少的動態數值需要關聯。
          3.可以插入圖片檢查之類的語句以檢查結果是否正確。
          4.因為HTML模式回放時需要積極地解析返回的信息,因此它可能會比其他錄制模式更加占用資源。然而,HTML模式record/replay有相當大的改善,使得差異最小化且微不足道。 

          URL-mode選項指導VuGen錄制來自server的所有的請求和資源。它自動錄制每一個HTTP資源為URL的步驟。這種錄制模式甚至抓取非HTML應用程序,例如applets和非瀏覽器的應用程序。推薦使用這種錄制方式錄制以下情況:
          1。錄制非browser的應用程序
          2。取得在下載或不下載哪些資源上更好的控制,既然你可以在腳本中修改。
          3。當使用LR6.x時,錄制使用applet和/或javascript的瀏覽器應用程序
          由于URL-模式錄制了所有的請求和資源,需要做更多的關聯。腳本看起來也會相當的長。
          -------------------------------------

          我發現用這兩種模式錄制Mercury的網頁(http://www.mercury.com/),結果卻有很大差別,HTML-based的response time是7.4秒左右,而URL-based的卻達到22秒左右。根據MI上面的解釋,估計是由于HTML-based模式的資源占用,從內存中讀數據引起的。 



          在使用LoadRunner進行WEB腳本錄制的時候,很多人不清楚URL-based 方式和 HTML-based方式的差別,以及何種情況下使用何種錄制方式,這里給出一個簡單的判斷方法。
          HTML-based 方式
          HTML-based 方式對每個頁面錄制形成一條語句,對LoadRunner來說,在該模式下,訪問一個頁面,首先會與服務器之間建立一個連接獲取頁面的內容,然后從頁面中分解得到其他的元素(component),然后建立幾個連接分別獲取相應的元素。
          URL-based 方式
          URL-based 方式將每條客戶端發出的請求錄制成一條語句,對LoadRunner來說,在該模式下,一條語句只建立一個到服務器的連接,LoadRunner提供了web_concurrent_start和web_concurrent_end函數模擬HTML-based的工作方式。
          如何決定選擇何種錄制方式?
          1、如果應用是WEB應用,首選是HTML-based方式;
          2、如果應用是使用HTTP協議的非WEB應用,首選是URL-based方式;
          3、如果WEB應用中使用了java applet程序,且applet程序與服務器之間存在通訊,選用URL-based方式;
          4、如果WEB應用中使用的javascript、vbscript腳本與服務器之間存在通訊(調用了服務端組件),選用URL-based方式。

          posted on 2012-05-15 12:02 順其自然EVO 閱讀(2120) 評論(0)  編輯  收藏 所屬分類: loadrunner

          <2012年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 吉林省| 商洛市| 临沭县| 临洮县| 和田市| 肥城市| 探索| 通江县| 微山县| 韶关市| 奇台县| 麻阳| 抚宁县| 汉沽区| 霸州市| 出国| 吐鲁番市| 凤山市| 循化| 崇信县| 兴宁市| 衡东县| 高碑店市| 津南区| 洪江市| 永济市| 昌宁县| 牡丹江市| 香港 | 尉犁县| 丹阳市| 司法| 将乐县| 丰顺县| 汉沽区| 南漳县| 类乌齐县| 阿克陶县| 汪清县| 依兰县| 常山县|