王衛東,戎舟,于慧霞
(南京郵電大學,210046)
隨著Internet的高速發展,IP網絡將數據、話音、視頻等傳統業務與新業務融合[1]在一起,這些發展在深刻地影響和改變著人們生活的同時,也向網絡建設者和管理者提出了許多新的挑戰。網絡業務的融合和通信平臺的統一,使得網絡數據業務的流量特征、性能特征、可靠性特征和安全性特征日益受到業界的關注。針對這些特征進行各類網絡業務性能測試成為一種全新的技術與業務需求,同時這種需求又進一步延伸到對構成網絡通信平臺的設備所進行的功能與性能測試,以及在網絡設備研發過程中的階段性測試與整機測試。
面對如此龐大的網絡測試任務,如果采用手工測試,在某些帶有大量回歸測試的情況下,難免會進行大量的重復勞動,從而降低了整個測試工作的效率。在此前提下,我們很有必要在傳統的手動測試基礎上進行自動化測試的開發[2],這也是網絡測試的發展趨勢。
網絡自動化測試的基礎在于網絡測試的方法學。在實際的測試過程中,由于測試類型、測試參數的定義、測試包的大小、測試協議、測試時間、測試點的分布、測試點的數目、抽樣算法、抽樣頻率甚至統計分析方法,都會對測試結果產生影響,因此測試方法的標準化至關重要。
目前,網絡測試主要以基準方法學工作組BMWG(Benchmarking Methodology Working Group)的RFC文檔(如RFC2889、2544[3]等)為依據,這些文檔構成了整個網絡測試的方法學。
在進行網絡自動化測試之前,必須要圍繞測試的目的、對象、執行者、時間、成本、方法進行認真的分析,如圖1所示。
具體分析內容如下:
(a)為什么要進行測試?即明確測試目的;
(b)測試什么?即明確測試對象;
(c)測試人員的技術背景?測試執行者應該具備怎樣的的技術條件?
(d)測試周期大概有多長時間?
(e)測試任務完成的成本如何?
(f)如何確定詳細的測試方法?
在上述問題考慮周詳后,制定出合理的測試計劃,之后在運行測試時,主要過程包括:測試床搭建、測試環境配置、執行測試、測試結果記錄及分析等幾個階段。

圖1 測試方法制定及測試執行流程圖
網絡測試以網絡需求為導向,根據網絡運營對設備的要求制訂出相應的測試內容,因此對設備的測試定位在網絡[4]。網絡測試的任務就是根據需求配置特定的場景,測試當負載逐漸增加時,系統各項性能指標的變化情況,從而了解當前的網絡在一定負載下的運行情況,并了解該網絡何時出現“應用瓶頸”。
IP網絡測試的方法有主動測量和被動測量兩種[5]。主動式測量是利用網絡測試儀,針對要測試的網絡選取合適的被測設備(DUT),發送測試數據包進行主動探測。被動式測量則是通過在現有的網絡上加裝一定的軟硬件,被動地監測和記錄網絡流量及流向的情況。
基于網絡測試的任務特征,為了對待測IP網絡性能[6]進行全面綜合的評估,我們在綜合主動測量和被動測量各自優點的基礎上,采用分布式IP網絡測試架構[7]。
該網絡自動化測試系統的設計是基于Spirent Test Center 2000A開發一個模塊化、可復用、易維護、易擴充的網絡自動化測試平臺。在測試的同時加載2~7層數據流量[8]和不同的路由協議及應用層協議流量[9],在統一的平臺上對網絡中的關鍵設備(如核心路由器,三層交換機)進行高集成度、全面的2~7層疊加測試;我們采用圖2中的模型構建自動測試平臺。

圖2 自動化測試平臺結構
在搭建的自動化測試平臺中,借助Spirent的測試設備,構建一個分布式的測試環境,完成網絡性能的自動化測試與分析,如圖3所示。

