摘 要 使用測試工具LoadRunner進行基于Socket通信的協(xié)議的性能測試,在創(chuàng)建、錄制測試腳本時,經(jīng)常會出現(xiàn)由于各種不同的原因,導致難以錄制或者無法錄制腳本的情況,阻礙了性能測試工作的順利進行。本文通過對LoadRunner Port Mapping測試方法的研究并結(jié)合實際案例,可以解決特殊測試場景無法錄制基于Socket通信協(xié)議腳本的問題,可以不受客戶端運行的操作系統(tǒng)平臺影響、不受軟件架構(gòu)和測試環(huán)境的影響完成對特定服務(wù)器端口流量數(shù)據(jù)的錄制,為應(yīng)用LoadRunner進行性能測試奠定基礎(chǔ)。
關(guān)鍵詞 Port Mapping;LoadRunner;端口映射;性能測試;測試方法;軟件測試
引言
使用測試工具LoadRunner,是執(zhí)行性能測試最常用的一種方式。LoadRunner可以通過模擬大量用戶實施并發(fā)負載,同時以實時性能監(jiān)測的方式來發(fā)現(xiàn)和確認問題。在使用LoadRunner創(chuàng)建、錄制測試腳本時,經(jīng)常會出現(xiàn)由于各種不同的原因,導致難以錄制或者無法錄制腳本的情況。其原因主要有以下幾個方面:
(1)通用主流瀏覽器的版本更新速度較快,測試工具無法充分支持;
(2)瀏覽器的內(nèi)核種類較多,測試工具無法充分匹配;
(3)C/S架構(gòu)軟件,通過測試工具錄制腳本困難,經(jīng)常受到制約和障礙;
(4)依賴較多外部硬件設(shè)備的軟件系統(tǒng),模擬外部硬件設(shè)備與服務(wù)器之間的數(shù)據(jù)交互較為困難;
(5)操作系統(tǒng)平臺不支持測試工具的運行;
(6)無法通過測試工具啟動、調(diào)用應(yīng)用程序。
通過LoadRunner Port Mapping測試方法,可以解決特殊測試場景和特殊測試環(huán)境下無法錄制基于Socket通信協(xié)議腳本的問題,可以完成對特定服務(wù)器端口流量數(shù)據(jù)的錄制。
1 Port Mapping測試方法簡介
Port Mapping的測試方法,主要應(yīng)用于基于Socket通信協(xié)議的軟件之間。基于Socket通信的協(xié)議主要有FTP、HTTP、IMAP、NCA、POP3和SMTP等。
使用LoadRunner的經(jīng)典錄制方法,可以直接在客戶端的計算機上安裝、運行LoadRunner,按照經(jīng)典的流程獲得客戶端和服務(wù)端軟件之間的網(wǎng)絡(luò)通信交互數(shù)據(jù),從而直接完成測試腳本的錄制、調(diào)試和回放等,通過對測試場景的設(shè)計、配置和運行,完成壓力輸出,得到性能測試結(jié)果。
使用LoadRunner Port Mapping測試方法錄制腳本時,可以通過設(shè)置“Port Mapping”節(jié)點的選項,通過指定服務(wù)器名、端口號的方式創(chuàng)建映射,將經(jīng)過被測端IP地址和端口號的網(wǎng)絡(luò)通信交互數(shù)據(jù),使用特定的通信協(xié)議映射到指定的端口??蛻舳讼蚍?wù)器發(fā)起請求后,通過配置Port Mapping,請求數(shù)據(jù)發(fā)送給了測試計算機,測試計算機捕獲到了請求的數(shù)據(jù)內(nèi)容,再將請求數(shù)據(jù)發(fā)送至服務(wù)器;服務(wù)器將請求數(shù)據(jù)處理完成后,進行響應(yīng),將恢復數(shù)據(jù)先返回給測試計算機,測試計算機再次捕獲到了服務(wù)器響應(yīng)的數(shù)據(jù)內(nèi)容,再將恢復數(shù)據(jù)返回至客戶端。
使用LoadRunner對基于Socket通信的軟件進行性能測試時,可以在客戶端計算機和服務(wù)端計算機之間配置用于錄制腳本的第三臺測試計算機,通過Port Mapping測試方法,采用一種類似代理的方式,可以根據(jù)測試的需要錄制獲得硬件設(shè)備軟件、瀏覽器或客戶端軟件與服務(wù)器端軟件之間網(wǎng)絡(luò)通信交互的數(shù)據(jù),再根據(jù)測試指標的要求,完成測試腳本的調(diào)試和回放工作,再通過對測試場景的設(shè)計、配置和運行,以回放腳本的方式模擬多個外部硬件設(shè)備、瀏覽器或客戶端軟件,從而實現(xiàn)對服務(wù)端軟件的壓力。
例如,可以指明端口8080上來自服務(wù)器的所有流量都應(yīng)作為HTTP處理;還可以不管端口號為多少,指定來自服務(wù)器的所有流量都應(yīng)映射到FTP協(xié)議;可以將端口21上的所有流量映射到FTP,不管來自哪個服務(wù)器[1]。
2 Port Mapping測試方法的使用
在LoadRunner中,錄制單協(xié)議腳本,使用 HTTP 或 WinSock 協(xié)議時,在“Recording Options”界面中會出現(xiàn)“Port Mapping”節(jié)點;錄制多協(xié)議腳本時,至少有一個協(xié)議是基于Socket協(xié)議的,才會在“Recording Options”界面中會出現(xiàn)“Port Mapping”節(jié)點。
“Port Mapping”節(jié)點的列表區(qū)域內(nèi)部顯示了端口映射的條目信息,可以通過選取或清除其旁邊的復選框來啟用或禁用條目。條目禁用啟用后,錄制腳本時,LoadRunner會錄制到該服務(wù)器的所有流量;條目禁用后,錄制腳本時,LoadRunner會忽略到該服務(wù)器的所有流量。
通過在“Target Server”文本框輸入IP地址或主機名,可以設(shè)置目標服務(wù)器的IP地址或主機名。該文本框的默認值為所有服務(wù)器。
通過對“Port”的配置可以設(shè)置條目所適用的目標服務(wù)器的端口,輸入0則可指定所有的端口。如果未指定所有端口名和服務(wù)器名,LoadRunner將在數(shù)據(jù)分配到服務(wù)時將使用以下優(yōu)先級:
(1)優(yōu)先級1:指定端口和服務(wù)器
(2)優(yōu)先級2:未指定端口,指定服務(wù)器
(3)優(yōu)先級3:指定端口,未指定服務(wù)器
(4)優(yōu)先級4:端口和服務(wù)器均未指定
具有高優(yōu)先級的映射條目不會被優(yōu)先級較低的條目覆蓋。例如,如果指定將服務(wù)器ServerB上使用端口21的流量作為FTP處理,然后指定將端口21上的所有服務(wù)器作為HTTP處理,則通過端口21的流量數(shù)據(jù)將作為FTP處理。
(5)強制映射。如果為服務(wù)器和端口號的組合指定了映射到的“Service ID”,LoadRunner將強制網(wǎng)絡(luò)流量使用該“Service ID”。例如,如果將端口1080上的
通過對“Service ID”下拉菜單的選擇,可以設(shè)置錄制器使用的協(xié)議或服務(wù)名稱,用于標識連接類型(即HTTP、FTP等)。也可以通過輸入不超過8個字符的文本, 指定新的名稱。
通過對“Service Type”下拉菜單的選擇,可以設(shè)置服務(wù)類型,默認設(shè)置為TCP。
通過對“Record Type”下拉菜單的選擇,可以設(shè)置錄制的類型,通過直接或代理服務(wù)器錄制方式。
通過對“Connection Type”下來菜單的選擇,可以設(shè)置連接的三種安全級別:明碼(非安全)、SSL或自動。如果選擇“自動”,錄制器將檢查前4個字節(jié)是否為SSL簽名。如果它檢測到SSL簽名,將假定正在使用SSL。
通過對“SSL Version”下拉菜單的選擇,可以設(shè)置與客戶端應(yīng)用程序和服務(wù)器通信時使用的首選SSL版本?!癝SL Version”的默認值為“SSL2/3”,也可以根據(jù)不同的安全算法的需要設(shè)置為SSL3.0、SSL2.0或TLS1.0。
通過對“SSL Cipher”下拉菜單的選擇,可以設(shè)置連接遠程安全服務(wù)器時使用的首選SSL密碼[2]。
3 基于Port Mapping測試方法錄制性能測試腳本的實例
使用Port Mapping測試方法完成了某社區(qū)安全系統(tǒng)項目的性能測試。在該實際案例中,服務(wù)器的外部連接了多個使用Socket協(xié)議通信的采集設(shè)備。采集設(shè)備內(nèi)運行嵌入式軟件,負責原始數(shù)據(jù)的采集,及與服務(wù)軟件的數(shù)據(jù)交互。性能測試的需求是,需要測試服務(wù)軟件是否可以滿足同時與多個采集設(shè)備進行數(shù)據(jù)交互。
在測試過程中,使用LoadRunner通過Port Mapping測試方法,捕獲到采集設(shè)備軟件和服務(wù)軟件之間的數(shù)據(jù)交互,然后通過對生成的測試腳本進行修改和調(diào)試,使LoadRunner成功模擬采集設(shè)備同服務(wù)軟件進行交互。
采集設(shè)備的IP地址為192.168.56.1;服務(wù)器的IP地址為192.168.56.2,服務(wù)軟件的端口號為1080;測試計算機的IP地址為192.168.56.3,數(shù)據(jù)轉(zhuǎn)發(fā)的端口號為:1080。
修改采集設(shè)備軟件的配置,使發(fā)送數(shù)據(jù)的目的地服務(wù)器的IP地址從192.168.56.2修改為192.168.56.3,端口號保持不變,依然為1080。
運行LoadRunner,點擊錄制按鈕開始新建錄制腳本,在Start Recording對話框中的Application type下拉菜單選擇Win32 Applications;在Program to record路徑文本框中選擇LoadRunner安裝路徑中bin目錄下的wplus_init_wsock.exe。
點擊Options按鈕,可以進入“Recording Options”界面,然后在“Port Mapping”節(jié)點進行設(shè)置。在Server Entry界面中,可以添加目標服務(wù)器的IP地址和端口映射到測試計算機上,保存完畢后,執(zhí)行開始錄制操作。
LoadRunner會彈出LoadRunner Sockets Proxy Starter對話框,說明此時Sockets Proxy已經(jīng)啟動成功,可以繼續(xù)執(zhí)行業(yè)務(wù)功能,以錄制腳本。
啟動設(shè)備軟件后,設(shè)備軟件成功向服務(wù)軟件發(fā)送數(shù)據(jù),服務(wù)軟件也成功地向設(shè)備軟件回復了應(yīng)答數(shù)據(jù),確認設(shè)備軟件和服務(wù)軟件連接正確。同時查看LoadRunner的Recording log,可以看到LoadRunner已經(jīng)捕獲到客戶端和服務(wù)端軟件間的網(wǎng)絡(luò)通信的交互數(shù)據(jù)。
成功完成了腳本的錄制后,性能測試的基礎(chǔ)性工作已經(jīng)完成。經(jīng)過正常的修改腳本、調(diào)試腳本,設(shè)置腳本運行策略和場景,最終模擬實現(xiàn)了并發(fā)傳輸數(shù)據(jù)對服務(wù)軟件的壓力。圖 45 使用LoadRunner模擬多個采集設(shè)備與服務(wù)軟件進行網(wǎng)絡(luò)通信交互數(shù)據(jù)[3]。
4 結(jié)束語
LoadRunner Port Mapping測試方法,不受客戶端運行的操作系統(tǒng)平臺影響、不受軟件架構(gòu)和測試環(huán)境的影響,解決了特殊測試場景無法錄制基于Socket通信協(xié)議腳本的問題,可以完成對特定服務(wù)器端口流量數(shù)據(jù)的錄制,在錄制基于Socket通信協(xié)議性能測試腳本時,是一種接近于萬能的錄制方式。為使用LoadRunner進行性能測試的后續(xù)工作奠定了基礎(chǔ)。
參考文獻
[1] 陳亞偉.基于LoadRunner的移動端軟件性能測試研究與應(yīng)用[J].信息通信,2017(8):74.
[2] 陶性銘.基于LoadRunner的軟件性能測試研究[J].信息通信,2017(12):130.
[3] 張君棟.基于LoadRunner的WebGIS網(wǎng)站性能測試[J].北京測繪,2016(4):23.
作者簡介
王?。?983-),男,甘肅省臨洮縣人;學歷:碩士研究生,職稱:工程師,現(xiàn)就職單位:單位名稱:北京賽迪軟件測評工程技術(shù)中心有限公司,研究方向:軟件測試。