摘 要:隨著WLAN(無線局域網(wǎng))業(yè)務(wù)的日益普及,WLAN測試顯得尤為重要。而傳統(tǒng)的WLAN測試方法以人工測試為主。人工測試存在效率低、測試覆蓋率得不到保障等缺點(diǎn)。介紹了一種WLAN自動化測試平臺的設(shè)計與實(shí)現(xiàn)。采用Linux作為控制端,遠(yuǎn)程Telnet AP(Access Point)端和STA(station)端,分別通過腳本配置AP端和STA端,并控制他們之間的交互。 該平臺可實(shí)現(xiàn)跨平臺、自動配置AP和STA、自動搜集日志、自動生成測試報告,從而大大節(jié)約了人力成本,提高了工作效率。
關(guān)鍵詞:WLAN; 自動化測試; Telnet; GTK
中圖分類號:TN915.06-34; TP273.5
文獻(xiàn)標(biāo)識碼:A
文章編號:1004-373X(2012)01-0150-03
Design and implementation of WLAN automated testing platform
LI Xin-wei, WANG Ling-ling
(Beijing CEC Huada Electronic Design Co. Ltd., Beijing 100102, China)
Abstract:
As WLAN (wireless LAN) service grows popular, WLAN test is becoming more and more important. The traditional method of WLAN test is manual test. As we all know, the disadvantages of manual test are low efficiency and unstable test coverage. The design and implementation of WLAN automated testing platform is introduced. The system used Linux as the control side, and configured remote telnet AP and STA terminal by scripts and controlled the interaction between them. The platform can realize cross-platform, automatically configure AP and STA, automatically collect logs, automatically generate test report, which greatly save labor costs and improve work efficiency.
Keywords: WLAN; automated testing; Telnet; GTK
收稿日期:2011-08-25
0 引 言
隨著越來越多的企業(yè)和個人用戶使用無線局域網(wǎng),無線網(wǎng)卡成為筆記本電腦的標(biāo)準(zhǔn)內(nèi)置,以及無處不在的互聯(lián)網(wǎng)絡(luò),無線上網(wǎng)已成為潮流,無線上網(wǎng)的人數(shù)迅速上升,人們越來越依賴網(wǎng)絡(luò)的習(xí)慣導(dǎo)致對無線網(wǎng)絡(luò)的迫切需求也隨之加劇。目前WLAN就是這樣一種成熟和商用的無線上網(wǎng)解決方案。WLAN業(yè)務(wù)在美國和歐洲已有越來越廣泛的應(yīng)用。由于中國商用WLAN發(fā)展的相對比較慢,對WLAN測試的需求沒有像傳統(tǒng)的GSM/GPRS/CDMA網(wǎng)絡(luò)測試需求那樣旺盛,國內(nèi)的同類測試軟件比較少,但是隨著網(wǎng)絡(luò)的日益普及,WLAN的測試就凸顯重要。
1 WLAN測試及其自動化
1.1 WLAN測試的內(nèi)容
WLAN測試的主要內(nèi)容涉及無線網(wǎng)卡的功能測試和性能測試。而無線網(wǎng)卡的功能測試包括IEEE 802.11協(xié)議規(guī)定的各種網(wǎng)絡(luò)模式下、各種加密方式下的加網(wǎng)、掃描以及QoS、WMM等測試;性能測試是指在各種加密方式下、各個信道的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等[1],而密鑰類型和長度也可以分為很多種,將上述條件組合,測試用例數(shù)量是非常大的。
而在規(guī)定的測試周期內(nèi),要進(jìn)行多輪的回歸測試,一方面由于測試內(nèi)容繁多,很難在較短的時間內(nèi)去考慮更深層次的測試,另一方面,多輪的回歸測試導(dǎo)致測試人員疲勞,很難保證每輪測試的細(xì)致性。
因此一款能將測試人員從重復(fù)、繁瑣的測試中解放出來的WLAN自動化測試工具就顯得非常重要。
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)容,需要很高的人力成本。
圖1 人工測試WLAN示意圖
2 WLAN自動化測試平臺總體框架及實(shí)現(xiàn)
測試平臺的設(shè)備部署情況如圖2所示。整個測試平臺由控制臺、網(wǎng)卡終端群、AP終端群以及Packets服務(wù)器四部分組成。
2.1 總體框架
控制臺為測試平臺的核心部分,主要負(fù)責(zé)終端設(shè)備的遠(yuǎn)程控制、測試任務(wù)的配置以及分發(fā)、測試結(jié)果的收集與顯示等工作??刂婆_通過有線網(wǎng)絡(luò)與AP終端群、網(wǎng)卡終端群進(jìn)行控制流的交互,為了有效隔離無線通信鏈路與有線鏈路的數(shù)據(jù)流,控制臺可采用雙網(wǎng)卡模式或者VLAN技術(shù)進(jìn)行子網(wǎng)的劃分,確保網(wǎng)卡終端群與AP終端群的有線鏈路隔離。
圖2 WLAN測試平臺部署示意圖
當(dāng)測試對象為網(wǎng)卡時,AP終端群作為測試支持設(shè)備工作,此時采用固件升級為DD-WRT的AP設(shè)備,接收來自控制臺的配置命令來組建不同類型的網(wǎng)絡(luò),以配合網(wǎng)卡終端群完成如加網(wǎng)、漫游、速率等功能的測試。
作為待測試對象時,網(wǎng)卡終端群通過接收來自控制臺的命令執(zhí)行相應(yīng)的測試腳本,完成BSS以及IBSS網(wǎng)絡(luò)功能的檢測。作為支持設(shè)備時,網(wǎng)卡終端群則充當(dāng)驗(yàn)證AP設(shè)備功能的角色。
Linux認(rèn)證服務(wù)器采用OpenSSL技術(shù)提供應(yīng)用層的認(rèn)證,為網(wǎng)卡設(shè)備加入11i企業(yè)級模式提供認(rèn)證服務(wù)。
Packets服務(wù)器主要有兩個作用:第一,作為基本的抓包工具,對測試過程中空中特定的包進(jìn)行捕獲和解析,用以配合功能測試中對測試結(jié)果的分析。第二,該服務(wù)器充當(dāng)灰盒級測試功能的主體,通過對底層驅(qū)動的修改以及對包的捕獲、過濾、修改、轉(zhuǎn)發(fā)等完成各種極限或特定場景的模擬測試。
在實(shí)際過程中,網(wǎng)卡設(shè)備工作的環(huán)境可以各不相同,如部分終端為Linux環(huán)境,部分終端為Windows環(huán)境,通過控制臺進(jìn)行分發(fā)不同的測試腳本即可屏蔽測試設(shè)備終端的環(huán)境差異。
2.2 控制流程
根據(jù)測試平臺總體框架,可以將軟件框架分為四個模塊:測試用例管理模塊、平臺通信管理模塊、測試過程管理模塊、測試結(jié)果管理模塊,如圖3所示。
圖3 WLAN測試平臺控制流程圖
測試用例管理模塊負(fù)責(zé)測試用例的抽取、腳本參數(shù)的配置等功能。當(dāng)配置完成后,通過通信管理模塊將測試腳本以及參數(shù)分發(fā)給測試平臺中的各個終端設(shè)備,接下來,由測試過程管理模塊負(fù)責(zé)完成整個測試執(zhí)行工作,同時記錄測試執(zhí)行的結(jié)果以及日志等信息,最后由測試結(jié)果管理模塊對測試結(jié)果進(jìn)行提取與分析,形成最終的測試報告。
在各個功能模塊中,平臺通信管理模塊是基礎(chǔ),為其他模塊提供了控制通路。測試過程管理模塊對整個測試過程進(jìn)行調(diào)控,實(shí)現(xiàn)測試過程的自動化,保證過程的順利完成。
3 WLAN自動化測試工具的實(shí)際應(yīng)用
本系統(tǒng)控制端運(yùn)行在Linux操作系統(tǒng)下,采用Glade+Gtk[2]技術(shù)完成主控界面的開發(fā)。通過主控端分別Telnet[3]到AP端和STA端,并采用Expect[4]技術(shù)分別完成與AP端和STA端的交互,主控端作為橋梁,進(jìn)而可以完成AP端與STA端的交互,保證了時間同步性。測試執(zhí)行完成后,可以在主控端收集、查看測試日志,并生成測試報告。
3.1 自動化測試平臺的具體實(shí)現(xiàn)
3.1.1 遠(yuǎn)程控制
(1) AP控制。當(dāng)網(wǎng)卡作為待測試設(shè)備時,需要借助于第三方的AP設(shè)備來完成基本功能的測試,而目前市面上的AP設(shè)備大都是采用Web界面進(jìn)行配置,即使提供了Telnet等遠(yuǎn)程控制服務(wù),由于廠家處于商業(yè)層面的考慮,使用者也很難獲取其內(nèi)部的配置接口。
在實(shí)現(xiàn)的過程中,采用開源的DD-WRT固件來升級測試平臺內(nèi)的AP設(shè)備,通過DD-WRT的公共接口命令來實(shí)現(xiàn)對AP設(shè)備的配置。
(2) 網(wǎng)卡控制。當(dāng)AP作為待測試設(shè)備時,需要借助于第三方的網(wǎng)卡設(shè)備來完成基本的功能測試。對于工作在Linux平臺的網(wǎng)卡,由于源代碼為開源,實(shí)現(xiàn)配置與控制比較容易;對于工作在Windows平臺的網(wǎng)卡,可以采用Native Wifi API[5]構(gòu)建控制臺程序,結(jié)合XML形式的無線配置文件Wireless Profile進(jìn)行綜合的控制。
(3) 認(rèn)證服務(wù)器控制。對于11i證書模式的測試,必須采用認(rèn)證服務(wù)器。認(rèn)證服務(wù)器有兩種實(shí)現(xiàn)方式,一種是采用Windows Server系列所提供的服務(wù)構(gòu)建,另一種是采用Linux平臺配置OpenSSL。前者的操作較為復(fù)雜,不便于遠(yuǎn)程控制,因此本系統(tǒng)擬采用后者的方式構(gòu)建認(rèn)證服務(wù)器。
3.1.2 時間同步
測試過程中,需要對平臺內(nèi)的不同終端進(jìn)行配置,如執(zhí)行聯(lián)網(wǎng)的測試時,首先要配置AP組建相應(yīng)的網(wǎng)絡(luò),確保成功后再配置網(wǎng)卡進(jìn)行聯(lián)網(wǎng)操作。因此在測試過程中,如何界定事件結(jié)束的時間是一個關(guān)鍵的問題,需要一種交互式的控制方式以反饋執(zhí)行的狀態(tài)或結(jié)果。
Shell命令可以實(shí)現(xiàn)簡單的控制流功能,但無法完成需要交互的場合,而Expect可以實(shí)現(xiàn)自動與交互式任務(wù)進(jìn)行通信,而無需人為干預(yù),因此在實(shí)現(xiàn)時將采用兩者相結(jié)合的方式來完成不同終端以及同一終端不同測試項之間的同步控制[6]。
3.1.3 平臺無關(guān)性
測試平臺要同時考慮待測設(shè)備工作在Windows以及Linux兩種平臺環(huán)境下的測試,由于兩種平臺環(huán)境本身存在差異,而且即使相同平臺環(huán)境下也存在不同版本,使得兼容以上所有平臺環(huán)境存在一定的難度。
現(xiàn)在將AP端和STA端的測試腳本及控制操作都放在控制端,做到與待測設(shè)備隔離,使控制臺完成所有與測試相關(guān)的控制、配置任務(wù),而待測終端只進(jìn)行控制命令的接收和執(zhí)行,這樣就保證了測試平臺不依賴于具體的待測設(shè)備終端系統(tǒng)。
3.1.4 用例腳本化
一方面,平臺無關(guān)性要求將與平臺系統(tǒng)環(huán)境相關(guān)的測試命令進(jìn)行相應(yīng)的歸類和抽取,另一方面,測試過程中測試終端之間的控制同步對命令的批量處理也有一定的要求。此外,為了提高用例的復(fù)用度,將測試用例腳本化是一個必然的要求。
3.1.5 包分發(fā)與捕獲
一方面,對于測試過程中特定用例的幀交互過程進(jìn)行檢查,需要對空中包進(jìn)行捕獲與過濾;另一方面,對于灰盒級的測試,需要模擬各種場景,勢必要借助于空中包分發(fā)裝置來完成。
3.2 主控端具體實(shí)現(xiàn)
采用Gtk+Glade完成控制端的主控界面。圖4~圖6分別為基本配置界面、功能測試控制界面和測試報告的顯示界面。從圖4可以看出,主控界面主要由基本配置、功能測試、性能測試、穩(wěn)定性測試、測試結(jié)果等幾個子項組成。在功能測試控制界面,可以選擇單個測試用例的執(zhí)行,也可以選擇部分或者所有測試用例的執(zhí)行。每完成一個測試用例,在主控界面上會顯示測試結(jié)果是成功還是失敗。選擇好需執(zhí)行的用例,然后點(diǎn)擊圖5中的“run test”按鈕即可。
圖6 自動化測試平臺主控界面——測試報告查詢
從圖6可以看出,通過在主控端查閱測試報告,可以查閱測試用例執(zhí)行的詳細(xì)過程。以加網(wǎng)為例,不僅可以查閱所加網(wǎng)絡(luò)的具體信息,還可以查閱具體執(zhí)行到了哪一步,這樣可以幫助解決定位問題。
4 結(jié) 語
本文介紹的WLAN自動化測試平臺,采用Linux作為控制端,遠(yuǎn)程Telnet AP端和STA端,分別通過腳本配置AP端和STA端,并控制他們之間的交互。 該
平臺可以實(shí)現(xiàn)自動化配置AP、自動化配置STA、自動執(zhí)行測試用例、自動搜集測試日志、自動生成測試報告,從而大大節(jié)約了人力成本,提高了工作效率。
參 考 文 獻(xiàn)
[1]金純,陳林星,楊吉云.IEEE 802.11無線局域網(wǎng)[M].北京:電子工業(yè)出版社,2004.
[2]KRAUSE Andrew. Foundations of GTK+ development [M]. [S.l.]: Apress, 2007.
[3]閔紅星.TELNET協(xié)議及其應(yīng)用[J].交通與計算機(jī),1999,17(4):29-32.
[4]LIBES D. \"Expect\", Tcl/Tk Extensions [M]. [S.l.]: O′Reilly Associates Inc., 1997.
[5]LIBES D. automation and testing of interactive character graphic programs [J]. Software-practice and Experience, 1997, 27(2): 123-137.
[6]FAUGHT D. Testing interactive programs [J]. Software QA Magazine, 1996, 3(1).