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

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

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

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

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

      結(jié)論

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

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

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

      運(yùn)行上面這個(gè)腳本,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]

      細(xì)心的人可以發(fā)現(xiàn),這個(gè)日志和第一步實(shí)驗(yàn)中的不一樣呢。再次對比上面寫出的兩種Replay Log,可以發(fā)現(xiàn)一個(gè)是"Found resource ... in HTML ...",一個(gè)是"Downloading resource ..."(標(biāo)記藍(lán)色兩處)

      這樣也可以解釋了。

      HTML文件內(nèi)部的資源,不需要顯示在腳本中就可以下載,因?yàn)闀谠L問這個(gè)頁面時(shí)“發(fā)現(xiàn)”。

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

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

      而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).

      再次驗(yàn)證了我們的結(jié)論,EXTRARES中只顯示非HTML文件中的資源。

      問題描述

      同事遇到的一個(gè)問題,LR執(zhí)行性能測試腳本時(shí),總報(bào)出錯(cuò)誤,無法訪問一個(gè)圖片的地址,但腳本中明明沒有對該資源的請求。

    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]

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

      分析與實(shí)驗(yàn)

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

      這種問題,其實(shí)確信只要把錄制方式轉(zhuǎn)換為URL-Based Mode就肯定能解決,因?yàn)榭梢燥@式的錄下所有請求。但還是想把HTML-Based Mode下的問題解決,于是做了一些測試。

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

    <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>
                    表格中的圖片跳轉(zhuǎn)鏈接
                    </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>

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

      測試:

      1、默認(rèn)的HTML-Based Mode方式進(jìn)行錄制,只錄到一個(gè)請求。

    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);

      腳本中看不到對資源的請求,但實(shí)際運(yùn)行時(shí),還是會去獲取兩個(gè)圖片資源。通過Replay Log可以看到請求的證據(jù):

    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錄制方式,可以錄制到所有的請求,包括一個(gè)頁面請求,兩個(gè)圖片請求。

    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);

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

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

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

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

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

      用我們公司的搜索平臺做一下實(shí)驗(yàn),錄制主頁面如下。果然得到了我們期望的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);

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

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

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

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

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费观看无遮挡www的视频| 亚洲蜜芽在线精品一区| 最近最新MV在线观看免费高清| 91福利免费网站在线观看| 亚洲国产精品无码久久久秋霞1| 久久久久久久亚洲Av无码| 精品亚洲成α人无码成α在线观看 | 亚洲AV日韩AV高潮无码专区| 免费又黄又硬又爽大片| 成人免费一区二区三区在线观看| 99精品在线免费观看| a级片在线免费看| 国产免费久久精品99久久| 美女被艹免费视频| 亚洲国产成人久久精品软件| 亚洲人成电影院在线观看| 亚洲第一成年男人的天堂| 国产亚洲精品精品国产亚洲综合| 免费看国产一级片| 国产精品久久久久影院免费| 毛片A级毛片免费播放| 国产精品久久久久久久久免费| 特级精品毛片免费观看| 毛片在线播放免费观看| 99精品全国免费观看视频..| 成人无码区免费A∨直播| 国产黄色片免费看| 国产免费区在线观看十分钟| 一级一片免费视频播放| 国产vA免费精品高清在线观看| 日本特黄特色AAA大片免费| 成人一级免费视频| 一本到卡二卡三卡免费高| www在线观看播放免费视频日本| 一级黄色免费大片| 中文字幕视频免费在线观看| 免费无码av片在线观看| 99精品在线免费观看| 99久久精品日本一区二区免费 | 亚洲精品美女久久久久9999| 亚洲视频免费一区|