使用LoadRunner錄制腳本時(shí)如何選擇合适的協議?
LoadRunner首先是一個測試工具,其次是一個性能(néng)測試工具,然後(hòu)是該工具是一個基于協議,也就(jiù)是說(shuō)LoadRunner測試的對(duì)象都(dōu)需要使用通信協議,對(duì)于那些不使用通信協議僅僅進(jìn)行本地處理的軟件例如Microsoft Word,LoadRunner就(jiù)不适用。說(shuō)到通信協議我們來熟悉一下協議的分層,按照OSI的分層模型,分層結構如下:
按照TCP/IP協議的分層,分層結構如下:
TCP/IP目前廣泛使用且被業界認作既定标準的協議分層, LoadRunner協議選擇即按TCP/IP協議的分層模型讨論。
LoadRunner VuGen中的協議與文章開(kāi)頭所說(shuō)的通信協議還(hái)是有一定的區别的,例如像LoadRunner VuGen中的C 模闆、Visual Basic 模闆、Java 模闆、Javascript 和VBScript 類型的腳本均爲開(kāi)發(fā)語言,非通信協議。
一般來說(shuō)協議選擇有如下原則:
1. 最簡單的方法,向(xiàng)應用團隊或供應商查詢,特别是軟件架構師和開(kāi)發(fā)人員。他們應該能(néng)夠提供這(zhè)些信息。
2. 使用WireShark網絡分析器來探測應用程序運行時(shí)的通信情況。更多的使用細節可以在供應商的網站上找到。在你開(kāi)始捕獲流量後(hòu),你應該能(néng)在協議欄下看到協議的内容。
3. 使用netstat -a來确定協議和端口号。例如,協議是TCP,端口号是80,它可能(néng)意味著(zhe)HTTP。需要注意的是,netstat -a隻顯示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP或UDPv6中的協議(/help獲取更多信息),這(zhè)意味著(zhe)你可能(néng)需要根據協議(TCP)和端口号來猜測協議的内容。
4. 使用Winsock協議,通過(guò)數據文件确定協議。Winsock在套接字層面(miàn)上捕獲所有任何類型的流量并將(jiāng)其寫入數據文件。從數據文件中,你會(huì)發(fā)現協議的簽名,如HTTP請求和響應在HTTP的背景下。
例如:
B/S 結構,選擇WEB(HTTP/HTML)協議;
C/S結構,可以根據後(hòu)端數據庫的類型來選擇,如SybaseCTLib協議用于測試後(hòu)台的數據庫爲Sybase的應用;MS SQL Server協議用于測試後(hòu)台數據庫爲 SQL Server的應用;
對(duì)于一些沒(méi)有數據庫的Windows應用,可選用Windows Sockets底層協議;使用了數據庫但使用的是ODBC連接的數據則選擇ODBC協議;
對(duì)于有些使用純JAVA編寫的C/S結構的東東,采用JAVA,而且不能(néng)錄制隻能(néng)手工編寫代碼(工作量和難度還(hái)是有的)。同樣不能(néng)錄制的還(hái)包括C、VB Script、VB、VBNet User協議。
對(duì)于Windows Sockets協議來說(shuō),最适合的那些基于Socket開(kāi)發(fā)的應用程序;但是由于網絡通訊的底層都(dōu)是基于Socket的,因此幾乎所有的應用程序都(dōu)能(néng)夠通過(guò)Socket來錄制,很多時(shí)候一提到不是基于浏覽器的應用,很多人就(jiù)會(huì)想到用WinSocket協議來錄制,仿佛Form窗體都(dōu)可以用Winsocket 。
從道(dào)理上講網絡通訊的底層都(dōu)是基于Socket的,例如TCP、UPD等,似乎所有的程序都(dōu)可以用Socket協議來錄制。但是事(shì)實不是這(zhè)樣的,因爲選擇的協議決定了LoadRunner如何捕獲數據包。否則會(huì)多捕獲很多無用的數據。
因此,不是所有的程序都(dōu)是适合WinSocket協議的。實際上,那些基于Socket開(kāi)發(fā)的應用才真正适合Socket協議來進(jìn)行錄制。其他的,例如基于數據庫的應用,就(jiù)不太适用Socket協議,甚至可能(néng)錄制不到腳本。
很多C/S程序,一定要選擇合适的協議。根據經(jīng)驗,C/S的程序多數需要手工開(kāi)發(fā)很多腳本,因爲錄制的很多回放時(shí)候或多或少都(dōu)會(huì)有些問題,但是可以參考錄制的結果。
所以測試一個程序,一定要搞清楚開(kāi)發(fā)人員用了什麼(me)技術、數據流是什麼(me)協議封裝的。
關于蘇州華克斯信息科技有限公司
聯系方式:400-028-4008
0512-62382981
專業的測試及安全産品服務提供商
Fortify | Webinspect | AppScan | SonarQube | 極狐GitLab
LoadRunner | UFT(QTP) | ALM(QC)
Micro Focus 鉑金合作夥伴
SonarQube中國(guó)總代理
極狐GitLab鉑金級合夥伴
HCL中國(guó)合作夥伴
掃二維碼用手機看
更多資訊