溫 和,唐 濤,馬少偉,李宇強(qiáng)
(國(guó)家無線電監(jiān)測(cè)中心檢測(cè)中心,北京 100041)
RMTP協(xié)議一致性測(cè)試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
溫 和,唐 濤,馬少偉,李宇強(qiáng)
(國(guó)家無線電監(jiān)測(cè)中心檢測(cè)中心,北京 100041)
無線電監(jiān)測(cè)網(wǎng)傳輸協(xié)議(RMTP)是解決全國(guó)聯(lián)網(wǎng)系統(tǒng)與不同無線電監(jiān)測(cè)設(shè)施之間數(shù)據(jù)傳輸?shù)囊?guī)范協(xié)議。為本文結(jié)合實(shí)際工作內(nèi)容,設(shè)計(jì)研發(fā)了一套R(shí)MTP協(xié)議一致性測(cè)試系統(tǒng),并對(duì)部分監(jiān)測(cè)設(shè)施進(jìn)行了調(diào)試分析。
無線電監(jiān)測(cè);RMTP;協(xié)議一致性;測(cè)試系統(tǒng)
RMTP協(xié)議的發(fā)布實(shí)施極大的推進(jìn)了監(jiān)測(cè)系統(tǒng)聯(lián)網(wǎng)進(jìn)程,但由于廠家研發(fā)能力不同、協(xié)議理解不同,在聯(lián)網(wǎng)過程中還存在一些問題。本文結(jié)合實(shí)際工作內(nèi)容,設(shè)計(jì)研發(fā)了一套R(shí)MTP協(xié)議一致性測(cè)試系統(tǒng)(以下簡(jiǎn)稱測(cè)試系統(tǒng)),能夠驗(yàn)證監(jiān)測(cè)設(shè)施RMTP協(xié)議的實(shí)現(xiàn)情況,進(jìn)一步規(guī)范協(xié)議的使用。
測(cè)試系統(tǒng)將驗(yàn)證不同的無線電監(jiān)測(cè)設(shè)備提供的RMTP標(biāo)準(zhǔn)接口是否符合RMTP協(xié)議的規(guī)范,測(cè)試系統(tǒng)通過模擬協(xié)議信令與設(shè)備接口的交互,驗(yàn)證消息結(jié)構(gòu)的規(guī)范性、消息內(nèi)容的正確性以及消息流程的完整性,確保RMTP協(xié)議所規(guī)定的所有功能在該設(shè)備接口上得到正確的實(shí)現(xiàn)。
測(cè)試系統(tǒng)基于正在執(zhí)行的RMTP1.01版本為依據(jù),涵蓋監(jiān)測(cè)指令8項(xiàng),非監(jiān)測(cè)指令8項(xiàng)。RMTP協(xié)議分是客戶端(全國(guó)聯(lián)網(wǎng)系統(tǒng))和服務(wù)端(接口程序)模型,對(duì)兩端都要進(jìn)行驗(yàn)證,基礎(chǔ)測(cè)試?yán)柙O(shè)計(jì)實(shí)現(xiàn)32個(gè)。

