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