候春輝,孫敬偉,康志杰
(河北遠東通信系統工程有限公司,河北 石家莊 050200)
5G是繼4G之后的又一次技術革新,具有高速率、低時延以及大連接等特點,是實現萬物互聯的網絡基礎[1]。隨著移動通信技術的快速發展,無線通信設備更新換代的速度也在逐步加快,在設備版本不斷更新迭代的過程中,傳統手工測試的效率已無法滿足新型無線通信設備的測試需求,采用自動化測試手段來提高測試效率已經成為業界共識[2,3]。
自動化測試是將以人為驅動的測試行為轉化為機器執行,以程序測試程序,以腳本運行代替手工測試[4]。通過軟件設置測試的前置條件和其他控制條件,控制測試執行過程,自動收集測試結果,比較實際結果和預期結果是否一致后輸出測試報告[5]。
Robot Framework(以下簡稱RF)是一個基于Python的開源自動化測試框架,擁有大量內置測試庫、第三方測試庫以及測試工具等,具備豐富的生態系統和良好的可擴展性,如圖1所示。此外,該框架可以與Jenkins等持續集成工具進行融合應用,構建強大靈活的自動化測試解決方案[6]。

圖1 Robot Framework框架
測試用例(Test Date)由用戶根據測試需求遵循RF語法編寫,RF框架解析并執行測試用例,調用測試庫(Test Libraries)的關鍵字接口,實現對被測系統(System Under Test)的操作,以達到測試目的。框架本身對被測系統一無所知,一般通過測試庫與其交互。測試庫可以直接使用被測系統的應用程序接口,也可以使用其他底層的測試工具(Test Tools)作為測試驅動。
5G基站自動化測試系統由測試系統、被測系統(即5G基站)以及其他測試工具組成,如圖2所示[7]。

圖2 5G基站自動化測試系統總體架構
測試系統是自動化測試的核心,由配置參數、測試用例、測試日志、測試報告,RF框架以及測試庫等部分組成。其中,配置參數為自動化測試系統提供測試執行的必要信息,例如測試設備IP地址、測試報告存儲位置等。測試用例分為關鍵字驅動型測試用例和數據驅動型測試用例。關鍵字驅動型測試是針對特定工作流的測試,由若干關鍵字組成。數據驅動型測試則僅使用一個高級別的用戶關鍵字來完成測試,適用于相同測試流程下具有多個不同測試輸入或輸出的場景。測試日志提供測試用例執行過程的記錄,可以通過配置參數設置日志級別。測試報告用于展示測試用例執行結果的統計信息。測試庫則提供了底層測試系統和測試工具的操作接口,為測試系統提供測試控制和測試反饋的方法。
被測系統即5G基站(gNB),由集中單元(Centralized Unit,CU)、分布單元(Distributed Unit,DU)以及無線單元(Radio Unit,RU)組成[8]。其中,CU負責5G基站的無線資源控制和分組數據匯聚等功能;DU負責處理實時性需求較高的無線鏈路控制層(Radio Link Control,RLC)、介質訪問控制層(MediaAccessControl,MAC)以及部分物理層的功能;RU負責將來自DU的數字信號轉換為射頻信號并傳送到天線,同時將天線的射頻信號轉換為數字信號并傳送到DU。
其他測試工具包括數據網絡(Date Network,DN)服務器、5G核心網(5G Core,5GC)以及5G用戶設備(5G User Equipment,5G UE)。DN服務器負責測試過程中業務數據的收發;5GC提供5G網絡的核心服務;5G UE接入gNB,負責驗證gNB功能的正確性及其他性能是否滿足測試要求。
測試用例的執行需要遵循一定的流程,包括測試初始化、測試執行、測試記錄、驗證比較以及環境恢復等,如圖3所示[9]。

