<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>
            • 軟件測試技術(shù)
            • 軟件測試博客
            • 軟件測試視頻
            • 開(kāi)源軟件測試技術(shù)
            • 軟件測試論壇
            • 軟件測試沙龍
            • 軟件測試資料下載
            • 軟件測試雜志
            • 軟件測試人才招聘
              暫時(shí)沒(méi)有公告

            字號: | 推薦給好友 上一篇 | 下一篇

            LoadRunner與Winsock協(xié)議

            發(fā)布: 2008-10-09 16:21 | 作者: 網(wǎng)絡(luò )轉載 | 來(lái)源: 網(wǎng)絡(luò ) | 查看: 543次 | 進(jìn)入軟件測試論壇討論

            領(lǐng)測軟件測試網(wǎng)

            MILY: 宋體; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋體">在討論winsock解決方案之前,我們先討論一下各種協(xié)議是如何工作。從前面的簡(jiǎn)介可以了解到很多的高級協(xié)議,例如FTP,HTTP協(xié)議等。以及所有基于window的應用(例如IE,WS-FTP)底層都是在Winsocket層上通信,因此任何高級協(xié)議的底層都是用Winsocket通信。
               
            什么時(shí)候在LR中選擇Winsocket協(xié)議呢?你要先了解LR是怎么樣工作的:LR捕捉API請求然后再把它們回放。所以當你在創(chuàng )建LR WEB腳本的時(shí)候,VUGEN捕捉從IE出去的所有的HTTP請求。除此之外lr還支持其他很多協(xié)議,例如Oracle,ODBC等。在選擇不同協(xié)議錄制腳本的時(shí)候,LR是依靠hooks捕捉正確的API請求。所以既然大部分網(wǎng)絡(luò )協(xié)議都是架構在winsocket協(xié)議之上的,那對于lr不支持的協(xié)議,我們都可以在winsocket層上錄制腳本。所以當找不到合適協(xié)議的時(shí)候,可以選擇winsocket來(lái)錄制。

             

            錄制WinSock協(xié)議腳本!
               Lr
            錄制新的虛擬用戶(hù)腳本,選擇winsock協(xié)議;
              
            web虛擬用戶(hù)腳本中錄制的是URL信息,所以VUGEN啟動(dòng)流覽器并運行就可以了,但選擇Winsocket錄制的時(shí)候,可能會(huì )是各種形式的應用,并不簡(jiǎn)簡(jiǎn)單單就是瀏覽器,所以在開(kāi)始的時(shí)候我們不需要指定應用的地址。

             

               下面的例子我們選擇winsock來(lái)錄制web應用,正如上面說(shuō)的我們開(kāi)始要指定ie的地址。因為本來(lái)lr是支持http協(xié)議的,所以這個(gè)例子并無(wú)具體的意義,只是為了使例子簡(jiǎn)單。
            winsock
            腳本典型代碼:
            lrs_create_socket("socket0"
            ,"UDP","LocalHost="0"","RemoteHost=doors:2084",LrsLastArg);
            lrs_create_socket("socket1"
            ,"TCP","LocalHost=0","RemoteHost=www2。yahoo。com:80",LrsLastArg);
            lrs_send("socket0"
            ,"buf0",LrsLastArg);
            lrs_receive("socket0"
            ,"buf1",LrsLastArg);
            lrs_send("socket1"
            ,"buf2",LrsLastArg);
            lrs_send("socket0"
            ,"buf3",LrsLastArg);
            lrs_receive("socket0"
            ,"buf4",LrsLastArg);
            這是訪(fǎng)問(wèn)雅虎的一個(gè)應用,正如我們看到的,winsock先打開(kāi)一個(gè)winsocket連接,然后收發(fā)包。我們發(fā)現錄制的腳本中比web腳本(三個(gè)文件)多一個(gè)文件。

             

            第四個(gè)文件是data.ws,它里面記載了在action里面收發(fā)所有包的內容。
              
            下面是一個(gè)data.ws的例子。
            send buf0
            "!"
            recv buf1 1
            "!"
            send buf2
            "GET / HTTP/1
            。1\r\n"
            "Accept: */*\r\n"
            "Accept-Language: en-us\r\n"
            "Accept-Encoding: gzip
            ,deflate\r\n"
            "User-Agent: Mozilla/4
            。0 (compatible; MSIE 5。01; Windows NT 5。0)\r\n"
            "Host: www
            。yahoo。com\r\n"
            "Connection: Keep-Alive\r\n"
            "Cookie: B="5oj83bst12l6m&b="2;" Y="v=1&n=8lln5lmi3f8g1&l=6ef8c0d34b0/o&p=m2a2s""
            "qa4110004&r=3f&lg=us&intl=us; T="z=4TVE6A4ZqE6A9dIIpt30
            。NQNTYGNDE3NTYwM081&""
            "a=AAE&sk=DAAEwinHlDtEm/&d=c2wBTWpFQk16WXdNakUzTkRneQFhAUFBRQF6egE0VFZFNkFn"
            "V0E-; I="i1=010g1q1u24252e2i2k2p2r494a4g4m4q55565b5g6g6t6u7172737678797a7f7""
            "g7k7n7o888f8k8p8q989c9f9i9k9l9n9qacanapb0b3bdbfbhblbqbrbuc0c1c4cgcmcscteie"
            "jgr&ir=73\r\n"
            "\r\n"
            send buf3
            "!"
            recv buf4 1
            "!"
            recv buf5 2048
            "HTTP/1
            。0 200 OK\r\n"
            "Content-Length: 16030\r\n"
            "Content-Type: text/html\r\n"
            "\r\n"
            "
            buf2
            包含了發(fā)給www。yahoo。com的包,buf5包含了從server收到的回應。正如看到的winsock錄制的腳本并不像web腳本那樣具有可讀性,因為winsock是我們最后的選擇。在buf序列號的后面是buf的字節數。例如5buffer后面的2048就是表示收到了2048個(gè)幀。
             
            注意:在很多buffer里面你會(huì )發(fā)現僅僅包含了一個(gè)!,這是一個(gè)網(wǎng)絡(luò )常識,這個(gè)幀對于應用來(lái)說(shuō)沒(méi)有任何的作用,完全可以把這些楨清除掉,在data。ws清除這個(gè)幀是效果的,需要到action里把這些楨注釋掉。譬如例子中收到和發(fā)出的buffer可以用//注釋掉。這樣可以使腳本運行得更快。下邊的例子:buffers 0,1,3 4 可以注釋掉:
            lrs_create_socket("socket0"
            ,"UDP","LocalHost="0"","RemoteHost=doors:2084",LrsLastArg);
            lrs_create_socket("socket1"
            ,"TCP","LocalHost=0","RemoteHost=www2。yahoo。com:80",LrsLastArg);
            // lrs_send("socket0"
            ,"buf0",LrsLastArg);
            // lrs_receive("socket0"
            ,"buf1",LrsLastArg);
            lrs_send("socket1"
            ,"buf2",LrsLastArg);
            // lrs_send("socket0"
            ,"buf3",LrsLastArg);
            // lrs_receive("socket0"
            ,"buf4",LrsLastArg);
            lrs_receive("socket1"
            ,"buf5",LrsLastArg);
            lrs_send("socket0"
            ,"buf6",LrsLastArg);

            延伸閱讀

            文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/


            關(guān)于領(lǐng)測軟件測試網(wǎng) | 領(lǐng)測軟件測試網(wǎng)合作伙伴 | 廣告服務(wù) | 投稿指南 | 聯(lián)系我們 | 網(wǎng)站地圖 | 友情鏈接
            版權所有(C) 2003-2010 TestAge(領(lǐng)測軟件測試網(wǎng))|領(lǐng)測國際科技(北京)有限公司|軟件測試工程師培訓網(wǎng) All Rights Reserved
            北京市海淀區中關(guān)村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
            技術(shù)支持和業(yè)務(wù)聯(lián)系:info@testage.com.cn 電話(huà):010-51297073

            軟件測試 | 領(lǐng)測國際ISTQBISTQB官網(wǎng)TMMiTMMi認證國際軟件測試工程師認證領(lǐng)測軟件測試網(wǎng)

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>