汪恬 孟憲軍
Wi-Fi吞吐量自動(dòng)測(cè)試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
汪恬 孟憲軍
(上海諾基亞貝爾軟件有限公司)
針對(duì)Wi-Fi吞吐量手動(dòng)測(cè)試效率低的問(wèn)題,提出一種Wi-Fi吞吐量自動(dòng)測(cè)試系統(tǒng)。該系統(tǒng)根據(jù)指定的吞吐量測(cè)試類型構(gòu)建測(cè)試環(huán)境,配置環(huán)境參數(shù),并以圖表形式呈現(xiàn)測(cè)試結(jié)果;支持單組、產(chǎn)品對(duì)比和版本對(duì)比吞吐量測(cè)試。測(cè)試結(jié)果表明:該系統(tǒng)能夠提高測(cè)試效率、節(jié)約人力成本和測(cè)試時(shí)間;對(duì)比測(cè)試的結(jié)果為研發(fā)人員定位問(wèn)題提供了數(shù)據(jù)參考;較低的復(fù)制成本可廣泛應(yīng)用于設(shè)備供應(yīng)商Wi-Fi產(chǎn)品測(cè)試中。
自動(dòng)化測(cè)試;Wi-Fi吞吐量;自動(dòng)測(cè)試系統(tǒng)
Wi-Fi已經(jīng)成為人們生活的必備品,幾乎每個(gè)家庭都配備了無(wú)線路由器。無(wú)線網(wǎng)絡(luò)對(duì)環(huán)境以及與接入點(diǎn)之間的距離非常敏感。無(wú)論是家庭環(huán)境還是擁有更多無(wú)線局域網(wǎng)接入點(diǎn)的商業(yè)環(huán)境,都須保證終端用戶在不同距離下維持足夠的上行和下行速率[1]。吞吐量是體現(xiàn)網(wǎng)絡(luò)通信性能的一種重要指標(biāo)[2],也是衡量Wi-Fi產(chǎn)品好壞的一個(gè)重要標(biāo)志。隨著Wi-Fi需求的日益增長(zhǎng)[3],軟件開(kāi)發(fā)復(fù)雜度也不斷增加,開(kāi)發(fā)過(guò)程中引入的缺陷也提高了很多倍[4]。因此,測(cè)試人員需要不斷重復(fù)地對(duì)Wi-Fi吞吐量進(jìn)行測(cè)試,以期為用戶提供更高質(zhì)量的Wi-Fi產(chǎn)品和最佳體驗(yàn)感。
文獻(xiàn)[5]統(tǒng)計(jì)了開(kāi)發(fā)項(xiàng)目中軟件測(cè)試的投入成本,測(cè)試費(fèi)用約占整個(gè)項(xiàng)目費(fèi)用的30%~50%。在實(shí)際測(cè)試過(guò)程中,自動(dòng)化程度較低,多為手動(dòng)測(cè)試。測(cè)試人員面臨搭建測(cè)試環(huán)境、測(cè)試過(guò)程繁雜以及測(cè)試效率低等問(wèn)題[6]。采用自動(dòng)化測(cè)試是降低軟件測(cè)試難度的有效手段[7]。
目前,Wi-Fi吞吐量自動(dòng)測(cè)試系統(tǒng)主要是儀表設(shè)備商開(kāi)發(fā)集成在儀表設(shè)備中,如Spirent,octoScope等。儀表設(shè)備的Wi-Fi吞吐量測(cè)試基于固定測(cè)試環(huán)境完成,昂貴的價(jià)格、有限的功能擴(kuò)展模塊等問(wèn)題無(wú)法滿足設(shè)備供應(yīng)商多平臺(tái)和可變測(cè)試場(chǎng)景的需求。為此,本文提出一種Wi-Fi吞吐量自動(dòng)測(cè)試系統(tǒng),可實(shí)現(xiàn)空間流、頻段、帶寬、信道、TCP/UDP、Uplink和Downlink多種組合的單組吞吐量測(cè)試、不同產(chǎn)品吞吐量對(duì)比測(cè)試和相同產(chǎn)品不同版本吞吐量對(duì)比測(cè)試。