圖1 系統(tǒng)架構(gòu)圖
3.1 RMTP測(cè)試集
RMTP測(cè)試集定義了RMTP測(cè)試場(chǎng)景(測(cè)試用例)、數(shù)據(jù)類型、消息模板、RMTP組件仿真、組件接口定義。
3.2 編解碼器
模塊在發(fā)送消息時(shí),將TTCN-3定義的消息編碼為RMTP協(xié)議中定義的網(wǎng)絡(luò)數(shù)據(jù)包格式,通過TCP連接進(jìn)行發(fā)送。在接收消息的時(shí),將網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行解碼,還原為TTCN-3數(shù)據(jù)結(jié)構(gòu),使之能夠在測(cè)試用例中對(duì)消息結(jié)構(gòu)及數(shù)據(jù)正確性進(jìn)行操作,并使日志具有良好的可讀性。
3.3 系統(tǒng)適配器與平臺(tái)適配器
系統(tǒng)及平臺(tái)適配器為測(cè)試用例提供網(wǎng)絡(luò)通信支持以及操作系統(tǒng)平臺(tái)的支持,在本系統(tǒng)中支持TCP協(xié)議的通信,測(cè)試系統(tǒng)采用TCP協(xié)議和待測(cè)系統(tǒng)進(jìn)行通信。
3.4 測(cè)試過程
測(cè)試?yán)訄?zhí)行啟動(dòng)后,首先由TE(TTCN-3 Executable)控制,重置SA(SUT Adapter)與PA (Platform Adapter)。然后執(zhí)行測(cè)試?yán)瑴y(cè)試?yán)龍?zhí)行時(shí),通過建立端口映射建立RMTP的TCP/IP連接。如圖2所示,在建立連接后,TE模擬協(xié)議信令進(jìn)行編碼,發(fā)送給SUT(待測(cè)系統(tǒng)),并啟動(dòng)計(jì)時(shí)器,用于監(jiān)控超時(shí)。當(dāng)SUT返回響應(yīng)指令后,為緩解解碼及判定的處理壓力,首先將返回的內(nèi)容加入消息隊(duì)列,再開始解碼,解碼后與預(yù)先定義的模板進(jìn)行比對(duì),判定是否通過。測(cè)試結(jié)束后終止計(jì)時(shí)器,并解除端口映射。
測(cè)試系統(tǒng)的最基本測(cè)試單位是測(cè)試?yán)齮estcase,現(xiàn)以固定頻率測(cè)量(FIXFQ)為例介紹RMTP測(cè)試系統(tǒng)的實(shí)現(xiàn)過程。
4.1 固定頻率測(cè)量測(cè)試?yán)龑?shí)現(xiàn)
固定頻率測(cè)量的測(cè)試?yán)齌C_Server_FIXFQ中測(cè)試系統(tǒng)模擬整個(gè)固定頻率監(jiān)測(cè)業(yè)務(wù)的信令過程,以及對(duì)接收數(shù)據(jù)的判定,測(cè)試?yán)忻總€(gè)步驟由一個(gè)函數(shù)function實(shí)現(xiàn)。測(cè)試?yán)龁?dòng)后首先通過已經(jīng)配置好的收發(fā)端口映射map建立與待測(cè)系統(tǒng)的TCP連接,之后按照協(xié)議要求執(zhí)行登陸f_client_ login函數(shù),預(yù)執(zhí)行f_client_Pre_Execution函數(shù),接收測(cè)試結(jié)果f_client_Receive_Result函數(shù),接收設(shè)備參數(shù)信息f_client_Receive_Device_Info函數(shù),接收數(shù)據(jù)描述頭信息f_client_Receive_Data_ Des函數(shù),然后接收經(jīng)緯度信息f_client_Receive_ Longitude_Latitude函數(shù),完成經(jīng)緯度信息的接收后,接收業(yè)務(wù)數(shù)據(jù)f_client_Reveive_Business_ Data函數(shù),業(yè)務(wù)數(shù)據(jù)接收完畢驗(yàn)證后,停止監(jiān)測(cè)f_ client_Stop,該測(cè)試?yán)郎y(cè)試完成后斷開TCP連接unmap。如圖3所示。

