張明凱 白鴻鈞 楊清祥



摘? ?要:介紹了一種在對LKJ系統自動化測試過程中獲取到遠端自動測試臺設備運行的實時監測數據。通過Thrift遠程調用接口方式將監測數據傳輸給Web服務器,同時將部分需記錄的數據進行保存操作,在瀏覽器頁面通過訪問Web服務器進行動態展示測試過程變化情況以及相關監測指標數據的變化等的技術架構。通過本技術架構解決了web瀏覽器實時展示測試過程中產生的監測圖像和其他指標數據的問題。本軟件技術架構能夠很好的解決實時數據傳輸和監控,傳感器數據監測等問題,具有很好的應用前景。
關鍵詞:自動測試;實時;數據監測;遠程調用
中圖分類號: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系統是我國國家鐵路和地方鐵路廣泛運用的列控系統,在保障列車運行安全方面有著極為重要的作用。為了保證LKJ系統相關軟件的準確無誤,提出了LKJ軟件自動化仿真測試的研究,這個問題的解決將很大的提高相關軟硬件測試的效率和準確性,為LKJ系統的安全保駕護航[1]。在我們研究關于LKJ軟件自動測試的過程中,遇到了如何將自動測試過程中產生的運行記錄數據以及監測數據等實時反應到客戶端供用戶查看的問題。文章將會通過介紹LKJ自動化仿真測試系統的基本組成架構和web端實時數據獲取方案等,提出一項通用的基本B/S架構設計的實時數據展現技術。
1? ?仿真測試系統組成
以往的大部分自動化測試程序都是CS架構設計[2-7],由于CS技術架構存在客戶端分散,不易升級管理等一系列問題,故本方案設計使用BS架構開展,各個客戶端用戶可以通過瀏覽器方式訪問使用本系統。
仿真測試系統主要由兩部分組成,一是仿真測試平臺;二是軟件仿真測試系統軟件,如圖1所示。
軟件仿真平臺主要由LKJ15S主機單元、擴展單元、DMI單元、交換機單元、信號采集單元、信號發生單元、軟件仿真單元、控制單元、機械單元等組成。軟件仿真測試軟件系統主要由測試控制軟件和BS仿真測試軟件兩部分組成[3-6]。
圖1? ?仿真測試系統組成圖
測試控制軟件通過CPCI總線與仿真平臺各單元通信[8-9],通過以太網與LKJ-15S通信,提供LKJ-15S輸入信號控制、數據采集、測試序列解釋執行等功能。采用C++語言開發,其中的各模塊分裝成單獨的庫文件,動態調用。
測試控制軟件提供thrift服務接口供應用服務器軟件調用,接收應用服務器軟件發送的啟動測試命令、測試序列、LKJ數據等。測試控制軟件通過數據庫與應用服務器軟件進行大批量數據交換,發送測試進度、測試結果以及測試過程中執行的操作、采集的LKJ實時數據等。
BS仿真測試系統采用JAVA和HTML5等前端技術實現,主要實現系統設置,用例圖形化編輯,用例腳本轉化,仿真測試,數據版本管理等功能,頁面采用WebSocket方式提供實時數據通信能力,滿足手動測試、軟件仿真時DMI界面動態顯示、LKJ數據實時顯示需要。
1.1? ?測控軟件設計
測試控制軟件是根據服務器發送的自動測試、手工測試、軟件仿真等指令,進行測試仿真。解析服務器發送的測試序列腳本文件,調用相關模塊產生所需信號,采集各物理通道的反饋數據,在檢查點比對反饋結果。軟件模塊劃分如圖2,其中信號發生模塊通過接收到web服務端等發送的信號生成指令,對指令進行解析并發送到對應的接口和設備以達到產生信號的目的。測試控制模塊主要針對自動測試過程中的腳本解析,腳本執行,自動測試結果判斷,測試結果報錯過程記錄等功能進行實現。數據采集模塊針對當前鏈接設備提供各個設備信號的實時獲取功能,供自動測試過程以及其他需要當前設備信號展示的地方進行調用。管理模塊主要是針對當前硬件環境的一些配置信息,如實現設備ID管理,IP分配管理,加密策略管理,測控軟件根據服務器最新版本自動升級等功能。測控軟件主要作為web服務的一些底層服務支持使用,并且主要通過Thrift接口進行數據通信,控制等,部分通過數據庫共享機制實現數據一致性的共享。
圖2? ?測控軟件組成圖
2.2? ?BS仿真測試軟件
BS仿真測試軟件主要結構如圖3所示。客戶端與服務端通信采用WebSocket和AJAX技術實現。WebSocket是HTML5提供的一種瀏覽器與服務器間進行全雙工通訊的網絡技術,依靠這種技術可以實現客戶端和服務器端的長連接、雙向實時通信。AJAX 是一種用于創建快速動態網頁的技術。通過在后臺與服務器進行少量數據交換,AJAX 可以使網頁實現異步更新。這樣可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。傳統的網頁(不使用 AJAX)如果需要更新內容,必需重載整個網頁面。根據兩種技術特點,當需要滿足實時通信時選擇使用WebSocket技術解決[10-13],否則使用AJAX技術進行前后端通信。Web服務器作為測控軟件的上一層應用主要通過Thrift接口進行相關通信。
圖3? ?BS仿真測試軟件結構圖
主要業務模塊劃分為系統設置、測試用例管理、仿真測試、查詢統計,軟件版本管理模塊。系統設置功能模塊主要完成軟件系統的基本管理功能如人員組織機構管理,權限管理,數據字典管理,仿真平臺管理,客戶端管理。仿真平臺管理是對當前接入系統的平臺信息進行認證注冊,只有通過注冊的平臺才會在系統中供客戶使用,客戶端管理是針對訪問系統的PC,手機端設備進行認證的過程,通過管理員審核相關設備信息進行系統內注冊,注冊通過的設備可以訪問本系統,支持加入黑名單功能禁止部分設備訪問本系統。測試用例管理功能是針對用戶編寫測試用例比較困難的問題提供了一種圖形化編輯測試用例的功能,能更加直觀的完成用例編寫工作,提高了用例編寫效率。仿真測試功能主要包括手動測試、自動測試、仿真調試三個功能,手動測試是根據頁面提供的各個設備模擬發生裝置發送相應的信號給測控軟件,測控軟件發送給相應的設備,再通過回采相應設備的信號情況進行顯示的過程。自動測試是用戶指定測試平臺,選擇需要測試的測試序列建立自動測試任務,通過遠程數據環境換裝并執行測試腳本信息,讓程序自動的發送信號,判斷執行邏輯并得出測試結論的一個過程。仿真調試是通過加載仿真調試器將需要仿真的軟件進行加載測試的過程,仿真調試支持多人在線調試,一人為主調試人,其他人通過輸入口令可遠程觀看調試過程,并給出相關建議。軟件版本管理功能主要是針對項目設計的各個軟件數據進行了集中分類按版本進行管理的功能,其中測控軟件的自動升級功能就是通過對比此處最新版本軟件實現的自動換裝,并且可通過此模塊功能實現遠程換裝操作[11]。
2? ?擴展應用
通過LKJ自動化測試系統的應用以及相關技術經過實踐的檢驗,我們可以提出以下通用架構設計,如圖4所示。
接下來針對圖4中各部分做簡要說明,其中①通道為各個遠端客戶機或者手機等移動終端連接Web服務器的通道,通過此通道獲取到相應的數據以及相關應用的界面展示效果。此通道可以通過多種形式進行數據交互連接,實時性要求高的數據可通過WebSocket的方式獲取,同樣出于安全考慮可以設置相關連接終端的用戶白名單機制,并可以通過Web應用程序詳細控制各個服務接口的權限訪問情況做到更加精細化的管理。Web應用服務器部分為自身系統主體,可根據自身業務需求進行功能完善。通道②主要連接數據庫服務器和文件服務器部分,讓Web服務通過通道②獲取持久化后的數據或者對相關數據進行持久化。數據存儲主要分為文件服務器和數據庫服務器,他們分別存儲非結構化數據和結構化數據,可以通過Web服務實現對相關數據的統計和數據挖掘分析工作,為相關管理人員提供決策的數據支撐,使決策更加科學合理化。監測控制服務器左側通過通道③與web服務器通信,右側通過通道④與外圍設備進行通信,同樣的可以通過通道⑤像web服務器一樣對數據存儲做相應的處理。通道③設計通過Thrift接口實現,主要基于Thrift框架自身優點比如開源相關技術案例社區比較多,同時是最好的多語言支撐的遠程服務框架,web應用服務通過Java實現,但是與硬件通信以及相關開發設計主要通過C++或者python實現,選擇Thrift就是盡量減少設備相關開發的變動情況。監測控制服務器主要完成各個外圍設備的接入工作,數據采集工作,控制指令解析發送工作等。通道④兼顧設備認證功能,根據設備信息從系統內校驗此設備是否是我們注冊的合法設備,返回各個設備監測信息等。通道⑤監測服務器將需要保存的數據進行記錄保存到數據庫或文件系統中。此架構設計普遍適用于遠程控制和實時監測等領域,可以作為今后物聯網領域的原子框架模型,將各個設備接入互聯網中進行集中管控,接下來將對本架構的應用進一步的探索。
圖4? ?監測實時數據軟件架構圖
3? ?結 論
技術架構經過LKJ自動化測試系統的應用,證明相關技術應用可靠,并根據應用情況提取出基本軟件模型,此模型應用場景廣闊,技術可行,數據傳輸效率高,安全可靠[14]。此軟件架構模型可以廣泛應用于今后的物聯網平臺研發等領域,必將成為今后實時監控領域的主流技術。
參考資料
[1]? ? 白鴻鈞,楊清祥,李冠軍,等.LKJ自動化測試系統圖形化技術研究[J].鐵道通信信號,2018,54(01):8—11.
[2]? ? 蘇白燕,許強,黃健,等.基于動態數據驅動的地質災害監測預警系統設計與實現[J].成都理工大學學報:自然科學版,2018,45(5):615—627.
[3]? ? 郭壯壯,武夢龍.基于虛擬儀器的自動測試系統設計[J].計算機測量與控制,2018,26(12):30—33.
[4]? ? 羅飛豹,李一楠.CTCS-2級列控車載設備自動仿真測試平臺設計與實現[J]鐵 道 通 信 信 號,2018,54(4):75—79.
[5]? ? 李斌斌.基于WebSocket協議的車聯網監控系統[D].西安:長安大學車輛工程,2018.
[6]? ? 曹文彬,譚新明,劉 備,等.基于事件驅動的高性能 WebSocket 服務器的設計與實現[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 技術在工業設備數據實時監測中的應用[J].計算機與現代化,2017(11):111—115.
[9]? ? 楊帆,孔維萍,蔣曉肖,等.基于THRIFT的RPC中間件在航天信息系統中的設計與實現[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的高鐵基礎設施在線監測系統[J]. 計算機系統應用,2016,25(2):38—44.
[12]? 陳麗楓,鄭力新,王佳斌.基于HTML5 WebSocket的Web實時通信機制的研究與實現[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 實時物聯網數據傳輸關鍵技術的研究[J].工業控制計算機,2016,29(11):33—36.