圖1 Wi-Fi吞吐量自動(dòng)測(cè)試系統(tǒng)硬件組成
控制系統(tǒng)PC作為軟件實(shí)現(xiàn)的控制臺(tái),有線連接無(wú)線路由器LAN口,遠(yuǎn)程控制無(wú)線Station控制系統(tǒng) PC和衰減器控制系統(tǒng),驅(qū)動(dòng)Wi-Fi吞吐量測(cè)試的流程。控制系統(tǒng)PC控制iperf生成數(shù)據(jù)流,與無(wú)線Station控制系統(tǒng) PC的iperf數(shù)據(jù)流生成模塊相互配合完成Uplink或Downlink吞吐量測(cè)試。
Wi-Fi吞吐量自動(dòng)測(cè)試系統(tǒng)軟件組成如圖2所示,由系統(tǒng)控制模塊、配置管理模塊、衰減器模塊、無(wú)線Station控制模塊、數(shù)據(jù)流生成模塊和數(shù)據(jù)模塊組成。
1)系統(tǒng)控制模塊根據(jù)測(cè)試人員輸入的吞吐量測(cè)試類型,自動(dòng)調(diào)配相關(guān)模塊完成吞吐量測(cè)試。
2)配置管理模塊完成無(wú)線路由器信道、帶寬、工作模式等參數(shù)配置。

圖2 吞吐量自動(dòng)測(cè)試系統(tǒng)軟件組成框圖
3)衰減器模塊設(shè)置衰減器通道值,模擬無(wú)線Station與待測(cè)無(wú)線路由器之間的不同距離。
4)無(wú)線Station控制模塊完成Station自動(dòng)連接待測(cè)無(wú)線路由器。
5)數(shù)據(jù)流生成模塊用iperf設(shè)定包的大小和速率,接收和發(fā)送TCP或UDP數(shù)據(jù)流量。
6)數(shù)據(jù)模塊對(duì)吞吐量結(jié)果分析,獲取吞吐量值并描繪單組距離與吞吐量的曲線圖、不同產(chǎn)品的距離與吞吐量的對(duì)比曲線圖和相同產(chǎn)品不同版本的距離與吞吐量的對(duì)比曲線圖。
根據(jù)Wi-Fi吞吐量測(cè)試需求對(duì)無(wú)線路由器頻段、帶寬、信道和無(wú)線模式等參數(shù)進(jìn)行設(shè)置。無(wú)線路由器提供頁(yè)面管理界面供用戶配置。配置管理模塊的軟件基于Python selenium庫(kù)配置無(wú)線參數(shù),針對(duì)不同產(chǎn)品型號(hào)無(wú)線路由器配置頁(yè)面的差異性,預(yù)留配置接口提高了系統(tǒng)的通用性。無(wú)線路由器的配置代碼實(shí)現(xiàn)如下:
//登錄無(wú)線路由器
Login_authentication ()
//進(jìn)入無(wú)線參數(shù)配置頁(yè)面
browser. get(wificonfig_url)
//設(shè)置帶寬
Select(browser.find_element_by_name("wl_ NChannelwidth")).select_by_visible_text(wificonfig ['Bandwidth'])
//設(shè)置信道
Select(browser.find_element_by_name("wl_ channel")).select_by_visible_text(wificonfig['Channel'])
衰減器提供管理頁(yè)面和命令行2種方式配置衰減值,開(kāi)放遠(yuǎn)程登陸權(quán)限,如SSH,telnet等。衰減器控制模塊代碼實(shí)現(xiàn)如下:
//衰減器設(shè)置命令
set_cmd='ATT 1 %s 2 %s 3 %s 4 %s 5 %s 6 %s 7 %s 8 %s 9 %s 10 %s' %(att_value1, att_value2, att_value3, att_value4, att_value5, att_value6, att_value7, att_value8, att_value9, att_value10)
//telnet登錄衰減器,返回句柄
att_holder=Login_attenuator(att_ip,att_username, att_password)
//輸入衰減器設(shè)置命令
att_holder.write(set_cmd.encode('ascii'))
無(wú)線Station自動(dòng)連接到待測(cè)無(wú)線路由器是根據(jù)加密模式、SSID、密鑰等參數(shù)創(chuàng)建無(wú)線配置文件實(shí)現(xiàn),本文定義為SSID_Profile.xml。自動(dòng)連接無(wú)線路由器的代碼實(shí)現(xiàn)如下:
//遠(yuǎn)程登錄無(wú)線Station控制主機(jī)
sta_holder=Login_STA(sta_ip,sta_username, sta_ password)
//連接無(wú)線路由器之前刪除原有的profile
delete_profile_cmd='netsh wlan delete profile * interface="%s"' % (wireless_card_name)
//添加新創(chuàng)建的無(wú)線配置文件SSID_Profile.xml
sta_holder. write(delete_profile_cmd.encode('ascii'))
add_profile_cmd='netsh wlan add profile filename=os.path.join(%s,"SSID_Profile.xml") interface="%s"' % (profile_dir, wireless_card_name)
//循環(huán)獲取無(wú)線網(wǎng)卡的連接狀態(tài)
output_profile_status=sta_holder.write(add_profile_cmd.encode('ascii'))
//循環(huán)獲取無(wú)線網(wǎng)卡IP
get_wireless_cmd = “netsh wlan show interfaces”
output_wireless_status=Cycle_check_wireless_ status(get_wireless_cmd)
get_ip_cmd='netsh interface ip show addresses "%s"' % (wireless_card_name)
out_ip_result =Cycle_check_ip(get_ip_cmd)
Uplink和Downlink數(shù)據(jù)流向示意圖如圖3所示。Uplink吞吐量測(cè)試的服務(wù)器端是無(wú)線路由器,客戶端是無(wú)線Station。Downlink吞吐量測(cè)試的服務(wù)器端是無(wú)線Station,客戶端是無(wú)線路由器。

