王晨宇
(山東省信宇通信工程監(jiān)理有限公司,山東 青島 266000)
無(wú)線通信設(shè)備主要是利用無(wú)線電波傳播信息的設(shè)備,是現(xiàn)階段我國(guó)對(duì)外遠(yuǎn)距離通信的主要手段。無(wú)線通信設(shè)備自動(dòng)化測(cè)試系統(tǒng)主要是依據(jù)現(xiàn)階段《900/1800MHz TDMA 數(shù)字蜂窩移動(dòng)通信網(wǎng)通用分組無(wú)線業(yè)務(wù)(GPRS)設(shè)備測(cè)試方法:移動(dòng)臺(tái)》(YD/T 1215—2006)、《900/1800MHz TDMA 數(shù)字蜂窩移動(dòng)通信網(wǎng)通用分組無(wú)線業(yè)務(wù)(GPRS)設(shè)備技術(shù)要求:移動(dòng)臺(tái)》(YD/T 1214—2006)對(duì)無(wú)線通信設(shè)備運(yùn)行的要求,以LabView 軟件為工具開(kāi)發(fā)的一套用于無(wú)線通信設(shè)備自動(dòng)化測(cè)試的系統(tǒng)[1]。
以阿里巴巴為例,由于其主要以電商為核心,對(duì)交易系統(tǒng)的通信穩(wěn)定性具有較高的要求。在整體交易系統(tǒng)的整體發(fā)展過(guò)程中,維護(hù)人員也在不斷流轉(zhuǎn),導(dǎo)致現(xiàn)有維護(hù)者無(wú)法清晰了解無(wú)線通信業(yè)務(wù)的代碼順序。再加上常規(guī)自動(dòng)化測(cè)試工具需要進(jìn)行腳本編寫(xiě)及測(cè)試數(shù)據(jù)準(zhǔn)備,覆蓋率較低,與需求重構(gòu)后回歸驗(yàn)證要求不相符,這就導(dǎo)致全面升級(jí)階段的回歸測(cè)試難度較大?;诖?,在阿里巴巴內(nèi)部設(shè)置了一個(gè)依賴真實(shí)流量回歸的無(wú)線通信設(shè)備自動(dòng)化測(cè)試平臺(tái),可以通過(guò)創(chuàng)新的自動(dòng)Mock(在自動(dòng)化測(cè)試階段部分不易構(gòu)造、獲取的對(duì)象,可采用虛擬對(duì)象創(chuàng)建的方式進(jìn)行測(cè)試)機(jī)制,復(fù)制線上真實(shí)流量,進(jìn)行自動(dòng)化回歸測(cè)試。同時(shí)通過(guò)寫(xiě)接口驗(yàn)證、讀接口回歸驗(yàn)證,發(fā)現(xiàn)無(wú)線通信設(shè)備運(yùn)行階段出現(xiàn)的重構(gòu)bug(漏洞),保證交易通信項(xiàng)目的穩(wěn)定運(yùn)行[2]。
以LabView 軟件為開(kāi)發(fā)工具的無(wú)線通信設(shè)備自動(dòng)回歸測(cè)試平臺(tái)主要是將一部分線上真實(shí)流量進(jìn)行復(fù)制。隨后在新的自動(dòng)Mock 機(jī)制約束下,借助Java 的instrument(代碼分析及內(nèi)存自動(dòng)化測(cè)試工具),實(shí)現(xiàn)面向切面編程(Aspect Oriented Programming,AOP)。
無(wú)線通信設(shè)備自動(dòng)化測(cè)試平臺(tái)的架構(gòu)如圖1 所示,其中接入層主要負(fù)責(zé)將機(jī)房與阿里云生產(chǎn)環(huán)境連接;數(shù)據(jù)儲(chǔ)存單元將測(cè)試用例映射組成策略進(jìn)行分類儲(chǔ)存,為后續(xù)數(shù)據(jù)信息管理提供依據(jù);內(nèi)部穩(wěn)定性測(cè)試平臺(tái)主要負(fù)責(zé)對(duì)數(shù)據(jù)分類操作的穩(wěn)定性開(kāi)展測(cè)試。無(wú)線通信設(shè)備自動(dòng)化測(cè)試平臺(tái)可以依托阿里云生產(chǎn)環(huán)境,完成靈活、可擴(kuò)展性無(wú)線通信設(shè)備運(yùn)行流量的自動(dòng)化測(cè)試[3]。
圖1 無(wú)線通信設(shè)備自動(dòng)化測(cè)試平臺(tái)的架構(gòu)
無(wú)線通信設(shè)備自動(dòng)化測(cè)試平臺(tái)主要采用的是Internet/Intranet 技術(shù),通過(guò)利用主流MySQL 數(shù)據(jù)庫(kù)規(guī)范(如圖2)進(jìn)行設(shè)計(jì)。
圖2 MySQL 數(shù)據(jù)庫(kù)
系統(tǒng)測(cè)試組網(wǎng)主要通過(guò)“云”環(huán)境,以云的方式,面對(duì)多個(gè)監(jiān)測(cè)對(duì)象,形成云端自動(dòng)化測(cè)試平臺(tái)。在實(shí)際設(shè)計(jì)過(guò)程中,主要使用綜測(cè)儀、頻譜儀、信號(hào)源等測(cè)試工具,經(jīng)物理層交換機(jī)或測(cè)試集成箱對(duì)無(wú)線通信基站、無(wú)線通信終端運(yùn)行數(shù)據(jù)進(jìn)行搜集。隨后根據(jù)自動(dòng)化測(cè)試平臺(tái)自動(dòng)化腳本,執(zhí)行任務(wù)管理、日志管理、統(tǒng)計(jì)管理、系統(tǒng)交互等作業(yè)。經(jīng)多個(gè)中間件,對(duì)運(yùn)行現(xiàn)場(chǎng)、外部研發(fā)模塊進(jìn)行全過(guò)程維護(hù)[4]。
無(wú)線通信設(shè)備自動(dòng)化測(cè)試平臺(tái)軟件操作系統(tǒng)主要利用LabView 平臺(tái)。依據(jù)Mock 協(xié)議,保證無(wú)線通信設(shè)備自動(dòng)化測(cè)試平臺(tái)與上、下各個(gè)模塊均完全兼容。同時(shí)選用通用開(kāi)發(fā)工具Java 的最新版本,進(jìn)行平臺(tái)開(kāi)發(fā)[5]。
為實(shí)現(xiàn)無(wú)線通信設(shè)備自動(dòng)化測(cè)試平臺(tái)對(duì)外系統(tǒng)請(qǐng)求的Mock,可利用不同類型中間件對(duì)外發(fā)起遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call,RPC)請(qǐng)求,或者通過(guò)無(wú)線通信設(shè)備自動(dòng)化測(cè)試平臺(tái)配置的中間件,隔離無(wú)線通信各模塊。隨后無(wú)線通信設(shè)備自動(dòng)化測(cè)試平臺(tái)客戶端會(huì)針對(duì)相關(guān)中間件,在脫離人工配置RPC接口的情況下進(jìn)行AOP 處理,實(shí)現(xiàn)對(duì)外系統(tǒng)請(qǐng)求的自動(dòng)Mock。另外,第四范式還發(fā)布自動(dòng)機(jī)器學(xué)習(xí)平臺(tái)AutoML 2.0。對(duì)外系統(tǒng)請(qǐng)求的Mock 緊跟市場(chǎng)發(fā)展,希望引領(lǐng)市場(chǎng)需求,會(huì)在恰當(dāng)時(shí)期推出符合需求的產(chǎn)品。如今到了軟件定義算力的階段,第四范式現(xiàn)在先做到骨架的改變[6]。
一方面,在測(cè)試某一無(wú)線通信設(shè)備時(shí),需要依據(jù)委托創(chuàng)建→用例關(guān)聯(lián)→任務(wù)分配及接收→測(cè)試配置及執(zhí)行→測(cè)試結(jié)果生成的順序執(zhí)行。其中,在委托創(chuàng)建模塊,應(yīng)保證一款無(wú)線通信設(shè)備與一個(gè)特定委托一一對(duì)應(yīng);用例關(guān)聯(lián)主要是明確測(cè)試內(nèi)容;任務(wù)分配及接收需要在測(cè)試內(nèi)容確定后,確定用例分配對(duì)象及時(shí)間要求;而測(cè)試配置及執(zhí)行主要是在相關(guān)模塊對(duì)象確定之后,與物理交換機(jī)、測(cè)試儀及客戶端配合,選擇恰當(dāng)?shù)臏y(cè)試用例參數(shù)。
另外,針對(duì)無(wú)線通信設(shè)備自動(dòng)化測(cè)試平臺(tái)運(yùn)行時(shí)內(nèi)存數(shù)據(jù)狀態(tài)、回放時(shí)內(nèi)存數(shù)據(jù)狀態(tài)不一致的情況,可以程序執(zhí)行流程實(shí)現(xiàn)為入手點(diǎn)。綜合考慮內(nèi)存開(kāi)關(guān)、本機(jī)緩存、Session 查詢等因素,在平臺(tái)內(nèi)部設(shè)置自定義Mock 機(jī)制。通過(guò)將導(dǎo)致回放、測(cè)試階段不一致代碼片段創(chuàng)建成虛擬對(duì)象,可以保證線上回放執(zhí)行程序與原有測(cè)試程序一致。
對(duì)于Web應(yīng)用而言,請(qǐng)求最終可以HTTP請(qǐng)求(從客戶端到服務(wù)器端的請(qǐng)求消息)發(fā)送的方式,實(shí)現(xiàn)自動(dòng)化測(cè)試驗(yàn)證。假定阿里巴巴生產(chǎn)環(huán)境中無(wú)線通信設(shè)備應(yīng)用可以正常響應(yīng)用戶的請(qǐng)求,且可以通過(guò)AOP的方式,將返回結(jié)果、請(qǐng)求入?yún)⒓皥?zhí)行快照數(shù)據(jù)(如訪問(wèn)數(shù)據(jù)庫(kù)及訪問(wèn)遠(yuǎn)程服務(wù)器的入?yún)?、返回結(jié)果等)逐一保存。隨后將儲(chǔ)存的快照數(shù)據(jù)發(fā)送給測(cè)試機(jī)器,即代碼發(fā)生變化的機(jī)器。在測(cè)試機(jī)器收到快照數(shù)據(jù)瞬間,即為一次完整的回放過(guò)程結(jié)束時(shí)刻。同時(shí),可將調(diào)用后臺(tái)請(qǐng)求數(shù)據(jù)、返回結(jié)果、落庫(kù)數(shù)據(jù)、線上真實(shí)請(qǐng)求發(fā)生時(shí)的數(shù)據(jù)等信息進(jìn)行全量對(duì)比。通過(guò)對(duì)相關(guān)信息間差異進(jìn)行分析,可以得出被測(cè)試無(wú)線通信設(shè)備中出現(xiàn)的問(wèn)題。在整個(gè)自動(dòng)化測(cè)試過(guò)程中,若發(fā)現(xiàn)其中存在差異,則可以RPC 請(qǐng)求發(fā)送的方式,記錄中間快照數(shù)據(jù),利用RPC 入?yún)?、RPC 返回值進(jìn)行回放。
3.4.1 緊急呼叫
緊急呼叫是以“PAN-PAN” 開(kāi)頭,“PANPAN”表示緊急,即呼叫電臺(tái)有很緊急的電信要發(fā)送,關(guān)系到一艘交通工具、飛機(jī)或其他交通工具的安全或人員的安全。將Mock 機(jī)制的甚高頻(Very High Frequency,VHF)無(wú)線電話置于CH70,輸入“所有電臺(tái)”或“特定臺(tái)的9 位識(shí)別碼”,設(shè)定呼叫種類為“緊急”,然后發(fā)送緊急呼叫。緊急呼叫發(fā)送完畢后,在CH16 發(fā)送緊急信息。將無(wú)線電話機(jī)置于CH16,然后語(yǔ)音發(fā)送:
——PAN - PAN PAN - PAN PAN - PAN
——All stations All stations All stations
——this is
——本交通工具9 位識(shí)別碼或呼號(hào)
——緊急信文
——over
交通工具在CH70 上接收到對(duì)所有交通工具發(fā)送的緊急呼叫后,不應(yīng)對(duì)數(shù)字選擇性呼叫(Digital Selective Calling Terminals,DSC)系統(tǒng)的呼叫進(jìn)行確認(rèn),但應(yīng)該在CH16 守聽(tīng)緊急信文。
3.4.2 安全呼叫
VHF 無(wú)線電話呼叫是以“SECURITE”開(kāi)頭,“SECURITE”表示與安全有關(guān)的信文,即呼叫臺(tái)將要發(fā)送有關(guān)航行安全的信文或重要的氣象警告,呼叫格式為:
——SECURITE SECURITE SECURITE
——All stations All stations All stations
——this is
——安全信文
——over
如果遇到交通問(wèn)題,各種搜救力量接到遇險(xiǎn)報(bào)警信號(hào)或搜救任務(wù)協(xié)調(diào)員的指令后應(yīng)全速駛往出事地點(diǎn)。但由于駕駛員某種情況下必須棄交通工具,搜救作業(yè)要注意以下幾點(diǎn):一是交通工具在到達(dá)出事地點(diǎn)附近開(kāi)啟9 GHz 雷達(dá);二是SART 的發(fā)射距離;三是向下風(fēng)、流處搜尋;四是交通工具和航空器之間可使用VHF CH06 通信。
若駕駛員沒(méi)有棄交通工具,應(yīng)有遇險(xiǎn)交通工具指定通信工具。若是與去救援的交通工具通信,則只能使用VHF(去救援的交通工具上唯一通信工具就是VHF)。
(1)交通工具向VTS 報(bào)告的種類及內(nèi)容。船舶交通服務(wù)(Vessel Traffic Service,VTS)水域通信主要是交通工具向VTS 報(bào)告,各VTS 要求報(bào)告種類有所不同,主要報(bào)告為交通工具從適用地點(diǎn)出發(fā)前到指定地點(diǎn)前若干時(shí)間向VTS 所做的報(bào)告。報(bào)告內(nèi)容大致包括交通工具名稱和呼號(hào)、交通工具旗國(guó)、交通工具資料、現(xiàn)在交通工具位、其他相關(guān)信息(如航向、航速、目的港等)。
(2)偏離報(bào)告或變更報(bào)告(Deviationreport,DR)。如果需要?jiǎng)t做此變更報(bào)告,即改變航行計(jì)劃時(shí)進(jìn)行此項(xiàng)報(bào)告,如進(jìn)入或離開(kāi)錨地。
(3)事故報(bào)告(IR/DG/HS/MP)。當(dāng)交通工具發(fā)生或發(fā)現(xiàn)交通事故、污染事故或其他緊急情況后向VTS 所做的報(bào)告。事故報(bào)告的內(nèi)容包括3 個(gè)方面:一是交通工具名稱和呼號(hào);二是交通工具位置;三是緊急情況及VTS 要求的其他信息。并不是交通工具經(jīng)過(guò)每一個(gè)VTS 交通網(wǎng)絡(luò)都要進(jìn)行上述報(bào)告點(diǎn),但航行計(jì)劃和交通工具位是必須要報(bào)告的。
在無(wú)線通信設(shè)備應(yīng)用范圍逐步拓展的背景下,傳統(tǒng)測(cè)試平臺(tái)已無(wú)法勝任自動(dòng)化測(cè)試工作,Mock 機(jī)制的無(wú)線通信設(shè)備,可實(shí)現(xiàn)遠(yuǎn)程通信,并能從無(wú)人機(jī)實(shí)時(shí)傳輸4K 未壓縮視頻。同時(shí),Mock 機(jī)制的無(wú)線通信設(shè)備與5G 寬帶聯(lián)合工作,將開(kāi)啟一系列新的可能性,如360 度視頻流和沉浸式虛擬現(xiàn)實(shí)應(yīng)用。不僅如此,Mock 機(jī)制的無(wú)線通信設(shè)備項(xiàng)目還推動(dòng)了毫米波無(wú)線通信系統(tǒng)的開(kāi)發(fā),使遠(yuǎn)程通信成為可能。因此,為了充分發(fā)揮無(wú)線通信設(shè)備接入控制器的產(chǎn)品性能,相關(guān)設(shè)計(jì)人員可在內(nèi)部開(kāi)發(fā)一個(gè)無(wú)線自動(dòng)化測(cè)試平臺(tái),以便從根本上解決無(wú)線通信平臺(tái)手動(dòng)測(cè)試效果不佳的問(wèn)題。