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