目前WLAN就是這樣一種成熟和商用的無線上網解決方案。WLAN業務在美國和歐洲已有越來越廣泛的應用。由于中國商用WLAN發展的相對比較慢,對WLAN測試的需求沒有像傳統的GSM /GPRS/CDMA網絡測試需求那樣旺盛,國內的同類測試軟件比較少,但是隨著網絡的日益普及,WLAN的測試就凸顯重要。
1 WLAN測試及其自動化
1.1 WLAN測試的內容
WLAN測試的主要內容涉及無線網卡的功能測試和性能測試。而無線網卡的功能測試包括IEEE 802.11協議規定的各種網絡模式下、各種加密方式下的加網、掃描以及QoS、WMM等測試;性能測試是指在各種加密方式下、各個信道的WLAN的吞吐率測試。目前WLAN的網絡模式有a,b,e,g,n等以及他們的混合模式,加密方式可分為wep,wpa-psk(ccmp),wpa2-psk(ccmp),wpa-psk(tkip),wpa2-psk(tkip),wpa-psk(ccmp/tkip),wapi-psk等多種加密方式,鑒權方式也分為open system,shared key,wpa-psk,wpa2-psk,wapi-psk,wapi-certificate等,而密鑰類型和長度也可以分為很多種,將上述條件組合,測試用例數量是非常大的。
而在規定的測試周期內,要進行多輪的回歸測試,一方面由于測試內容繁多,很難在較短的時間內去考慮更深層次的測試,另一方面,多輪的回歸測試導致測試人員疲勞,很難保證每輪測試的細致性。
因此一款能將測試人員從重復、繁瑣的測試中解放出來的WLAN自動化測試工具就顯得非常重要。
1.2 傳統的WLAN測試方法
圖1為人工測試WLAN的示意圖。圖中AP端是指無線接入點所在的端,通過手工的Web界面配置來組建我們所需的網絡;STA端是指無線網卡所在的端。從圖中我們可以看出,測試人員需要分別配置AP端和STA端。而STA端的配置根據操作系統的不同、網卡的不同而不同。按照這種方法,測試1.1節介紹的WLAN測試的內容,需要很高的人力成本。
2 WLAN自動化測試平臺總體框架及實現
測試平臺的設備部署情況如圖2所示。整個測試平臺由控制臺、網卡終端群、AP終端群以及Packets服務器四部分組成。
2.1 總體框架
控制臺為測試平臺的核心部分,主要負責終端設備的遠程控制、測試任務的配置以及分發、測試結果的收集與顯示等工作。控制臺通過有線網絡與AP終端群、網卡終端群進行控制流的交互,為了有效隔離無線通信鏈路與有線鏈路的數據流,控制臺可采用雙網卡模式或者VLAN技術進行子網的劃分,確保網卡終端群與AP終端群的有線鏈路隔離。
當測試對象為網卡時,AP終端群作為測試支持設備工作,此時采用固件升級為DD-WRT的AP設備,接收來自控制臺的配置命令來組建不同類型的網絡,以配合網卡終端群完成如加網、漫游、速率等功能的測試。
作為待測試對象時,網卡終端群通過接收來自控制臺的命令執行相應的測試腳本,完成BSS以及IBSS網絡功能的檢測。作為支持設備時,網卡終端群則充當驗證AP設備功能的角色。
Linux認證服務器采用OpenSSL技術提供應用層的認證,為網卡設備加入lli企業級模式提供認證服務。
Packets服務器主要有兩個作用:第一,作為基本的抓包工具,對測試過程中空中特定的包進行捕獲和解析,用以配合功能測試中對測試結果的分析。第二,該服務器充當灰盒級測試功能的主體,通過對底層驅動的修改以及對包的捕獲、過濾、修改、轉發等完成各種極限或特定場景的模擬測試。
在實際過程中,網卡設備工作的環境可以各不相同,如部分終端為Linux環境,部分終端為Windows環境,通過控制臺進行分發不同的測試腳本即可屏蔽測試設備終端的環境差異。
2.2 控制流程
根據測試平臺總體框架,可以將軟件框架分為四個模塊;測試用例管理模塊、平臺通信管理模塊、測試過程管理模塊、測試結果管理模塊,如圖3所示。
測試用例管理模塊負責測試用例的抽取、腳本參數的配置等功能。當配置完成后,通過通信管理模塊將測試腳本以及參數分發給測試平臺中的各個終端設備,接下來,由測試過程管理模塊負責完成整個測試執行工作,同時記錄測試執行的結果以及日志等信息,最后由測試結果管理模塊對測試結果進行提取與分析,形成最終的測試報告。
在各個功能模塊中,平臺通信管理模塊是基礎,為其他模塊提供了控制通路。測試過程管理模塊對整個測試過程進行凋控,實現測試過程的自動化,保證過程的順利完成。
3 WLAN自動化測試工具的實際應用
本系統控制端運行在Linux操作系統下,采用Glade+Gtk技術完成主控界面的開發。通過主控端分別Telnet到AP端和STA端,并采用Expe ct技術分別完成與AP端和STA端的交互,主控端作為橋梁,進而可以完成AP端與STA端的交互,保證了時間同步性。測試執行完成后,可以在主控端收集、查看測試日志,并生成測試報告。
3.1 自動化測試平臺的具體實現
3.1.1 遠程控制
(1)AP控制。當網卡作為待測試設備時,需要借助于第三方的AP設備來完成基本功能的測試,而目前市面上的AP設備大都是采用Web界面進行配置,即使提供了Telnet等遠程控制服務,由于廠家處于商業層面的考慮,使用者也很難獲取其內部的配置接口。
在實現的過程中,采用開源的DD-WRT固件來升級測試平臺內的AP設備,通過DD-WRT的公共接口命令來實現對AP設備的配置。
(2)網卡控制。當AP作為待測試設備時,需要借助于第三方的網卡設備來完成基本的功能測試。對于工作在Linux平臺的網卡,由于源代碼為開源,實現配置與控制比較容易;對于工作在Windows平臺的網卡,可以采用Native Wifi API構建控制臺程序,結合XML形式的無線配置文件Wireless Profile進行綜合的控制。
(3)認證服務器控制。對于lli證書模式的測試,必須采用認證服務器。認證服務器有兩種實現方式,一種是采用Windows Server系列所提供的服務構建,另一種是采用Linux平臺配置OpenSSL。前者的操作較為復雜,不便于遠程控制,因此本系統擬采用后者的方式構建認證服務器。
3.1.2 時間同步
測試過程中,需要對平臺內的不同終端進行配置,如執行聯網的測試時,首先要配置AP組建相應的網絡,確保成功后再配置網卡進行聯網操作。因此在測試過程中,如何界定事件結束的時間是一個關鍵的問題,需要一種交互式的控制方式以反饋執行的狀態或結果。
Shell命令可以實現簡單的控制流功能,但無法完成需要交互的場合,而Expect可以實現自動與交互式任務進行通信,而無需人為干預,因此在實現時將采用兩者相結合的方式來完成不同終端以及同一終端不同測試項之間的同步控制。
3.1.3 平臺無關性
測試平臺要同時考慮待測設備工作在Windows以及Linux兩種平臺環境下的測試,由于兩種平臺環境本身存在差異,而且即使相同平臺環境下也存在不同版本,使得兼容以上所有平臺環境存在一定的難度。
現在將AP端和STA端的測試腳本及控制操作都放在控制端,做到與待測設備隔離,使控制臺完成所有與測試相關的控制、配置任務,而待測終端只進行控制命令的接收和執行,這樣就保證了測試平臺不依賴于具體的待測設備終端系統。
3.1.4 用例腳本化
一方面,平臺無關性要求將與平臺系統環境相關的測試命令進行相應的歸類和抽取,另一方面,測試過程中測試終端之間的控制同步對命令的批量處理也有一定的要求。此外,為了提高用例的復用度,將測試用例腳本化是一個必然的要求。
3.1.5 包分發與捕獲
一方面,對于測試過程中特定用例的幀交互過程進行檢查,需要對空中包進行捕獲與過濾;另一方面,對于灰盒級的測試,需要模擬各種場景,勢必要借助于空中包分發裝置來完成。
3.2 主控端具體實現
采用Gtk+Glade完成控制端的主控界面。圖4~圖6分別為基本配置界面、功能測試控制界面和測試報告的顯示界面。從圖4可以看出,主控界面主要由基本配置、功能測試、性能測試、穩定性測試、測試結果等幾個子項組成。在功能測試控制界面,可以選擇單個測試用例的執行,也可以選擇部分或者所有測試用例的執行。每完成一個測試用例,在主控界面上會顯示測試結果是成功還是失敗。選擇好需執行的用例,然后點擊圖5中的“run test”按鈕即可。
從圖6可以看出,通過在主控端查閱測試報告,可以查閱測試用例執行的詳細過程。以加網為例,不僅可以查閱所加網絡的具體信息,還可以查閱具體執行到了哪一步,這樣可以幫助解決定位問題。
4 結語
本文介紹的WLAN自動化測試平臺,采用Linux作為控制端,遠程Telnet AP端和STA端,分別通過腳本配置AP端和STA端,并控制他們之間的交互。該平臺可以實現自動化配置AP、自動化配置STA、自動執行測試用例、自動搜集測試日志、自動生成測試報告,從而大大節約了人力成本,提高了工作效率。
評論
查看更多