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