首先這個ptotocol是指應用層的協議,是你的客戶端使用什么協議訪問你的服務器server。
在選擇protocol遇到困難時,說明我們在學習LR的過程中,至少存在兩個方面的問題:
1、對LR的工作原理認識不清。
LoadRunner屬于應用在客戶端的測試工具,在客戶端模擬大量并發用戶去訪問服務器,從而達到給服務器施加壓力的目的。所以說LoadRunner模擬的就是客戶端,其腳本代表的是客戶端用戶所進行的業務操作,即只要腳本能表示用戶的業務操作就可以。
2、網絡通信的基礎知識不牢。
不了解這個協議的選擇原則,不了解被測試系統的總體架構。
說到通信協議我們來熟悉一下協議的分層,按照OSI的分層模型,分層結構如下:

按照TCP/IP協議的分層,分層結構如下:

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

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