//服務(wù)器端iperf命令
iperf_server_command=' iperf.exe -i 1 -w 4M - p 5005'
//客戶端iperf命令
iperf_client_commad=' iperf.exe -i 1 -w 4M -t 30 - P 2 -p 5005 -c
//線程執(zhí)行服務(wù)器端iperf命令和客戶端iperf命令
Functions.start_iperf_thread(Console.winExeCmd( Iperf_server_command),Sta.winStartIperfThread(Iperf_ client_commad))

圖3 Uplink和Downlink數(shù)據(jù)流向示意圖

表1 Wi-Fi吞吐量測(cè)試類型

續(xù)表
Wi-Fi吞吐量自動(dòng)測(cè)試系統(tǒng)工作流程如圖4所示。根據(jù)測(cè)試人員輸入的吞吐量測(cè)試類型執(zhí)行測(cè)試用例、構(gòu)建測(cè)試環(huán)境和生成測(cè)試結(jié)果。測(cè)試用例包含初始化測(cè)試結(jié)果、初始化衰減器、調(diào)節(jié)衰減器通道值、生成數(shù)據(jù)流、記錄吞吐量和衰減值。
單組Wi-Fi吞吐量測(cè)試在所有測(cè)試用例執(zhí)行結(jié)束后生成單組距離與吞吐量的曲線圖;版本對(duì)比Wi-Fi吞吐量測(cè)試在執(zhí)行測(cè)試用例前依次升級(jí)版本,所有版本的測(cè)試用例執(zhí)行結(jié)束后,生成不同版本距離與吞吐量的對(duì)比曲線圖;產(chǎn)品對(duì)比Wi-Fi吞吐量測(cè)試在執(zhí)行測(cè)試用例前,依次切換到待測(cè)無(wú)線路由器,所有產(chǎn)品的測(cè)試用例執(zhí)行結(jié)束后,生成不同產(chǎn)品距離與吞吐量的對(duì)比曲線圖。

圖4 吞吐量自動(dòng)測(cè)試流程示意圖
用Wi-Fi吞吐量自動(dòng)測(cè)試系統(tǒng)進(jìn)行A無(wú)線路由器與B無(wú)線路由器的吞吐量對(duì)比測(cè)試,測(cè)試信息如表2所示。

表2 測(cè)試實(shí)例信息表
分別對(duì)手動(dòng)測(cè)試、儀表測(cè)試和Wi-Fi自動(dòng)測(cè)試系統(tǒng)進(jìn)行吞吐量對(duì)比測(cè)試,對(duì)比測(cè)試結(jié)果如表3、表4所示。由表3可知,Wi-Fi自動(dòng)測(cè)試系統(tǒng)相較于手動(dòng)測(cè)試減少了人力支持,相較于儀表測(cè)試擴(kuò)展了產(chǎn)品對(duì)比測(cè)試和版本對(duì)比測(cè)試功能。
由表4可知,Wi-Fi自動(dòng)測(cè)試系統(tǒng)相較于手動(dòng)測(cè)試減少了測(cè)試時(shí)間,提高測(cè)試效率。
表3測(cè)試方法對(duì)比

