張明凱 白鴻鈞 楊清祥
摘? ?要:介紹了一種在對LKJ系統(tǒng)自動化測試過程中獲取到遠端自動測試臺設備運行的實時監(jiān)測數(shù)據(jù)。通過Thrift遠程調(diào)用接口方式將監(jiān)測數(shù)據(jù)傳輸給Web服務器,同時將部分需記錄的數(shù)據(jù)進行保存操作,在瀏覽器頁面通過訪問Web服務器進行動態(tài)展示測試過程變化情況以及相關監(jiān)測指標數(shù)據(jù)的變化等的技術架構(gòu)。通過本技術架構(gòu)解決了web瀏覽器實時展示測試過程中產(chǎn)生的監(jiān)測圖像和其他指標數(shù)據(jù)的問題。本軟件技術架構(gòu)能夠很好的解決實時數(shù)據(jù)傳輸和監(jiān)控,傳感器數(shù)據(jù)監(jiān)測等問題,具有很好的應用前景。
關鍵詞:自動測試;實時;數(shù)據(jù)監(jiān)測;遠程調(diào)用
中圖分類號:TP319? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A
Technical Research on Real-time Data Dynamic Display
of LKJ Automated Test System
ZHANG Ming-kai?覮,BAI Hong-jun,YANG Qing-xiang
(Henan Thinking Rail Transit Technology Research Institute Co.,Ltd.,Zhengzhou,Henan 450001,China)
Abstract:This paper introduces a real-time monitoring data obtained by remote test station equipment in the process of automatic testing of LKJ system. The monitoring data is transmitted to the Web server through Thrift remote call interface,and some data to be recorded is also carried out. The save operation,in the browser page,by accessing the web server to dynamically display the technical process of the change of the test process and the change of the relevant monitoring indicator data. Through the technical architecture,the problem that the web browser displays the monitoring image and other indicator data generated during the test in real time is solved. The software technology architecture can solve real-time data transmission and monitoring,sensor data monitoring and other issues,and has a good application prospect.
Key words:automated testing;real-time;data monitoring;remote call
LKJ系統(tǒng)是我國國家鐵路和地方鐵路廣泛運用的列控系統(tǒng),在保障列車運行安全方面有著極為重要的作用。為了保證LKJ系統(tǒng)相關軟件的準確無誤,提出了LKJ軟件自動化仿真測試的研究,這個問題的解決將很大的提高相關軟硬件測試的效率和準確性,為LKJ系統(tǒng)的安全保駕護航[1]。在我們研究關于LKJ軟件自動測試的過程中,遇到了如何將自動測試過程中產(chǎn)生的運行記錄數(shù)據(jù)以及監(jiān)測數(shù)據(jù)等實時反應到客戶端供用戶查看的問題。文章將會通過介紹LKJ自動化仿真測試系統(tǒng)的基本組成架構(gòu)和web端實時數(shù)據(jù)獲取方案等,提出一項通用的基本B/S架構(gòu)設計的實時數(shù)據(jù)展現(xiàn)技術。
1? ?仿真測試系統(tǒng)組成
以往的大部分自動化測試程序都是CS架構(gòu)設計[2-7],由于CS技術架構(gòu)存在客戶端分散,不易升級管理等一系列問題,故本方案設計使用BS架構(gòu)開展,各個客戶端用戶可以通過瀏覽器方式訪問使用本系統(tǒng)。
仿真測試系統(tǒng)主要由兩部分組成,一是仿真測試平臺;二是軟件仿真測試系統(tǒng)軟件,如圖1所示。
軟件仿真平臺主要由LKJ15S主機單元、擴展單元、DMI單元、交換機單元、信號采集單元、信號發(fā)生單元、軟件仿真單元、控制單元、機械單元等組成。軟件仿真測試軟件系統(tǒng)主要由測試控制軟件和BS仿真測試軟件兩部分組成[3-6]。
圖1? ?仿真測試系統(tǒng)組成圖
測試控制軟件通過CPCI總線與仿真平臺各單元通信[8-9],通過以太網(wǎng)與LKJ-15S通信,提供LKJ-15S輸入信號控制、數(shù)據(jù)采集、測試序列解釋執(zhí)行等功能。采用C++語言開發(fā),其中的各模塊分裝成單獨的庫文件,動態(tài)調(diào)用。
測試控制軟件提供thrift服務接口供應用服務器軟件調(diào)用,接收應用服務器軟件發(fā)送的啟動測試命令、測試序列、LKJ數(shù)據(jù)等。測試控制軟件通過數(shù)據(jù)庫與應用服務器軟件進行大批量數(shù)據(jù)交換,發(fā)送測試進度、測試結(jié)果以及測試過程中執(zhí)行的操作、采集的LKJ實時數(shù)據(jù)等。
BS仿真測試系統(tǒng)采用JAVA和HTML5等前端技術實現(xiàn),主要實現(xiàn)系統(tǒng)設置,用例圖形化編輯,用例腳本轉(zhuǎn)化,仿真測試,數(shù)據(jù)版本管理等功能,頁面采用WebSocket方式提供實時數(shù)據(jù)通信能力,滿足手動測試、軟件仿真時DMI界面動態(tài)顯示、LKJ數(shù)據(jù)實時顯示需要。
1.1? ?測控軟件設計
測試控制軟件是根據(jù)服務器發(fā)送的自動測試、手工測試、軟件仿真等指令,進行測試仿真。解析服務器發(fā)送的測試序列腳本文件,調(diào)用相關模塊產(chǎn)生所需信號,采集各物理通道的反饋數(shù)據(jù),在檢查點比對反饋結(jié)果。軟件模塊劃分如圖2,其中信號發(fā)生模塊通過接收到web服務端等發(fā)送的信號生成指令,對指令進行解析并發(fā)送到對應的接口和設備以達到產(chǎn)生信號的目的。測試控制模塊主要針對自動測試過程中的腳本解析,腳本執(zhí)行,自動測試結(jié)果判斷,測試結(jié)果報錯過程記錄等功能進行實現(xiàn)。數(shù)據(jù)采集模塊針對當前鏈接設備提供各個設備信號的實時獲取功能,供自動測試過程以及其他需要當前設備信號展示的地方進行調(diào)用。管理模塊主要是針對當前硬件環(huán)境的一些配置信息,如實現(xiàn)設備ID管理,IP分配管理,加密策略管理,測控軟件根據(jù)服務器最新版本自動升級等功能。測控軟件主要作為web服務的一些底層服務支持使用,并且主要通過Thrift接口進行數(shù)據(jù)通信,控制等,部分通過數(shù)據(jù)庫共享機制實現(xiàn)數(shù)據(jù)一致性的共享。
圖2? ?測控軟件組成圖
2.2? ?BS仿真測試軟件
BS仿真測試軟件主要結(jié)構(gòu)如圖3所示??蛻舳伺c服務端通信采用WebSocket和AJAX技術實現(xiàn)。WebSocket是HTML5提供的一種瀏覽器與服務器間進行全雙工通訊的網(wǎng)絡技術,依靠這種技術可以實現(xiàn)客戶端和服務器端的長連接、雙向?qū)崟r通信。AJAX 是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術。通過在后臺與服務器進行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁實現(xiàn)異步更新。這樣可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進行更新。傳統(tǒng)的網(wǎng)頁(不使用 AJAX)如果需要更新內(nèi)容,必需重載整個網(wǎng)頁面。根據(jù)兩種技術特點,當需要滿足實時通信時選擇使用WebSocket技術解決[10-13],否則使用AJAX技術進行前后端通信。Web服務器作為測控軟件的上一層應用主要通過Thrift接口進行相關通信。
圖3? ?BS仿真測試軟件結(jié)構(gòu)圖
主要業(yè)務模塊劃分為系統(tǒng)設置、測試用例管理、仿真測試、查詢統(tǒng)計,軟件版本管理模塊。系統(tǒng)設置功能模塊主要完成軟件系統(tǒng)的基本管理功能如人員組織機構(gòu)管理,權(quán)限管理,數(shù)據(jù)字典管理,仿真平臺管理,客戶端管理。仿真平臺管理是對當前接入系統(tǒng)的平臺信息進行認證注冊,只有通過注冊的平臺才會在系統(tǒng)中供客戶使用,客戶端管理是針對訪問系統(tǒng)的PC,手機端設備進行認證的過程,通過管理員審核相關設備信息進行系統(tǒng)內(nèi)注冊,注冊通過的設備可以訪問本系統(tǒng),支持加入黑名單功能禁止部分設備訪問本系統(tǒng)。測試用例管理功能是針對用戶編寫測試用例比較困難的問題提供了一種圖形化編輯測試用例的功能,能更加直觀的完成用例編寫工作,提高了用例編寫效率。仿真測試功能主要包括手動測試、自動測試、仿真調(diào)試三個功能,手動測試是根據(jù)頁面提供的各個設備模擬發(fā)生裝置發(fā)送相應的信號給測控軟件,測控軟件發(fā)送給相應的設備,再通過回采相應設備的信號情況進行顯示的過程。自動測試是用戶指定測試平臺,選擇需要測試的測試序列建立自動測試任務,通過遠程數(shù)據(jù)環(huán)境換裝并執(zhí)行測試腳本信息,讓程序自動的發(fā)送信號,判斷執(zhí)行邏輯并得出測試結(jié)論的一個過程。仿真調(diào)試是通過加載仿真調(diào)試器將需要仿真的軟件進行加載測試的過程,仿真調(diào)試支持多人在線調(diào)試,一人為主調(diào)試人,其他人通過輸入口令可遠程觀看調(diào)試過程,并給出相關建議。軟件版本管理功能主要是針對項目設計的各個軟件數(shù)據(jù)進行了集中分類按版本進行管理的功能,其中測控軟件的自動升級功能就是通過對比此處最新版本軟件實現(xiàn)的自動換裝,并且可通過此模塊功能實現(xiàn)遠程換裝操作[11]。
2? ?擴展應用
通過LKJ自動化測試系統(tǒng)的應用以及相關技術經(jīng)過實踐的檢驗,我們可以提出以下通用架構(gòu)設計,如圖4所示。
接下來針對圖4中各部分做簡要說明,其中①通道為各個遠端客戶機或者手機等移動終端連接Web服務器的通道,通過此通道獲取到相應的數(shù)據(jù)以及相關應用的界面展示效果。此通道可以通過多種形式進行數(shù)據(jù)交互連接,實時性要求高的數(shù)據(jù)可通過WebSocket的方式獲取,同樣出于安全考慮可以設置相關連接終端的用戶白名單機制,并可以通過Web應用程序詳細控制各個服務接口的權(quán)限訪問情況做到更加精細化的管理。Web應用服務器部分為自身系統(tǒng)主體,可根據(jù)自身業(yè)務需求進行功能完善。通道②主要連接數(shù)據(jù)庫服務器和文件服務器部分,讓Web服務通過通道②獲取持久化后的數(shù)據(jù)或者對相關數(shù)據(jù)進行持久化。數(shù)據(jù)存儲主要分為文件服務器和數(shù)據(jù)庫服務器,他們分別存儲非結(jié)構(gòu)化數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù),可以通過Web服務實現(xiàn)對相關數(shù)據(jù)的統(tǒng)計和數(shù)據(jù)挖掘分析工作,為相關管理人員提供決策的數(shù)據(jù)支撐,使決策更加科學合理化。監(jiān)測控制服務器左側(cè)通過通道③與web服務器通信,右側(cè)通過通道④與外圍設備進行通信,同樣的可以通過通道⑤像web服務器一樣對數(shù)據(jù)存儲做相應的處理。通道③設計通過Thrift接口實現(xiàn),主要基于Thrift框架自身優(yōu)點比如開源相關技術案例社區(qū)比較多,同時是最好的多語言支撐的遠程服務框架,web應用服務通過Java實現(xiàn),但是與硬件通信以及相關開發(fā)設計主要通過C++或者python實現(xiàn),選擇Thrift就是盡量減少設備相關開發(fā)的變動情況。監(jiān)測控制服務器主要完成各個外圍設備的接入工作,數(shù)據(jù)采集工作,控制指令解析發(fā)送工作等。通道④兼顧設備認證功能,根據(jù)設備信息從系統(tǒng)內(nèi)校驗此設備是否是我們注冊的合法設備,返回各個設備監(jiān)測信息等。通道⑤監(jiān)測服務器將需要保存的數(shù)據(jù)進行記錄保存到數(shù)據(jù)庫或文件系統(tǒng)中。此架構(gòu)設計普遍適用于遠程控制和實時監(jiān)測等領域,可以作為今后物聯(lián)網(wǎng)領域的原子框架模型,將各個設備接入互聯(lián)網(wǎng)中進行集中管控,接下來將對本架構(gòu)的應用進一步的探索。
圖4? ?監(jiān)測實時數(shù)據(jù)軟件架構(gòu)圖
3? ?結(jié) 論
技術架構(gòu)經(jīng)過LKJ自動化測試系統(tǒng)的應用,證明相關技術應用可靠,并根據(jù)應用情況提取出基本軟件模型,此模型應用場景廣闊,技術可行,數(shù)據(jù)傳輸效率高,安全可靠[14]。此軟件架構(gòu)模型可以廣泛應用于今后的物聯(lián)網(wǎng)平臺研發(fā)等領域,必將成為今后實時監(jiān)控領域的主流技術。
參考資料
[1]? ? 白鴻鈞,楊清祥,李冠軍,等.LKJ自動化測試系統(tǒng)圖形化技術研究[J].鐵道通信信號,2018,54(01):8—11.
[2]? ? 蘇白燕,許強,黃健,等.基于動態(tài)數(shù)據(jù)驅(qū)動的地質(zhì)災害監(jiān)測預警系統(tǒng)設計與實現(xiàn)[J].成都理工大學學報:自然科學版,2018,45(5):615—627.
[3]? ? 郭壯壯,武夢龍.基于虛擬儀器的自動測試系統(tǒng)設計[J].計算機測量與控制,2018,26(12):30—33.
[4]? ? 羅飛豹,李一楠.CTCS-2級列控車載設備自動仿真測試平臺設計與實現(xiàn)[J]鐵 道 通 信 信 號,2018,54(4):75—79.
[5]? ? 李斌斌.基于WebSocket協(xié)議的車聯(lián)網(wǎng)監(jiān)控系統(tǒng)[D].西安:長安大學車輛工程,2018.
[6]? ? 曹文彬,譚新明,劉 備,等.基于事件驅(qū)動的高性能 WebSocket 服務器的設計與實現(xiàn)[J].計算機應用與軟件,2018,35(01):21—27.
[7]? ? JIA M H,CHEN Y,CHEN Q,et al. A web service framework for astronomical remote observation in Antarctica by using satellite link[J].Elsevier Journal,2018(4):17—24.
[8]? ? 張文,牟艷,高振興,等.WebSocket 技術在工業(yè)設備數(shù)據(jù)實時監(jiān)測中的應用[J].計算機與現(xiàn)代化,2017(11):111—115.
[9]? ? 楊帆,孔維萍,蔣曉肖,等.基于THRIFT的RPC中間件在航天信息系統(tǒng)中的設計與實現(xiàn)[J]. 計算機測量與控制,2017,25(12):279—306.
[10]? LIU Zi-wei,LI Shao-bin,LI Yan,et al. Remote ATS simulation system based on WebSocket communication protocol[C].International Conference on Intelligent Computation Technology and Automation,2017(10):327—330.
[11]? 李道霞,張長生,郎向偉,等. 基于 WebSocke和ArcGIS Server的高鐵基礎設施在線監(jiān)測系統(tǒng)[J]. 計算機系統(tǒng)應用,2016,25(2):38—44.
[12]? 陳麗楓,鄭力新,王佳斌.基于HTML5 WebSocket的Web實時通信機制的研究與實現(xiàn)[J]. 微型機與應用,2016,35(10):88—91.
[13]? ZHANG Tong-guang,ZHAO Shuai,WU Bu-dan,et al.Light weight SOA-based twin-engine architecture for enterprise systems in fixed and mobile environments[J].China Communications,2016,(9):183—194.
[14]? 陳淏,高守瑋,岳金冬.基于WebSocket 實時物聯(lián)網(wǎng)數(shù)據(jù)傳輸關鍵技術的研究[J].工業(yè)控制計算機,2016,29(11):33—36.