首先這個(gè)ptotocol是指應(yīng)用層的協(xié)議,是你的客戶端使用什么協(xié)議訪問你的服務(wù)器server。
在選擇protocol遇到困難時(shí),說明我們?cè)趯W(xué)習(xí)LR的過程中,至少存在兩個(gè)方面的問題:
1、對(duì)LR的工作原理認(rèn)識(shí)不清。
LoadRunner屬于應(yīng)用在客戶端的測(cè)試工具,在客戶端模擬大量并發(fā)用戶去訪問服務(wù)器,從而達(dá)到給服務(wù)器施加壓力的目的。所以說LoadRunner模擬的就是客戶端,其腳本代表的是客戶端用戶所進(jìn)行的業(yè)務(wù)操作,即只要腳本能表示用戶的業(yè)務(wù)操作就可以。
2、網(wǎng)絡(luò)通信的基礎(chǔ)知識(shí)不牢。
不了解這個(gè)協(xié)議的選擇原則,不了解被測(cè)試系統(tǒng)的總體架構(gòu)。
說到通信協(xié)議我們來熟悉一下協(xié)議的分層,按照OSI的分層模型,分層結(jié)構(gòu)如下:

按照TCP/IP協(xié)議的分層,分層結(jié)構(gòu)如下:

第一個(gè)分層是由OSI制定但不實(shí)用,后一個(gè)是目前廣泛運(yùn)用且被業(yè)界認(rèn)做既定標(biāo)準(zhǔn)的協(xié)議分層,下文探討的LoadRunner協(xié)議選擇即按TCP/IP協(xié)議的分層模型討論。
接著來說說LoadRunner-VuGen中的協(xié)議分類,VuGen(LR8.1)中的協(xié)議分類如下表所示:

那現(xiàn)在來說說如何解決問題,首先,你要通過一定的渠道來了解測(cè)試對(duì)象的應(yīng)用層通信協(xié)議:
1、通過詢問開發(fā)人員獲知所運(yùn)用的協(xié)議,通常這是最基本也是最直接的要領(lǐng) ;因?yàn)闆]有人比開發(fā)人員更清楚他們所開發(fā)的運(yùn)用 程序運(yùn)用的什么通信協(xié)議了;
2、通過概要或細(xì)致設(shè)計(jì)手冊(cè)獲知所運(yùn)用的協(xié)議,在沒有開發(fā)人員支持的情況,通過概要設(shè)計(jì)或細(xì)致設(shè)計(jì)獲知所運(yùn)用的協(xié)議不失為第二簡(jiǎn)便要領(lǐng) ;
3、通過協(xié)議分析工具捕包分析,然后確定被測(cè)對(duì)象所運(yùn)用的協(xié)議。在運(yùn)用協(xié)議分析工具分析協(xié)議流程當(dāng)中一定要摒除底層協(xié)議,不要被底層協(xié)議所迷惑;
4、通過以往測(cè)試體會(huì)確定被測(cè)對(duì)象所運(yùn)用的協(xié)議,當(dāng)然通過這種要領(lǐng)確定的協(xié)議有一定的不準(zhǔn)確性;
其實(shí)也可以嘗試用多種協(xié)議來分別錄制腳本,看哪些是成功的,哪些錄制的腳本內(nèi)容為空。錄制成功的,也可以比較一下腳本的差別。
最后來說一說選擇腳本的一些基本原則【轉(zhuǎn)載】:
B/S結(jié)構(gòu),選擇WEB(Http/Html)協(xié)議;
C/S結(jié)構(gòu),可以根據(jù)后端數(shù)據(jù)庫的類型來選擇,如SybaseCTLib協(xié)議用于測(cè)試后臺(tái)的數(shù)據(jù)庫為Sybase的運(yùn)用 ;MSSQLServer協(xié)議用與測(cè)試后臺(tái)數(shù)據(jù)庫為SQL Server的運(yùn)用 ;對(duì)于一些沒有數(shù)據(jù)庫的Windows運(yùn)用 ,可選用Windows Sockets底層協(xié)議;運(yùn)用了數(shù)據(jù)庫但運(yùn)用的是ODBC連接的數(shù)據(jù)則選擇ODBC協(xié)議;
對(duì)于有些運(yùn)用純JAVA編寫的C/S結(jié)構(gòu)的東東,采用JAVA,而且不能錄制只能手工編寫代碼(工作量和難度還是有的)。同樣不能錄制的還包括C、VB Script、VB、VBNet User協(xié)議。
對(duì)于Windows Sockets協(xié)議來說,最適合的那些基于Socket開發(fā)的運(yùn)用 程序;但是由于網(wǎng)絡(luò)通訊的底層都是基于Socket的,因此幾乎所有的運(yùn)用 程序都能夠通過Socket來錄制,哪可能有人會(huì)問,哪既然Socket都能錄制下來,還要那么多協(xié)議做什么,價(jià)格還賊貴,其實(shí)最主要的原由就是Socket錄制的代碼可讀性較差,如果Socket的腳本可讀性較高的話,實(shí)話就沒有其他協(xié)議出現(xiàn)的必要性了。
對(duì)于郵件來說,首先要看你收郵件的途徑,如果你通過WEB頁面收發(fā)郵件,毫無疑問,你選擇協(xié)議時(shí)就須要選擇HTTP協(xié)議,如果你通過郵件客戶端,像OutLook、FoxMail之類的,則須要根據(jù)操作不同選擇不同的協(xié)議了,例如發(fā)郵件你可能要選擇SMTP、收郵件你可能須要選擇POP3。