圖3 自動化測試流程
測試初始化實現測試用例配置信息讀取、日志目錄創建、基站軟件版本檢查以及被測系統的初始狀態保存等工作。測試執行是根據測試用例要求逐步執行測試關鍵字,自動化測試的執行過程與手工操作的測試過程基本相同。測試記錄主要對測試執行過程中被測系統的運行日志以及測試輸出結果進行記錄。在手工測試中,測試者會將測試結果與預期結果進行對比,以驗證系統行為的正確性。而自動化測試必須將系統的輸出記錄下來,才能完成測試的比較工作。此外,被測系統的運行日志為研發人員進行問題回溯提供了便利。驗證比較主要檢驗被測系統是否產生正確輸出,可以是大量數字、字符輸出或任何數據類型的對比。若驗證成功,則繼續執行后續測試步驟;若某一步驗證失敗或測試執行完成,則進入環境恢復階段。環境恢復是在完成測試用例后將被測系統恢復至初始狀態,提高了自動化測試過程的可復現性。
以終端附著為例,闡述了5G基站自動化測試用例的基本過程,如圖4所示。

圖4 終端附著的自動化測試流程
首先,檢查基站軟件版本與待測版本是否一致,如果不一致則需要先從版本服務器拉取指定版本的軟件安裝包,執行基站版本升級;其次,保存系統初始狀態,檢查基站狀態是否滿足測試要求,根據測試場景修改基站的配置參數,按需重啟基站設備,并等待基站設備啟動完成;再次,連接終端設備,開啟基站信令跟蹤功能,控制終端發起附著流程,待終端附著成功后執行Ping包業務,保存Ping包測試結果;最后,收集下載測試日志、信令抓包等,分析附著過程中的NGAP、F1AP信令,恢復系統至初始狀態后即完成終端附著的自動化測試。
測試庫提供RF框架與被測系統交互的接口,RF本身已內置了一些常用的測試庫,例如Collections、Operating System等[10]。同時,RF框架也提供了擴展測試庫的方法,即通過組合已有關鍵字來創建高層次的關鍵字和通過Python或Java語言編寫自定義測試庫。下面詳細闡述5G基站自動化測試系統中主要測試庫的設計。
2.3.1 基站管理庫
基站管理庫是自動化測試系統與5G基站的交互接口,其通過超文本傳輸協議(HyperText Transfer Protocol,HTTP)接口與基站操作維護管理(Operation Administration and Maintenance,OAM)交互實現對基站各單元的配置管理、狀態查詢以及版本升級等功能,可以支持不同工作模式下的基站測試。基站管理庫關鍵字及其功能如表1所示。

表1 基站管理庫關鍵字
2.3.2 終端管理庫
終端管理庫為自動化測試系統提供終端管理的接口。在測試過程中,終端管理庫控制終端發起附著流程,查詢終端網絡狀態,并發起各類業務的測試。終端管理庫關鍵字及其功能如表2所示。

表2 終端管理庫關鍵字
2.3.3 公共接口庫
公共接口庫提供對被測設備的通用操作接口,例如設備的遠程連接與登錄、執行特定的Shell指令、被測系統的狀態保存與恢復以及信令分析等。公共接口庫關鍵字及其功能如表3所示。

表3 公共接口庫關鍵字
本測試系統的自定義測試庫實現了對5G基站的配置管理、狀態查詢以及操作維護等功能,通過接口庫實現對被測系統和測試工具的測試控制和測試反饋結果獲取。根據5G基站系統的測試需求,選取易于采用自動化測試實現的測試用例,設計自動化測試腳本,將自動化測試系統部署到實際測試環境中進行測試。本次自動化測試形成的測試報告如圖5所示,共執行25個測試用例,測試時長87 min。依據測試經驗,一個熟練的5G系統測試工程師完成這些測試工作大約需要480 min。通過對比,自動化測試有效減少了產品回歸測試的時間,提高了測試效率,縮短了產品的迭代周期。

圖5 5G基站自動化測試系統的測試報告
基于RF框架研究了5G基站自動化測試系統的設計方案,實現了5G基站系統的自動化測試。通過對比手工測試與自動化測試的測試效率,證明了5G基站自動化測試系統設計的可行性和有效性。完善的自動化測試系統并非一蹴而就,隨著5G基站設備的更新迭代,未來需要不斷將手工測試中的自動化部分融入到自動化測試,從而持續優化完善自動化測試系統的功能。