<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

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

    LR 細節解析,為什么LR腳本會去訪問“腳本中不存在的“資源?

      結論

      到這里結論其實也就出來了。(結論只針對HTML-Based Mode錄制方式)

      HTML頁面中的資源,如頁面里寫的<img>(跟是不是在表格中無關...),是不會顯示在腳本中的。

      而外部鏈接中的資源,如<link type="text/css>連接的CSS文件中使用的圖片,是會通過EXTRARES屬性顯示在腳本中的。

      運行上面這個腳本,Replay Log中會顯示:

    Action3.c(8): Downloading resource http://search.thunisoft.com/skins/default/images/bg_top.gif (specified by argument number 9)     [MsgId: MMSG-26577] 
    Action3.c(8): Downloading resource http://search.thunisoft.com/skins/default/images/nav_bg.gif (specified by argument number 11)     [MsgId: MMSG-26577]
    Action3.c(8): Downloading resource http://search.thunisoft.com/skins/default/images/nav_right.jpg (specified by argument number 13)     [MsgId: MMSG-26577]
    Action3.c(8): Downloading resource http://search.thunisoft.com/skins/default/images/search_m.gif (specified by argument number 15)     [MsgId: MMSG-26577]
    Action3.c(8): Downloading resource http://search.thunisoft.com/skins/default/images/button02.gif (specified by argument number 17)     [MsgId: MMSG-26577]
    Action3.c(8): Downloading resource http://search.thunisoft.com/skins/default/images/nav_r.gif (specified by argument number 19)     [MsgId: MMSG-26577]
    Action3.c(8): Downloading resource http://search.thunisoft.com/skins/default/images/button01.gif (specified by argument number 21)     [MsgId: MMSG-26577]
    Action3.c(8): Downloading resource http://search.thunisoft.com/skins/default/images/nav_l.gif (specified by argument number 23)     [MsgId: MMSG-26577]
    Action3.c(8): Downloading resource http://search.thunisoft.com/skins/default/images/search_l.gif (specified by argument number 25)     [MsgId: MMSG-26577]
    Action3.c(8): Downloading resource http://search.thunisoft.com/skins/default/images/search_r.gif (specified by argument number 27)     [MsgId: MMSG-26577]

      細心的人可以發現,這個日志和第一步實驗中的不一樣呢。再次對比上面寫出的兩種Replay Log,可以發現一個是"Found resource ... in HTML ...",一個是"Downloading resource ..."(標記藍色兩處)

      這樣也可以解釋了。

      HTML文件內部的資源,不需要顯示在腳本中就可以下載,因為會在訪問這個頁面時“發現”。

      而外部鏈接的資源,必須在腳本中顯式寫出,才會去“下載”。

      所以EXTRARES屬性下面的資源,只要注釋掉相應的腳本,就可以避免該請求。

      而HTML頁面文件中的資源,則只能通過修改MODE="HTTP"屬性,或者改為URL-Based Mode錄制方式,才能避免請求。

      說到這,基本都清楚了,最后再翻一下官方文檔(Function Reference)吧。

    web_url

    EXTRARES:
    A demarcation parameter indicating that the next parameter will be a list of resource attributes.

    List of Resource Attributes:
    A list of resources generated by non–HTML mechanisms in the Web page. These include the resources requested by Javascript, ActiveX, Java applets and Flash. VuGen's Recording Options allow these elements either to be recorded within the current script step (the default mode) or recorded as separate steps (see "Recording in HTML–Based Mode" in the VuGen Online Book).

      再次驗證了我們的結論,EXTRARES中只顯示非HTML文件中的資源。

      問題描述

      同事遇到的一個問題,LR執行性能測試腳本時,總報出錯誤,無法訪問一個圖片的地址,但腳本中明明沒有對該資源的請求。

    Action4.c(12): Warning -27796: Failed to connect to server "10.11.204.35:80": [10060] Connection timed out      [MsgId: MWAR-27796]Action4.c(12): Warning -26000: Empty or no response for URL=http://10.11.204.35/iwebfiles/yqlj/26/107/10/4/361.gif      [MsgId: MWAR-26000]

      我查了一下,確實腳本中看不出問題,所有不相干的請求都刪掉了,頁面的請求中EXTRARES屬性中的資源列表也都刪掉了,只保留了主頁面的請求。但只要一執行,就會去訪問那個無法連接的資源。

      分析與實驗

      查看了該頁面的源文件,確實可以看到那個有問題的圖片鏈接,是寫在一個表格里的。于是很自然的猜測,是不是表格中的資源,錄制不到腳本中、但是又訪問了呢?

      這種問題,其實確信只要把錄制方式轉換為URL-Based Mode就肯定能解決,因為可以顯式的錄下所有請求。但還是想把HTML-Based Mode下的問題解決,于是做了一些測試。

      模擬那個問題頁面,創建測試用頁面。特意寫了兩個圖片資源做對比,一個普通的圖片,一個是放置在表格中的圖片超鏈接,測試訪問這個頁面錄制的腳本。

    <html> 
        <head>
            <meta http-equiv="content-type" content="text/html;charset=gb2312">
            <title>測試頁面</title>
        </head>
     
        <body>
            <p>
            普通的圖片
            <img src=http://172.16.1.3/bbs/attachments/month_1110/20111008_3f1828e9b28294cb7f23Wu3TykOUV9RM.jpg width="126" height="45" border="0"/>
            </p>
            <p>
                <table border=2>
                <tr>
                    <td>
                    表格中的圖片跳轉鏈接
                    </td>
                </tr>
                <tr> 
                    <td>
                    <a href=http://172.16.1.3/bbs/viewthread.php?tid=44597&extra=page%3D1###zoom target="_blank"><img src=http://172.16.1.3/bbs/attachments/month_1110/20111008_67cebe2ca85b66fe580cGUGESOM05AWo.jpg width="126" height="45" border="0"/></a>
                    </td>
              </tr>
                </table>
            </p>
        </body>
    </html>

      創建如上的HTML,放到TOMCAT的ROOT目錄中,則可以通過tomcat訪問該頁面。

      測試:

      1、默認的HTML-Based Mode方式進行錄制,只錄到一個請求。

    web_url("test_mode.html", 
            "URL=http://172.16.6.17:8080/test_mode.html",
            "Resource=0",
            "RecContentType=text/html",
            "Referer=",
            "Snapshot=t12.inf",
            "Mode=HTML",
            LAST);

      腳本中看不到對資源的請求,但實際運行時,還是會去獲取兩個圖片資源。通過Replay Log可以看到請求的證據:

    Action_HTML.c(7):Found resourcehttp://172.16.1.3/bbs/attachments/month_1110/20111008_3f1828e9b28294cb7f23Wu3TykOUV9RM.jpg in HTML http://172.16.6.17:8080/test_mode.html     [MsgId: MMSG-26659]
    Action_HTML.c(7): Found resource http://172.16.1.3/bbs/attachments/month_1110/20111008_67cebe2ca85b66fe580cGUGESOM05AWo.jpg in HTML http://172.16.6.17:8080/test_mode.html     [MsgId: MMSG-26659]

     2、URL-Based Mode錄制方式,可以錄制到所有的請求,包括一個頁面請求,兩個圖片請求。

    web_url("test_mode.html",  
            "URL=http://172.16.6.17:8080/test_mode.html", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=", 
            "Snapshot=t13.inf", 
            "Mode=HTTP", 
            LAST);

        web_concurrent_start(NULL);

        web_url("20111008_3f1828e9b28294cb7f23Wu3TykOUV9RM.jpg", 
            "URL=http://172.16.1.3/bbs/attachments/month_1110/20111008_3f1828e9b28294cb7f23Wu3TykOUV9RM.jpg", 
            "Resource=1", 
            "RecContentType=image/jpeg", 
            "Referer=http://172.16.6.17:8080/test_mode.html", 
            "Snapshot=t14.inf", 
            LAST);

        web_url("20111008_67cebe2ca85b66fe580cGUGESOM05AWo.jpg", 
            "URL=http://172.16.1.3/bbs/attachments/month_1110/20111008_67cebe2ca85b66fe580cGUGESOM05AWo.jpg", 
            "Resource=1", 
            "RecContentType=image/jpeg", 
            "Referer=http://172.16.6.17:8080/test_mode.html", 
            "Snapshot=t15.inf", 
            LAST);

        web_concurrent_end(NULL);

      對比兩種錄制方式可以發現,對主頁面的請求,兩個腳本的唯一差別就在Mode屬性為"HTML"還是"HTTP"(代碼中標記黃色處)。通過修改測試1(HTML-Based Mode),可以很容易的獲得以下信息:

      如果MODE="HTML",那么訪問頁面的請求,會自動去請求頁面上的資源。

      如果MODE="HTTP",那么會只請求這個頁面的HTML文件。

      但熟悉LR的人又肯定記得,在默認的HTML-Based Mode錄制模式下,web_url腳本中應該會記錄所請求的資源文件啊?在EXTRARES屬性后經常會看到"Url=/image/test.jpg"這樣的語句,那為什么出現問題的那個頁面,和我們的測試頁面錄下來的腳本確實沒記錄資源文件呢?

      要查明這點很容易,只要隨便找一個網站錄制一下,去看看腳本中記錄的資源文件有什么特點就知道了。

      用我們公司的搜索平臺做一下實驗,錄制主頁面如下。果然得到了我們期望的EXTRARES屬性,下面列出了很多資源文件。

    web_url("search.thunisoft.com",  
            "URL=http://search.thunisoft.com/", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=", 
            "Snapshot=t16.inf", 
            "Mode=HTML", 
            EXTRARES, 
            "Url=/skins/default/images/bg_top.gif", ENDITEM, 
            "Url=/skins/default/images/nav_bg.gif", ENDITEM, 
            "Url=/skins/default/images/nav_right.jpg", ENDITEM, 
            "Url=/skins/default/images/search_m.gif", ENDITEM, 
            "Url=/skins/default/images/button02.gif", ENDITEM, 
            "Url=/skins/default/images/nav_r.gif", ENDITEM, 
            "Url=/skins/default/images/button01.gif", ENDITEM, 
            "Url=/skins/default/images/nav_l.gif", ENDITEM, 
            "Url=/skins/default/images/search_l.gif", ENDITEM, 
            "Url=/skins/default/images/search_r.gif", ENDITEM,
            LAST);

      分析一下頁面的源文件,搜索腳本中出現的各個圖片名,居然發現一個都找不到!而源文件中出現的圖片文件,在腳本中又都沒記錄。

      那么繼續尋找腳本中圖片的來源吧。其實到這應該很自然的想到了CSS文件了吧,于是隨著源文件中的<link>找到連接文件,果然EXTRARES中的所有資源文件都找到了。

    posted on 2012-05-09 09:48 順其自然EVO 閱讀(526) 評論(0)  編輯  收藏 所屬分類: loadrunner

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

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 午夜国产精品免费观看| 久久国产乱子伦精品免费不卡| 国产免费不卡视频| 亚洲日本在线观看网址| 久久久久久夜精品精品免费啦| 久久亚洲一区二区| 日韩人妻无码精品久久免费一| 久久久久亚洲精品美女| 一级毛片免费观看不卡视频| 亚洲av激情无码专区在线播放 | 黄色一级免费网站| 免费人成在线观看播放国产| 羞羞网站在线免费观看| 亚洲欧洲中文日韩av乱码| 国产99久久久久久免费看| 国产成人综合亚洲亚洲国产第一页 | 在线观看免费毛片| 精品特级一级毛片免费观看| 免费a在线观看播放| 国产精品成人69XXX免费视频| 亚洲色大成网站WWW久久九九| 久久大香香蕉国产免费网站| 天天爽亚洲中文字幕| 国产无遮挡吃胸膜奶免费看视频| 无套内射无矿码免费看黄| 亚洲一级片免费看| 免费无码毛片一区二区APP| 中文字幕精品三区无码亚洲| 亚洲AV无码乱码在线观看牲色| 国产三级在线免费| 亚洲av极品无码专区在线观看| 国产成人精品男人免费| 成全视频高清免费观看电视剧| 亚洲国产精品综合久久久| 免费一级毛片在线观看| 日韩成人免费视频| 亚洲AV永久无码天堂影院| 亚洲Av永久无码精品三区在线| 成年在线观看免费人视频草莓| 一区二区免费电影| 亚洲一区二区三区高清视频|