圖3
4.2 登陸函數(shù)實(shí)現(xiàn)
登陸函數(shù)f_client_login是每個(gè)測(cè)試?yán)_始時(shí)都要執(zhí)行的函數(shù),因此定義為公共函數(shù),每個(gè)測(cè)試?yán)伎梢砸谜{(diào)用。登陸函數(shù)啟動(dòng)后根據(jù)用戶配置參數(shù),Rmtp_mtcPort調(diào)用send方法發(fā)送登陸請(qǐng)求消息,參數(shù)是m_RMTP_LoginRequestWithAuth模板,在執(zhí)行send時(shí)再最終發(fā)給待測(cè)設(shè)備之前要根據(jù)模板的內(nèi)容進(jìn)行編碼。登陸請(qǐng)求發(fā)送后,啟動(dòng)計(jì)時(shí)器RmtpClientTimer.start,等待待測(cè)系統(tǒng)返回結(jié)果,按照協(xié)議要求首先返回版本號(hào),將返回的消息解碼后,與預(yù)先定義的版本號(hào)進(jìn)行比較,如果一致返回成功繼續(xù)執(zhí)行,如果不一致返回失敗停止測(cè)試,如果超時(shí)返回警告繼續(xù)執(zhí)行。待測(cè)設(shè)備繼續(xù)返回第二個(gè)消息,待測(cè)系統(tǒng)返回OK,測(cè)試系統(tǒng)返回成功;待測(cè)系統(tǒng)返回REFUSE,測(cè)試系統(tǒng)返回失敗,超時(shí)返回警告。如圖4所示。

圖2 系統(tǒng)時(shí)序圖

圖4
登陸參數(shù)模板定義,參數(shù)是m_RMTP_ LoginRequestWithAuth模板,模板中定義了協(xié)議為RMTP,類型為驗(yàn)證VERIF,以及消息體,消息體中包含了驗(yàn)證類型,用戶名和密碼。如圖5所示。

圖5
4.3 登陸編解碼實(shí)現(xiàn)
(1)編碼。在登陸參數(shù)配置完成向待測(cè)系統(tǒng)發(fā)送前,需要調(diào)用EncodeLogin函數(shù)對(duì)發(fā)送的內(nèi)容按照協(xié)議要求”RMTP:VERIF:METHOD=m ethod,USER=userid,PASSWD=password ”的碼流進(jìn)行編碼,HEADER_DELIMITER + this. getTextMsgType() + HEADER_DELIMITER執(zhí)行完sendMsg=“RMTP:VERIF”,"METHOD" + PARAM_IS+method +PARAM_DELIMITER執(zhí)行完sendMsg=“RMTP:VERIF:METHOD=01,”,"USER" + PARAM_IS + this.getTextMsgBody(). getUser()和"PASSWD" + PARAM_IS + this. getTextMsgBody().getPassword()執(zhí)行完sendMsg的內(nèi)容為“RMTP:VERIF:METHOD=01,USER=x xx,PASSWD=xxx ”,該字符串就可以發(fā)送至待測(cè)系統(tǒng)。如圖6所示。

圖6
(2)解碼。在接到登陸返回的消息后首先進(jìn)行解碼,調(diào)用TextMessage的類初始化構(gòu)造函數(shù)將接收到的碼流按照協(xié)議要求進(jìn)行拆分,并將內(nèi)容放到aTxtMsg對(duì)象中,最后將aTxtMsg對(duì)象中的成員變量的Version值賦給模板里的version,測(cè)試系統(tǒng)下一步將對(duì)模板中的值與預(yù)先定義的校驗(yàn)規(guī)則進(jìn)行比較,驗(yàn)證是否通過。如圖7所示。

圖7
系統(tǒng)開發(fā)完成后針對(duì)少量監(jiān)測(cè)接收機(jī)進(jìn)行了抽樣調(diào)試分析,發(fā)現(xiàn)不同廠家對(duì)協(xié)議的理解還存在一些差異,例如數(shù)據(jù)包的合并和拆分問題,協(xié)議中并沒有規(guī)定數(shù)據(jù)包是否可以合并發(fā)送,但有的廠家為了減少發(fā)送的I/O次數(shù),提高效率,將數(shù)據(jù)量較小的包合并在一起發(fā)送,也有將較大的數(shù)據(jù)包拆分成多個(gè)包進(jìn)行發(fā)送。這就造成在控制中心得到的數(shù)據(jù)包有的是分開的,有的是合并的,得到的數(shù)據(jù)并不是一致的,影響系統(tǒng)的互聯(lián)互通。
[1] 國(guó)家無線電監(jiān)測(cè)中心.無線電監(jiān)測(cè)網(wǎng)傳輸協(xié)議(RMTP)V1.01,2008.7
[2] 董宏成.TTCN-3在RRC協(xié)議一致性測(cè)試中的應(yīng)用.電子技術(shù)應(yīng)用,2013.7
[3] 曹麗君.淺談我國(guó)無線電監(jiān)測(cè)工作的現(xiàn)狀與發(fā)展前景.?dāng)?shù)字化用戶,2014.8
[4] 張有鵬.基于RMTP協(xié)議的無線電監(jiān)測(cè)臺(tái)站互連技術(shù)研究.現(xiàn)代電子技術(shù),2014.3
RMTP Protocol Conformance Testing System Design and Implementation
Wen He, Tang Tao, Ma Shaowei, Li Yuqiang
(The State Radio_monitoring_center Testing Center, Beijing, 100041)
The Radio Monitoring Transfer Protocol(RMTP) is to solve the network system and the standard Protocol of data transmission between different Radio Monitoring facilities.We design and develop a set of RMTP protocol conformance testing system, and analyze a part of the monitoring facilities.
Radio monitoring; RMTP; Protocol conformance; Testing system
10.3969/J.ISSN.1672-7274.2016.07.006
TN98 文獻(xiàn)標(biāo)示碼:A
1672-7274(2016)07-0015-03