圖3 分布式自動化測試環境
測試自動化通過運行腳本(Script)的方式來控制測試儀表進行測試,和傳統的通過儀表的圖形界面控制方式不同,測試腳本通過直接調用測試儀表的接口函數達到繞過儀表的圖形化界面而直接控制儀表的目的,這樣使得測試更加靈活、可控性更強,可以完成一些只以圖形界面為依托的測試軟件所不能完成的測試。
測試例腳本是實現網絡測試自動化的關鍵,測試例腳本的編寫質量直接決定自動化測試的質量,因此,在腳本的編寫上我們采用靈活性較高的TCL語言[10](Tool Command Language)。
TCL是一種簡單的解釋性腳本語言,主要使用于發布命令給一些互交程序如文本編輯器、調試器和shell。TCL解釋器通過與系統其它部分的交互完成對被測設備DUT(Device Under Test)的測試,最后將測試結果返回形成測試報告。
在指定VLAN鏡像功能測試中,其拓撲結構如圖4所示,其中包括儀表和被測試設備。
根據拓撲結構搭建好測試環境,我們將被測交換機FE1,FE2端口設置為Trunk模式,加入VLAN100,VLAN200;測試儀表端口A向C發送數據流,VLAN100,VLAN200各50M,端口FE3作為鏡像端口,鏡像VLAN100的數據流量,最后根據測試儀表端口B的流量情況來測試VLAN鏡像功能。在已經搭建好的測試平臺中,將測試腳本在IDE中運行從而啟動整個自動化測試流程。

圖4 指定VLAN鏡像功能測試拓撲
在測試例腳本執行中,大致包括3大模塊:測試環境的配置、數據流量的配置以及測試結果的保存方式。其中,對API函數的調用是通過“package require SpirentTestCenter”來實現。
測試環境的配置模塊中,要對端口進行配置修改其物理屬性,如端口名、帶寬、端口IP地址等,最后通過“stc::connect $ChassisIP”來實現與測試機框的連接。
數據流量的配置模塊中,根據測試要求的流量屬性進行配置,這是整個測試例的核心部分。以該測試套為例我們的流量配置部分代碼如下:


另外,對測試套中要求的Vlan配置部分代碼如下:

通過一系列的測試例配置,測試要求的流量屬性基本完成,接下來就是對測試結果的保存,其部分代碼如下:

這樣就將測試所需的數據結果進行保存,其中我們可以將測試結果以xml或tcl的形式導出到指定文件夾:stc::perform saveAsXml -filename "VLAN.xml" 或 者stc::perform saveAsTcl -filename "VLAN.tcl"
測試例運行完保存結果后,最后我們通過對端口的釋放將前面一系列配置進行釋放:

最終測試結果如表1所示。

表1 測試結果
網絡測試是保證網絡性能安全的重要組成部分,實施并部署網絡測試平臺是實現網絡測試自動化的重要步驟。本文所構建的基于TCL的網絡自動化測試系統平臺,通過采用分布式IP網絡測試架構,能較好的完成對待測IP網絡性能進行全面綜合的評估。利用TCL語言來開發測試系統,使得系統的擴展性增強,具有更好的靈活性和可移植性,測試人員可以根據測試需要隨時更改測試過程和測試數據,使測試用例更加全面豐富。該系統成功地對Cisco交換機或路由器進行了相關的功能和性能測試,通過實驗驗證了本系統是有效的,提高了測試的效率。
[1]朱暢華.IP網絡測試和業務性能研究[D].成都:電子科技大學,2004.
[2]秦大勇,吳向東,羅省賢.多極生成的自動化測試框架的中心技術研究與實現[J].電子測試,2008(3).
[3]RFC 2544 Benchmarking Methodology for Network Interconnect Devices[OL].March 1999,http://www.rfceditor.org/rfc/rfc2544.txt.
[4]唐紅,趙國鋒,張毅.IP網絡測試[M].北京:科學出版社,2009.
[5]潘飛,高嶺.網絡測量及其關鍵技術[J].計算機技術與發展,2006,16(07):101-102.
[6]呂雪峰,梅天鳳.網絡測試中海量數據包存儲與處理技術的研究[J].計算機應用,2009,29(03):29-31.
[7]海洋,壽國礎,胡怡紅.基于RFC 2544測試的網絡測試儀的設計與實現[J].計算機工程,2008,13(13):95-97.
[8]趙鋒.IP網絡測試技術[J].電信網技術,2009,1(01):43-44.
[9]尹霞,吳建平.一種路由協議測試框架研究[J].清華大學學報:自然科學版,2001,41(01):81-84.
[10]營志,趙保華,屈玉貴.基于TCL的路由協議一致性測試[J].北京郵電大學學報,2003,26(S):37-41.