Loadrunner Port Mapping錄制方法(一種通用的錄制腳本的方法)
以下觀點僅是本人對loadrunner的理解所寫,不一定正確,僅供大家參考!如果有不對的地方還請指出!
我們在很多時候因為無法錄制腳本而困惑,如loadrunner使用FTP協議錄制Core FTP Lite時,只能看到loadrunenr捕獲到事件,但無法生成腳本,又比如使用POP3或SMTP協議錄制郵件收發時也是只能捕獲到時間,但無法生成腳本,此時我介紹一種萬能的錄制方法可以解決這個問題。
其實loadrunner錄制的基本原理就是通過Port Mapping這個方法實現的,只不過我們在平時沒有在意而已,那么先來介紹一下loadrunner典型的錄制原理,再介紹一下loadrunner使用Port Mapping方式的錄制原理。
通常情況下,我們在錄制腳本的過程是:
1、 選擇協議
2、 輸入要錄制的URL或指定要錄制的應用程序的路徑
3、 選擇錄制腳本的位置,存放在哪個ACTION中
4、 設置錄制選項
5、 開始錄制
此時loadrunner會自動監控你所指定的URL或應用程序所發出的請求及服務器返回的響應,它做為一個第三者監視著客戶端與服務器端的所有對話,然后把這些對話記錄下來,生成腳本,再次運行時模擬客戶端發出的請求,捕獲服務器端的響應。它在做監視時會自動捕捉客戶端發出請示時所用的端口,并根據請求內容向服務器端的相應端口發送,而服務器回應時,根據請求消息中的端口向客戶端某個端口發出回應,也就是說loadrunner監聽的端口是由應用程序或請求所決定的。
好了,知道通常情況下loadrunner錄制腳本的原理后,我們在說一下Port Mapping錄制腳本的原理:
Port Mapping錄制過程是:
我們已使用POP3協議錄制收郵件的過程來舉例
1、 選擇協議,選擇POP3協議
2、 在要錄制的應用程序路徑中輸入“loadrunner安裝路徑\bin\wplus_init_wsock.exe”
3、 設置錄制選項,在NETWORK的Port Mapping中新建一個代理
根據下圖新建一個代理:
在socket service設置中,要指明你客戶端程序要連接的服務器地址、端口、協議、錄制腳本的類型等選項,由于負責收郵件的服務器默認的端口是110,所以我們這里將PORT設置為110;
在TRAFFIC FORWARDING設置中,這個端口可以為任意端口,主要是為了讓loadrunner啟動的代理服務知道要把所有發往指定端口111的請求轉發給指定服務器的110端口
原理圖如下:
4、 設置要錄制的程序端口
將要錄制的應用程序原本發往外網服務器的請求發送到本地的loadrunner啟動的代理程序上,以便loadrunner進行監控
設置發送到本地的111端口:
5、 完成以上設置后,就可以開始錄制腳本了
在錄制腳本時我們會看到loadrunner會啟動一個代理程序
這個就代表我們設置的代理服務正常啟動了。通過重新錄制我們不僅看到了loadrunner捕獲到了事件,而且正確生成了腳本。
好了,總結一下Port Mapping錄制的錄制原理:
首先將要錄制的應用程序向服務器發送請求的服務器地址和端口改為本地計算機及111端口,在Port Mapping中設置的代理程序再將發往111端口的所有請求轉發給真正的服務器端,相當于loadrunner強制性的將本地某端口的通訊錄制了下來,通過這個代理更明確了需要監控的端口和協議。
其實loadrunner通常使用的錄制方式也是采用這樣一個原理,只不過我們并不知道它具體監控的是哪個端口,而在Port Mapping錄制方法中我們明確的指定了監聽端口?梢哉f通常的錄制方法是一種隱性的,而后一種錄制方法是顯性的。
可以通過此方法錄制我們現有的所有協議的腳本,不會再出現只看到事件無法生成腳本的情況了!
其實這才是一種通用的錄制方法!
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/