1.背景
在之前一篇《T-Box功能自動化測試方案》的案例分享中,我們介紹了一種利用安卓系統的控制交互指令,實現T-Box和手機端交互功能的自動化測試方案。但是在項目開發前期,由于T-Box、TSP后臺、App可能由不同的廠家負責開發,每個產品開發的進度和完整度是不一致的。所以為了更早的對T-Box的功能進行自動化測試和驗證,如果T-Box與TSP后臺的通信使用了MQTT協議,則可以利用MQTT協議的特點,通過CANoe仿真另外一個Client,實現CANoe、Broker和T-Box之間的信息交互。
MQTT通信模型
MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議)是IBM在1999年發布的一種基于發布/訂閱(Publish/Subscribe)模式的"輕量級"通訊協議。該協議可用極少的代碼和有限的帶寬,為連接遠程設備提供實時可靠的消息服務。作為一種低開銷、低帶寬占用的即時通訊協議,MQTT在物聯網等領域有很廣泛的應用。
MQTT也是一種基于客戶端-服務器的發布/訂閱消息協議,包含發布者(Publisher)、代理(Broker)、訂閱者(Subscriber)三個角色。發布者和訂閱者之間沒有直接的連接,需要通過Broker進行消息的存儲和轉發,而Broker又通過主題(Topic)進行消息的發送和接收。
圖1 MQTT通信模型
一個典型的MQTT消息通信流程如圖1所示:
1)發布者(Publisher)連接到Broker;
2)訂閱者(Subscribers)連接到Broker,并訂閱主題“vehiclespeed”;
3)發布者(Publisher)發送給Broker一條消息,主題為“vehiclespeed”;
4) Broker收到Publisher的消息后,發現Subscriber訂閱了“vehiclespeed”主題,然后將消息轉發給Subscriber;
5)訂閱者(Subscribers)從Broker接收發布者(Publisher)發送的消息。
2. CANoe CFS介紹和配置
CANoe的連接特性服務(Connectivity Features Service)主要用于物聯網或工業領域支持MQTT協議的設備,CANoe將這些設備抽象成分布式對象(Distributed Objects),通過本地網絡(Local Network)或云端代理服務器實現各客戶端之間的通信。同時CANoe 15.0版本新增了一種新的通信方式,讓代理(Broker)在CANoe中運行來實現通信,從而實現一些故障注入的測試。
本文主要以本地網絡的形式對MQTT的仿真和測試進行介紹,其中發布者和訂閱者通過CANoe仿真實現,Broker可使用真實的服務器,或者在本地電腦搭建測試用Broker,將Broker地址(需使用外網的IP或域名)和端口配置到TBox中。
Broker搭建完成后,在CANoe的Options設置窗口中配置Broker的IP地址和端口(MQTT功能僅在連接CANoe license時可用),示例如圖2所示:
圖2 CANoe MQTT配置界面
3. MQTT環境配置
在仿真MQTT Client之前,需要在CANoe的Communication Setup環境中手動創建Distributed Objects的接口(Interfaces)和對象(Objects),或者通過vCDL文件,創建MQTT的數據庫。
手動創建MQTT數據庫流程如下:
1) 創建需要的通信接口;
2) 選擇Objects,創建需要通信的對象;
3) 為每個對象創建對應的數據;
4) 選擇創建的Data數據,在右側MQTT配置窗口中配置其屬性值。
創建vCDL數據庫的流程如下:
1) 打開 “Open vCDL Editor”;
2) 創建MQTT的接口、對象和數據;
3) 定義MQTT的屬性值;
4) 選擇import Data Source導入創建好的vCDL文件。
vCDL導入成功以后,可查看定義屬性及參數,如圖3所示:
圖3 MQTT模型編輯界面
使用vCDL創建MQTT數據庫的示例如圖4所示:
圖4 MQTT vCDL數據庫開發界面
4.測試介紹
通過上面的配置,下面以遠程解閉鎖控制測試為例,為大家介紹下測試執行過程:
圖5 T-Box測試環境
測試環境如圖5所示,由于此測試方案CANoe是調用測試電腦的網卡與Broker進行通信,所以需要測試電腦可連接外網。
當CANoe運行時,會自動連接到Broker。測試數據流如下:
1) CANoe(Publisher)首先仿真TSP發送遠程解鎖請求給Broker;
2) Broker根據Topic,自動轉發該請求給T-Box(Subscriber)。T-Box收到該遠程請求后,通過CAN或Ethernet將遠程解鎖請求發送至車內節點;
3) CANoe仿真車內節點反饋遠程解鎖成功的應答;
4) 收到遠程解鎖成功應答后,T-Box(Publisher)把遠程解鎖執行結果上傳至Broker,Broker根據Topic,自動轉發該請求給CANoe(Subscriber)。
測試交互的數據如圖6所示:
圖6 CANoe MQTT數據監控窗口
5.總結
本方案利用MQTT協議的技術特點,無需TSP提供額外的API接口,即可實現T-Box遠程功能的自動化測試,可以在項目早期完成對T-Box的功能驗證。根據不同的技術特點,北匯信息已實現在線測試、離線分析等不同的T-Box自動化測試的方案,歡迎大家進一步溝通交流。
注:文中部分圖片來源于Vector。
-
CANoe
+關注
關注
4文章
66瀏覽量
8666
發布評論請先 登錄
相關推薦
評論