表4執(zhí)行時(shí)間對(duì)比
Wi-Fi自動(dòng)測(cè)試系統(tǒng)進(jìn)行A無(wú)線路由器和B無(wú)線路由器的吞吐量對(duì)比測(cè)試結(jié)果如圖5、圖6所示。圖5顯示2種產(chǎn)品2.4 G TCP UL和DL的吞吐量對(duì)比圖,圖6顯示2種產(chǎn)品5 G TCP UL和DL的吞吐量對(duì)比圖。圖5中A無(wú)線路由器的吞吐量從51 dB開(kāi)始明顯低于B無(wú)線路由器,測(cè)試數(shù)據(jù)提供給研發(fā)人員定位,發(fā)現(xiàn)A無(wú)線路由器確實(shí)存在問(wèn)題。
本文從硬件組成、軟件組成和軟件實(shí)現(xiàn)3方面描述了Wi-Fi自動(dòng)測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。測(cè)試結(jié)果表明:該系統(tǒng)可節(jié)省測(cè)試時(shí)間和人力成本;對(duì)比測(cè)試的功能幫助快速地定位產(chǎn)品問(wèn)題。系統(tǒng)操作簡(jiǎn)單、可復(fù)制性強(qiáng),可應(yīng)用于設(shè)備供應(yīng)商Wi-Fi產(chǎn)品測(cè)試。

圖5 2.4 G TCP UL和DL吞吐量對(duì)比測(cè)試結(jié)果

圖6 5 G TCP UL和DL吞吐量對(duì)比測(cè)試結(jié)果
[1] 邱燕東.Wi-Fi終端設(shè)備性能測(cè)試[J].電信網(wǎng)技術(shù),2014(7):61-66.
[2] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)(第五版) [M].北京:電子工業(yè)出版社,2011:310-312.
[3] 易觀國(guó)際,Wi-Fi聯(lián)盟.中國(guó)Wi-Fi市場(chǎng)白皮書(shū):機(jī)遇、動(dòng)力和挑戰(zhàn)[EB/OL]. [2006-08-04]. https://max.book118.com/html/ 2017/0731/125450963.shtm.
[4] Amland S. Risk-based testing: Risk analysis fundamentals and metrics for software testing including a financial application case study[J]. Journal of Systems and Software, 2000, 53(3): 287-295.
[5] IFPUG. Function Point Counting Practices Manual (Release 4.1) [S]. Mequon, Wisconsin: International Function Points Users Group, 1999.
[6] 曲鳴飛,張文濤.基于無(wú)線局域網(wǎng)的通信電源監(jiān)控系統(tǒng)設(shè)計(jì)[J].電源技術(shù),2016,40(1):213-214.
[7] 朱芳,李曦,趙振西.一種多平臺(tái)自動(dòng)化測(cè)試工具的設(shè)計(jì)和實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2004,30(24):186-188.
Design and Implementation of Wi-Fi Throughput Automatic Testing System
Wang TianMeng Xianjun
(Shanghai Nokia Bell Software Co., Ltd.)
For some problems like low test efficiency in Wi-Fi Throughput testing, provide a Wi-Fi throughput automatic testing system that can build test environment and configure environment parameters according to throughput test type provided by tester, use a chart to show throughput test result; the system supports single throughput testing, product comparison and build comparison throughput testing. Test results show that the system can improve test efficiency, reduce human effort and test time; reflect product issue by comparison test result and provide reference data for software developer to locate issue; lower setup cost make it possible to be widely used in equipment supplier’s Wi-Fi product testing.
Automation Testing; Wi-Fi Throughput; Automatic Testing System
汪恬,女,1990年生,碩士,高級(jí)工程師,主要研究方向:信息與通信工程,自動(dòng)控制。E-mail: tian.2.wang@nokia-sbell.com
孟憲軍,男,1982年生,本科,主任工程師,主要研究方向:信息與通信工程,自動(dòng)控制。