邵金萍 劉建飛 張維行 王濤 秦玉軍
【摘? 要】網(wǎng)聯(lián)車載終端Tbox作為智能網(wǎng)聯(lián)的關(guān)鍵節(jié)點(diǎn),車內(nèi)與控制器通過(guò)傳統(tǒng)CAN總線或車載以太網(wǎng)進(jìn)行數(shù)據(jù)交互,車外與企業(yè)遠(yuǎn)程服務(wù)平臺(tái)通過(guò)基站無(wú)線技術(shù)進(jìn)行信息交互。實(shí)現(xiàn)Tbox應(yīng)用軟件自動(dòng)放行測(cè)試,能夠完成Tbox版本迭代升級(jí)的測(cè)試,有效提高軟件開(kāi)發(fā)品質(zhì)和測(cè)試效率。
【關(guān)鍵詞】Tbox;自動(dòng)化測(cè)試;車聯(lián)網(wǎng);軟件
中圖分類號(hào):U463.6? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? 文章編號(hào):1003-8639( 2024 )05-0076-02
The Automatic Test Technology Research of Networking Vehicle Terminal Software
SHAO Jinping,LIU Jianfei,ZHANG Weihang,WANG Tao,QIN Yujun
(Weichai Power Co.,Ltd.,Weifang 261061,China)
【Abstract】Tbox is an essential terminal of intelligent networking vehicles. It can perform data interaction with vehicle controllers by traditional CAN bus or Vehicle-mounted Ethernet inside while complete information exchange with enterprise remote service platform outside. The automatic test solution can be used to testify Tbox software for version upgradation automatically during developing phases so as to improve softeware accuracy and test efficiency.
【Key words】Tbox;automatic test;vehicle networking;software
作者簡(jiǎn)介
邵金萍(1984—),女,碩士,工程師,主要研究方向?yàn)閮?nèi)燃機(jī)電控測(cè)試。
1? 引言
網(wǎng)聯(lián)車載終端Tbox是一款集車載OBD通信模塊、高精度定位GPS/BD模塊、4G全網(wǎng)通信模塊、WIFI熱點(diǎn)模塊、G-Sensor、BT藍(lán)牙通信模塊、RS232串口通信模塊、DI/DO數(shù)字輸入輸出等于一體的智能通信車載終端。Tbox可根據(jù)客戶需求進(jìn)行定制化開(kāi)發(fā),被廣泛應(yīng)用于新能源汽車、商用車車隊(duì)定制管理、傳統(tǒng)車輛遠(yuǎn)程監(jiān)控定制管理等。Tbox除了具備遠(yuǎn)程升級(jí)、遠(yuǎn)程鎖車、故障監(jiān)控及診斷等功能外,還可對(duì)新能源車輛電池?cái)?shù)據(jù)、傳統(tǒng)ECU數(shù)據(jù)、車況數(shù)據(jù)、定位數(shù)據(jù)、駕駛行為數(shù)據(jù)等進(jìn)行監(jiān)測(cè)與存儲(chǔ),并上傳車聯(lián)網(wǎng)平臺(tái)進(jìn)行大數(shù)據(jù)深度挖掘。
通過(guò)進(jìn)行Tbox應(yīng)用軟件功能自動(dòng)化放行測(cè)試工具鏈研究,建立測(cè)試人員Tbox應(yīng)用軟件功能自動(dòng)化測(cè)試腳本開(kāi)發(fā)的能力,將有效提升Tbox應(yīng)用軟件功能的測(cè)試效率和品質(zhì),提高產(chǎn)品競(jìng)爭(zhēng)力,同時(shí)進(jìn)行汽車傳統(tǒng)行業(yè)云端交互自動(dòng)化測(cè)試方法的技術(shù)儲(chǔ)備。
2? Tbox測(cè)試框架
由于Tbox自動(dòng)化測(cè)試所需的輸入仿真(平臺(tái)指令下發(fā))和輸出監(jiān)測(cè)(ECU報(bào)文響應(yīng))閉環(huán)存在一定難度,目前基本采用手動(dòng)或半自動(dòng)化(比如ECU端通過(guò)自動(dòng)測(cè)試用例模擬發(fā)送數(shù)據(jù)流報(bào)文)的傳統(tǒng)方式進(jìn)行測(cè)試,依靠人在環(huán)方式記錄測(cè)試數(shù)據(jù)以及比對(duì)判斷測(cè)試結(jié)果的準(zhǔn)確性。但是該方法測(cè)試效率低且覆蓋度受限,并且,智能網(wǎng)聯(lián)Tbox終端產(chǎn)品系列和軟件版本多,更新迭代快,手動(dòng)測(cè)試方法難以滿足市場(chǎng)需求、研發(fā)的快速迭代和深度驗(yàn)證要求。Tbox測(cè)試架構(gòu)如圖1所示。
3? 自動(dòng)化測(cè)試開(kāi)發(fā)
3.1? 工具類通用性自動(dòng)化測(cè)試開(kāi)發(fā)
Tbox測(cè)試用到3項(xiàng)工具。其中,INCA用于進(jìn)行ECU實(shí)時(shí)數(shù)據(jù)監(jiān)控;CANalyzer用于進(jìn)行ECU通信和診斷報(bào)文監(jiān)控;串口繼電器用于控制ECU和Tbox各自T15開(kāi)關(guān)的自動(dòng)上下電。
1)INCA軟件的自動(dòng)化測(cè)試采用了基于Python的XML-RPC自動(dòng)化測(cè)試方法。XML-RPC是一種將命令和數(shù)據(jù)定義成XML文本格式,并使用HTTP協(xié)議進(jìn)行遠(yuǎn)程傳輸?shù)腞PC機(jī)制。RPC(Remote Procedure Call)稱為遠(yuǎn)程過(guò)程調(diào)用,一個(gè)RPC系統(tǒng)必然包括2部分:RPC客戶端,用來(lái)向RPC服務(wù)端調(diào)用方法并接收方法的返回值;RPC服務(wù)端用于響應(yīng)RPC客戶端的請(qǐng)求并執(zhí)行方法和回傳方法執(zhí)行結(jié)果。
針對(duì)服務(wù)端的自動(dòng)化腳本通過(guò)CLR類庫(kù)調(diào)用INCA對(duì)應(yīng)的接口文件incacom.dll和Etas.Base.ComSupport.dll執(zhí)行對(duì)應(yīng)方法,同時(shí)通過(guò)Xmlrpc第三方庫(kù)在RPC服務(wù)端構(gòu)造一個(gè)最基本的XML-RPC服務(wù)器架構(gòu),確定URL和端口后啟動(dòng)服務(wù)器并使其對(duì)這個(gè)連接可用,最終通過(guò)Pyinstaller將該部分腳本生成Exe可執(zhí)行文件,解決了32位DLL文件不能在64位Python環(huán)境下運(yùn)行的問(wèn)題。
針對(duì)客戶端的自動(dòng)化腳本通過(guò)Xmlrpc第三方庫(kù)用于調(diào)用注冊(cè)在XML-RPC服務(wù)器端的函數(shù)。INCA自動(dòng)化測(cè)試架構(gòu)如圖2所示。
2) CANalyzer軟件的自動(dòng)化測(cè)試采用了基于Python的COM組件自動(dòng)化測(cè)試方法。COM(Component Object Model)是微軟為Windows平臺(tái)提出的實(shí)現(xiàn)軟件互操作的標(biāo)準(zhǔn),所有在Windows組件管理器中經(jīng)過(guò)注冊(cè)的組件都可以實(shí)現(xiàn)對(duì)象交互。Pywin32提供了調(diào)用COM組件在內(nèi)的Windows API的擴(kuò)展命令。
針對(duì)CANalyzer應(yīng)用程序本身的自動(dòng)化腳本,包括通過(guò)Pywin32類庫(kù)調(diào)用CANalyzer的COM組件命令實(shí)現(xiàn)創(chuàng)建對(duì)象實(shí)例,獲取并調(diào)用CAPL函數(shù)名,獲取CANalyzer Write窗口內(nèi)容,開(kāi)始監(jiān)控報(bào)文,停止監(jiān)控報(bào)文等方法。其中,發(fā)送指定報(bào)文等CAPL函數(shù)是通過(guò)Python自動(dòng)寫(xiě)入.can文件中CAN消息事件相關(guān)代碼實(shí)現(xiàn)的。CANalyzer自動(dòng)化測(cè)試架構(gòu)如圖3所示。
3)通過(guò)串口繼電器實(shí)現(xiàn)ECU和Tbox終端T15開(kāi)關(guān)的自動(dòng)上下電。繼電器的自動(dòng)化測(cè)試采用基于Python的Serial第三方類庫(kù)[1],通過(guò)自動(dòng)化腳本收發(fā)485串口報(bào)文命令。自動(dòng)上下電用例執(zhí)行結(jié)果如圖4所示。
安裝完成USB轉(zhuǎn)RS485驅(qū)動(dòng)后,設(shè)置正確的電腦串口號(hào)和波特率,打開(kāi)并發(fā)送串口報(bào)文,實(shí)現(xiàn)控制繼電器DO開(kāi)關(guān)自動(dòng)斷開(kāi)和閉合,直到讀取串口回顯成功為止。串口繼電器如圖5所示。
3.2? 基于企業(yè)平臺(tái)的Web自動(dòng)化測(cè)試開(kāi)發(fā)
HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫(xiě),是用于從萬(wàn)維網(wǎng)服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議。HTTP協(xié)議工作于客戶端-服務(wù)端架構(gòu)上。瀏覽器作為HTTP客戶端通過(guò)URL向HTTP服務(wù)端(Web服務(wù)器)發(fā)送所有請(qǐng)求,請(qǐng)求消息包括請(qǐng)求行(Request line)、請(qǐng)求頭(Header)、空行和請(qǐng)求體4個(gè)部分。服務(wù)端根據(jù)客戶端請(qǐng)求頭獲取客戶端信息,客戶端通過(guò)請(qǐng)求體向服務(wù)端傳遞參數(shù)。請(qǐng)求類型包括GET請(qǐng)求、POST請(qǐng)求、PUT請(qǐng)求等。
HTTP響應(yīng)由響應(yīng)行、響應(yīng)頭、空行和響應(yīng)體4個(gè)部分組成。響應(yīng)行顯示使用的協(xié)議名稱和版本號(hào),響應(yīng)狀態(tài)碼及狀態(tài)碼描述。響應(yīng)頭向客戶端顯示響應(yīng)類型、字符編碼和字節(jié)大小等信息。響應(yīng)體是服務(wù)器發(fā)送到客戶端的實(shí)際內(nèi)容。
基于企業(yè)平臺(tái)的Web自動(dòng)化測(cè)試采用基于Web接口的自動(dòng)化測(cè)試方法。利用Python的Requests第三方庫(kù)編寫(xiě)自動(dòng)化測(cè)試腳本處理URL資源,發(fā)送HTTP格式報(bào)文,獲取Web端的Tbox應(yīng)用軟件各功能條目的ECU數(shù)據(jù)并以一定格式保存。
3.3? 基于APP的自動(dòng)化測(cè)試開(kāi)發(fā)
APP的自動(dòng)化測(cè)試采用了基于Appium的移動(dòng)端自動(dòng)化方案。執(zhí)行設(shè)備包括一臺(tái)安裝企業(yè)云平臺(tái)APP的移動(dòng)終端和一臺(tái)測(cè)試電腦,移動(dòng)終端和電腦通過(guò)USB連接。在電腦上安裝Appium并基于Python開(kāi)發(fā)自動(dòng)化腳本,通過(guò)執(zhí)行腳本可以自動(dòng)操作移動(dòng)終端上云平臺(tái)APP。同時(shí)自動(dòng)化腳本支持Api接口調(diào)用方式,不管自動(dòng)化測(cè)試用例部署在內(nèi)網(wǎng)環(huán)境哪臺(tái)機(jī)器上,都可以通過(guò)HTTP接口發(fā)起對(duì)APP的自動(dòng)化執(zhí)行。APP端自動(dòng)化測(cè)試基本架構(gòu)如圖6所示。
4? 結(jié)束語(yǔ)
本文提供了一種基于Web和APP的Tbox軟件自動(dòng)化測(cè)試思路,利用Python腳本實(shí)現(xiàn)了模擬Web平臺(tái)端和APP客戶端指令自動(dòng)下發(fā)及數(shù)據(jù)獲取;利用Python腳本調(diào)用ETAS INCA、Vector CANalyzer等測(cè)試工具,進(jìn)行ECU變量和報(bào)文數(shù)據(jù)自動(dòng)采集記錄;通過(guò)合理設(shè)計(jì)自動(dòng)測(cè)試用例步驟,逐條下發(fā)指令并和ECU響應(yīng)數(shù)據(jù)進(jìn)行閉環(huán)對(duì)比驗(yàn)證,確保由Tbox連接的輸入仿真(平臺(tái)指令下發(fā))和輸出監(jiān)測(cè)(ECU報(bào)文響應(yīng))邏輯對(duì)應(yīng)關(guān)系正確,極大提高了測(cè)試效率和準(zhǔn)確性。
參考文獻(xiàn):
[1] 馬飛. 運(yùn)行Python腳本的自動(dòng)化測(cè)試平臺(tái)設(shè)計(jì)及實(shí)現(xiàn)[J]. 中國(guó)集成電路,2018(10):54-57.
(編輯? 楊凱麟)
收稿日期:2023-09-30