一種WLAN自動化測試平臺的設計及實現(xiàn)
2.1 總體框架
控制臺為測試平臺的核心部分,主要負責終端設備的遠程控制、測試任務的配置以及分發(fā)、測試結(jié)果的收集與顯示等工作??刂婆_通過有線網(wǎng)絡與AP終端群、網(wǎng)卡終端群進行控制流的交互,為了有效隔離無線通信鏈路與有線鏈路的數(shù)據(jù)流,控制臺可采用雙網(wǎng)卡模式或者VLAN技術(shù)進行子網(wǎng)的劃分,確保網(wǎng)卡終端群與AP終端群的有線鏈路隔離。
當測試對象為網(wǎng)卡時,AP終端群作為測試支持設備工作,此時采用固件升級為DD-WRT的AP設備,接收來自控制臺的配置命令來組建不同類型的網(wǎng)絡,以配合網(wǎng)卡終端群完成如加網(wǎng)、漫游、速率等功能的測試。
作為待測試對象時,網(wǎng)卡終端群通過接收來自控制臺的命令執(zhí)行相應的測試腳本,完成BSS以及IBSS網(wǎng)絡功能的檢測。作為支持設備時,網(wǎng)卡終端群則充當驗證AP設備功能的角色。
Linux認證服務器采用OpenSSL技術(shù)提供應用層的認證,為網(wǎng)卡設備加入lli企業(yè)級模式提供認證服務。
Packets服務器主要有兩個作用:第一,作為基本的抓包工具,對測試過程中空中特定的包進行捕獲和解析,用以配合功能測試中對測試結(jié)果的分析。第二,該服務器充當灰盒級測試功能的主體,通過對底層驅(qū)動的修改以及對包的捕獲、過濾、修改、轉(zhuǎn)發(fā)等完成各種極限或特定場景的模擬測試。
在實際過程中,網(wǎng)卡設備工作的環(huán)境可以各不相同,如部分終端為Linux環(huán)境,部分終端為Windows環(huán)境,通過控制臺進行分發(fā)不同的測試腳本即可屏蔽測試設備終端的環(huán)境差異。
2.2 控制流程
根據(jù)測試平臺總體框架,可以將軟件框架分為四個模塊;測試用例管理模塊、平臺通信管理模塊、測試過程管理模塊、測試結(jié)果管理模塊,如圖3所示。本文引用地址:http://butianyuan.cn/article/194002.htm
測試用例管理模塊負責測試用例的抽取、腳本參數(shù)的配置等功能。當配置完成后,通過通信管理模塊將測試腳本以及參數(shù)分發(fā)給測試平臺中的各個終端設備,接下來,由測試過程管理模塊負責完成整個測試執(zhí)行工作,同時記錄測試執(zhí)行的結(jié)果以及日志等信息,最后由測試結(jié)果管理模塊對測試結(jié)果進行提取與分析,形成最終的測試報告。
在各個功能模塊中,平臺通信管理模塊是基礎,為其他模塊提供了控制通路。測試過程管理模塊對整個測試過程進行凋控,實現(xiàn)測試過程的自動化,保證過程的順利完成。
3 WLAN自動化測試工具的實際應用
本系統(tǒng)控制端運行在Linux操作系統(tǒng)下,采用Glade+Gtk技術(shù)完成主控界面的開發(fā)。通過主控端分別Telnet到AP端和STA端,并采用Expe ct技術(shù)分別完成與AP端和STA端的交互,主控端作為橋梁,進而可以完成AP端與STA端的交互,保證了時間同步性。測試執(zhí)行完成后,可以在主控端收集、查看測試日志,并生成測試報告。
3.1 自動化測試平臺的具體實現(xiàn)
3.1.1 遠程控制
(1)AP控制。當網(wǎng)卡作為待測試設備時,需要借助于第三方的AP設備來完成基本功能的測試,而目前市面上的AP設備大都是采用Web界面進行配置,即使提供了Telnet等遠程控制服務,由于廠家處于商業(yè)層面的考慮,使用者也很難獲取其內(nèi)部的配置接口。
在實現(xiàn)的過程中,采用開源的DD-WRT固件來升級測試平臺內(nèi)的AP設備,通過DD-WRT的公共接口命令來實現(xiàn)對AP設備的配置。
(2)網(wǎng)卡控制。當AP作為待測試設備時,需要借助于第三方的網(wǎng)卡設備來完成基本的功能測試。對于工作在Linux平臺的網(wǎng)卡,由于源代碼為開源,實現(xiàn)配置與控制比較容易;對于工作在Windows平臺的網(wǎng)卡,可以采用Native Wifi API構(gòu)建控制臺程序,結(jié)合XML形式的無線配置文件Wireless Profile進行綜合的控制。
(3)認證服務器控制。對于lli證書模式的測試,必須采用認證服務器。認證服務器有兩種實現(xiàn)方式,一種是采用Windows Server系列所提供的服務構(gòu)建,另一種是采用Linux平臺配置OpenSSL。前者的操作較為復雜,不便于遠程控制,因此本系統(tǒng)擬采用后者的方式構(gòu)建認證服務器。
3.1.2 時間同步
測試過程中,需要對平臺內(nèi)的不同終端進行配置,如執(zhí)行聯(lián)網(wǎng)的測試時,首先要配置AP組建相應的網(wǎng)絡,確保成功后再配置網(wǎng)卡進行聯(lián)網(wǎng)操作。因此在測試過程中,如何界定事件結(jié)束的時間是一個關(guān)鍵的問題,需要一種交互式的控制方式以反饋執(zhí)行的狀態(tài)或結(jié)果。
Shell命令可以實現(xiàn)簡單的控制流功能,但無法完成需要交互的場合,而Expect可以實現(xiàn)自動與交互式任務進行通信,而無需人為干預,因此在實現(xiàn)時將采用兩者相結(jié)合的方式來完成不同終端以及同一終端不同測試項之間的同步控制。
3.1.3 平臺無關(guān)性
測試平臺要同時考慮待測設備工作在Windows以及Linux兩種平臺環(huán)境下的測試,由于兩種平臺環(huán)境本身存在差異,而且即使相同平臺環(huán)境下也存在不同版本,使得兼容以上所有平臺環(huán)境存在一定的難度。
現(xiàn)在將AP端和STA端的測試腳本及控制操作都放在控制端,做到與待測設備隔離,使控制臺完成所有與測試相關(guān)的控制、配置任務,而待測終端只進行控制命令的接收和執(zhí)行,這樣就保證了測試平臺不依賴于具體的待測設備終端系統(tǒng)。
3.1.4 用例腳本化
一方面,平臺無關(guān)性要求將與平臺系統(tǒng)環(huán)境相關(guān)的測試命令進行相應的歸類和抽取,另一方面,測試過程中測試終端之間的控制同步對命令的批量處理也有一定的要求。此外,為了提高用例的復用度,將測試用例腳本化是一個必然的要求。
3.1.5 包分發(fā)與捕獲
一方面,對于測試過程中特定用例的幀交互過程進行檢查,需要對空中包進行捕獲與過濾;另一方面,對于灰盒級的測試,需要模擬各種場景,勢必要借助于空中包分發(fā)裝置來完成。
評論