列車網(wǎng)絡(luò)應(yīng)用層控制軟件自動化測試方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明主要涉及列車網(wǎng)絡(luò)技術(shù)領(lǐng)域,特指一種列車網(wǎng)絡(luò)應(yīng)用層控制軟件自動化測 試方法。
【背景技術(shù)】
[0002] 目前軌道交通行業(yè)內(nèi)大部分可以提供列車網(wǎng)絡(luò)控制軟件的公司,其網(wǎng)絡(luò)平臺在硬 件以及底層驅(qū)動上是相對統(tǒng)一且成熟的。其中絕大部分的功能是通過列車網(wǎng)絡(luò)應(yīng)用層控制 軟件來實(shí)現(xiàn)的,而不同的應(yīng)用領(lǐng)域、不同的項(xiàng)目背景造成在統(tǒng)一的網(wǎng)絡(luò)平臺下,項(xiàng)目間功能 的差異化較大。且近年來列車網(wǎng)絡(luò)接入的車載設(shè)備越來越多,列車網(wǎng)絡(luò)承載的數(shù)據(jù)流越來 越大,網(wǎng)絡(luò)控制軟件功能越來越復(fù)雜,導(dǎo)致差異化越發(fā)的變大。
[0003]目前在軌道交通行業(yè)內(nèi)網(wǎng)絡(luò)控制軟件自動化測試系統(tǒng)較少,大多是針對底層驅(qū)動 的自動化測試系統(tǒng)。少數(shù)幾個針對網(wǎng)絡(luò)應(yīng)用層軟件的自動化測試系統(tǒng)大多是將網(wǎng)絡(luò)上開源 的自動化測試軟件框架簡單的移植到其網(wǎng)絡(luò)平臺上,需要開發(fā)專用的通信板卡與網(wǎng)絡(luò)設(shè)備 進(jìn)行接口,再通過面向?qū)ο?、解釋型的?jì)算機(jī)語言來編寫測試腳本(例如Python語言),然后 通過自動化測試軟件來執(zhí)行這些腳本并得到結(jié)果。另外定制化的測試方法運(yùn)用于不同項(xiàng)目 的網(wǎng)絡(luò)應(yīng)用層軟件的測試,將會造成資源浪費(fèi)、成本巨大、效率低下。
[0004] 現(xiàn)有的網(wǎng)絡(luò)應(yīng)用層軟件自動化測試系統(tǒng),需要開發(fā)專用的通信板卡或者工控機(jī)來 接入被測網(wǎng)絡(luò)系統(tǒng),雖然可以重復(fù)使用,但是可同時進(jìn)行的測試項(xiàng)目受通信板卡或者工控 機(jī)的數(shù)量約束,且存在硬件采購費(fèi)用。另外,現(xiàn)有的網(wǎng)絡(luò)應(yīng)用層控制軟件網(wǎng)絡(luò)數(shù)據(jù)量大,且 不同項(xiàng)目間的通信協(xié)議是不可重復(fù)利用的;由于依賴于各種不同的通信協(xié)議,各種轉(zhuǎn)化程 序以及測試腳本均是不可重復(fù)利用的。以上種種問題指明了已有的自動化測試系統(tǒng)的缺 點(diǎn),即需要花費(fèi)巨大的資源和成本,并且輸入的工作量不比被測系統(tǒng)開發(fā)的工作量少,導(dǎo)致 測試效率低下。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明要解決的技術(shù)問題就在于:針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一 種測試效率高、測試成本低的列車網(wǎng)絡(luò)應(yīng)用層控制軟件自動化測試方法。
[0006] 為解決上述技術(shù)問題,本發(fā)明提出的技術(shù)方案為: 一種列車網(wǎng)絡(luò)應(yīng)用層控制軟件自動化測試方法,包括以下步驟: 501、 測試開始,導(dǎo)入被測列車網(wǎng)絡(luò)應(yīng)用層控制軟件的各種數(shù)據(jù)傳輸協(xié)議,并對各種數(shù) 據(jù)傳輸協(xié)議中各變量進(jìn)行解析并定義,再存入變量庫; 502、 編寫協(xié)議轉(zhuǎn)換程序,用于實(shí)現(xiàn)以太網(wǎng)協(xié)議與各種數(shù)據(jù)傳輸協(xié)議之間的數(shù)據(jù)轉(zhuǎn)化; 503、 導(dǎo)入并執(zhí)行預(yù)設(shè)的測試用例對各控制軟件進(jìn)行測試,如測試結(jié)果與期望值相符則 判斷控制軟件合格,否則為不合格。
[0007] 作為上述技術(shù)方案的進(jìn)一步改進(jìn): 在步驟S03中,當(dāng)測試完成后,生成測試報告并以表格或圖形的形式展示或儲存。
[0008] 預(yù)設(shè)的測試用例包括用例ID、前置條件、輸入/操作步驟、期望結(jié)果、測試結(jié)論以 及實(shí)際輸出值共六個要素,步驟S03中的測試過程為:讀取用例ID、前置條件、輸入/操作 步驟和期望結(jié)果,并轉(zhuǎn)化為可執(zhí)行的腳本代碼進(jìn)行測試,生成實(shí)際輸出值與期望結(jié)果對比 生成測試結(jié)論。
[0009] 所述輸入/操作步驟通過中文進(jìn)行描述,并遵循"變量名+執(zhí)行動作+參數(shù)"的格 式,其中變量名為步驟SOl中變量經(jīng)解析及定義所得。
[0010] 所述期望結(jié)果通過中文進(jìn)行描述,并遵循"變量名+判斷條件+參數(shù)"的格式,其 中變量名為步驟SOl中變量經(jīng)解析及定義所得,參數(shù)為數(shù)值或者中文名稱,判斷條件和中 文名稱的參數(shù)均為事先配置。
[0011] 各種數(shù)據(jù)傳輸協(xié)議包括MVB協(xié)議、WTB協(xié)議、RS424協(xié)議、RS485協(xié)議、CAN協(xié)議和 以太網(wǎng)協(xié)議。
[0012] 在步驟SOl中,各種數(shù)據(jù)傳輸協(xié)議均為Excel格式,通過讀取Excel固定表頭或者 關(guān)鍵字獲取數(shù)據(jù)傳輸協(xié)議的各個要素,將各個要素中的信號名轉(zhuǎn)化為同等大小的變量名。
[0013] MVB協(xié)議包括五大要素,分別為端口號、端口周期、端口方向、端口大小、端口中信 號名稱及大小。
[0014] 在步驟S03中,對被測控制軟件的輸入變量以及輸出變量進(jìn)行顯示,并可對輸入 變量進(jìn)行變量強(qiáng)制。
[0015] 被測控制軟件的輸入變量以及輸出變量經(jīng)預(yù)設(shè)的表達(dá)式轉(zhuǎn)化后再進(jìn)行顯示。
[0016] 與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于: 本發(fā)明的列車網(wǎng)絡(luò)應(yīng)用層控制軟件自動化測試方法,不用開發(fā)專用的通信板卡或者工 控機(jī),減少測試過程中所需的硬件;導(dǎo)入各種數(shù)據(jù)傳輸協(xié)議來實(shí)現(xiàn)數(shù)據(jù)的自動定義,不同項(xiàng) 目的數(shù)據(jù)定義完全依靠數(shù)據(jù)傳輸協(xié)議,將極大減少人力、時間成本;另外只需對轉(zhuǎn)化程序運(yùn) 行平臺的編程規(guī)則進(jìn)行解析,即可自動生成轉(zhuǎn)化程序,提高了測試效率。
【附圖說明】
[0017] 圖1為本發(fā)明的測試系統(tǒng)結(jié)構(gòu)示意圖。請?zhí)峁﹫D1和圖3的Visio原圖。
[0018] 圖2為本發(fā)明的測試系統(tǒng)的方框圖。
[0019] 圖3為本發(fā)明測試方法中協(xié)議導(dǎo)入的流程圖。
[0020] 圖4為本發(fā)明測試方法中動作錄制的流程圖。
【具體實(shí)施方式】
[0021] 以下結(jié)合說明書附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步描述。
[0022] 如圖1至圖4所示,本實(shí)施例的列車網(wǎng)絡(luò)應(yīng)用層控制軟件自動化測試方法,包括以 下步驟: 501、 測試開始,導(dǎo)入被測列車網(wǎng)絡(luò)應(yīng)用層控制軟件的各種數(shù)據(jù)傳輸協(xié)議,并對各種數(shù) 據(jù)傳輸協(xié)議中各變量進(jìn)行解析并定義,再存入變量庫; 502、 編寫協(xié)議轉(zhuǎn)換程序,用于實(shí)現(xiàn)以太網(wǎng)協(xié)議與各種數(shù)據(jù)傳輸協(xié)議之間的數(shù)據(jù)轉(zhuǎn)化; 503、 導(dǎo)入并執(zhí)行預(yù)設(shè)的測試用例對各控制軟件進(jìn)行測試,如測試結(jié)果與期望值相符則 判斷控制軟件合格,否則為不合格。
[0023] 本實(shí)施例中,本測試方法所依托的測試系統(tǒng)由PC端、陪測端和被測端三部分組 成,陪測端與被測端均為列車網(wǎng)絡(luò)平臺產(chǎn)品。其中PC端與陪測端之間通過以太網(wǎng)連接,數(shù) 據(jù)傳輸方式為UDP,陪測端與被測端之間為網(wǎng)絡(luò)通信線纜,數(shù)據(jù)傳輸協(xié)議包括網(wǎng)絡(luò)系統(tǒng)項(xiàng)目 中所使用到的MVB協(xié)議、WTB協(xié)議、RS485/422協(xié)議、CAN協(xié)議、以太網(wǎng)協(xié)議。陪測端主要通 過模擬采集被測端的所有輸入數(shù)據(jù),并檢測被測端所有輸出數(shù)據(jù),通過編寫轉(zhuǎn)換軟件實(shí)現(xiàn)。 陪測端/被測端可以是單個模塊/單板,也可以使多個模塊/單板組成的陪測/被測系統(tǒng)。
[0024] 本實(shí)施例中,在步驟S03中,當(dāng)測試完成后,生成測試報告并以表格或圖形的形式 展示或儲存。
[0025] 本實(shí)施例中,各種數(shù)據(jù)傳輸協(xié)議包括MVB協(xié)議、WTB協(xié)議、RS424協(xié)議、RS485協(xié)議、 CAN協(xié)議和以太網(wǎng)協(xié)議。
[0026] 本實(shí)施例中,在步驟SOl中,各種數(shù)據(jù)傳輸協(xié)議均為Excel格式,且自動解析協(xié)議 中的變量并進(jìn)行定義。以MVB協(xié)議為例,MVB通信協(xié)議必須要包含五大要素:1、端口號;2、 端口周期;3、端口方向;4、端口大小;5、端口中信號名稱及大小。通過讀取EXCEL固定表頭 或者關(guān)鍵字獲取五大要素,并將信號名轉(zhuǎn)為同等大小的變量名存入變量庫,協(xié)議導(dǎo)入流程 請參考圖3。
[0027] 本實(shí)施例中,在步驟S02中,協(xié)議轉(zhuǎn)換程序的生成過程如下: 因?yàn)樽詣踊瘻y試方法需在PC端上運(yùn)行,通常需要通過以太網(wǎng)與被測端相連,如果被測 端不具備以太網(wǎng)接口,或者被測端應(yīng)用程序并不支持以太網(wǎng)協(xié)議,則需要一個陪測端,通過 陪測端上的轉(zhuǎn)換程序?qū)⒁蕴W(wǎng)協(xié)議下的數(shù)據(jù)轉(zhuǎn)為其他協(xié)議下的數(shù)據(jù)。例如被測端應(yīng)用程序 僅支持MVB協(xié)議,那么在轉(zhuǎn)換程序中,需要將UDP數(shù)據(jù)包(以太網(wǎng)協(xié)議)與MVB數(shù)據(jù)包(MVB 協(xié)議)相互轉(zhuǎn)化。其中只需要對轉(zhuǎn)換程序編程工具的編程規(guī)則進(jìn)行解析,即可自動生成UDP 協(xié)議與其他通信協(xié)議相互轉(zhuǎn)換的轉(zhuǎn)換程序。
[0028] 以編程工具M(jìn)ULTIPR0G5. 0為例,編寫一個支持UDP協(xié)議和MVB協(xié)議的應(yīng)用程序時 要包括4個內(nèi)容:1、定義數(shù)據(jù)類型;2、定義MVB端口信息(包括端口號、端口大小、物理地址 起始地址)和UDP端口信息(定義端口號);3、編寫描述MVB數(shù)據(jù)包與UDP數(shù)據(jù)包映射關(guān)系的 主程序(使用MULTIPR0G5. 0編程工具支持的ST語言);4、任務(wù)運(yùn)行周期。其中1、2、4點(diǎn)中的 信息,通過協(xié)議導(dǎo)入后即可獲知,第3點(diǎn)中主程序(ST語言)則是描述UDP數(shù)據(jù)包與MVB數(shù) 據(jù)包相互映射的關(guān)系,可以由自動化測試系統(tǒng)自行決定其映射關(guān)系。例如,有3個32字節(jié) 大小的MVB數(shù)據(jù)包(MVB1、MVB2、MVB3)需要填入1個1024大小的UDP數(shù)據(jù)包,那么UDP數(shù) 據(jù)包的第1-32字節(jié)則對應(yīng)MVBl數(shù)據(jù)包,第33-64字節(jié)則對應(yīng)MVB2數(shù)據(jù)包,第65-96字節(jié) 則對應(yīng)MVB3數(shù)據(jù)包。由于使用MULTIPR0G5. 0編程工具是可