
關注公眾號,點擊公眾號主頁右上角“ ··· ”,設置星標,實時關注智能汽車電子與軟件最新資訊
了解汽車電子行業的人,近幾年可能經常見到一個詞“SOA”,那SOA具體是什么?作為測試人員應該要測試哪些內容呢?這篇文章就簡單給大家介紹一下。
SOA(Service Oriented Architecture)是一種面向服務的架構,最早應用于IT行業,雖然行業內對于SOA的定義沒有一個統一的描述,但是總體而言,SOA把功能定義成為服務,服務帶有明確的可調用接口,并可以通過網絡調用。在汽車領域,對于高性能計算平臺而言,為了實現域控制器以及區域控制器之間的互聯互通和軟硬分離、縮短開發周期等優勢,也引入了SOA的概念,而SOME/IP(Scalable service-Oriented MiddlewarE over IP)協議就是汽車領域實現SOA時常用的一種中間件協議。
服務是實現某種功能的方法或函數,基于C/S架構可以分為server(服務提供方)和client(服務消費方),通過服務接口描述服務及服務的內容,其接口類型及通訊機制如下:
Method:Client端向Server端發送請求報文
· RR-Method——Server端回復響應報文
· FF-Method——Server端不回復響應報文
RR-Method
(Request/Response)
Event:Client端訂閱一個服務,Server端發布該服務
·?Setter/Getter——Client端請求獲取/設置某一屬性/狀態· Notifier——Client端訂閱某一屬性/狀態后,Server端發布該服務,發布條件同Event,不同的是訂閱后Server端會立即發送此Field的內容
SOME/IP協議的底層是通過以太網實現的,基于service的控制器之間對服務的調用流程,以及基于service的控制器和基于信號(signal)的控制器之間對信息的傳輸,都需要在軟件開發過程中進行驗證,一般劃分5個方面測試SOA的性能。接口和參數測試:測試服務的每一個Interface,以及Interface對應的參數
進行SOA測試首先要能與DUT建立通訊(CAN(FD)/LIN/以太網),能控制DUT上下電和喚醒,可以參考以下的測試拓撲來監控DUT的通訊,同時模擬傳統的CAN(FD)/LIN網絡節點,以及服務的client/server與DUT建立連接,測試DUT實現SOME/IP服務的狀態。?
現在,通過一個實例來講解SOA接口測試的內容和測試方法。首先,需要提供服務接口的需求規范、服務矩陣(Ethernet Matrix)、服務數據庫(Arxml),如果涉及到S2S(service to signal)的接口,也要提供相關的CAN(FD)/LIN數據庫文件。
以BodyDoorLock服務的RR method接口LockReq為例,DUT作為server,Tester模擬client。接口包含兩個請求參數(Source,Req),和一個響應參數(Result)。根據需求規范的描述設計測試用例,測試用例需要覆蓋接口的通訊機制,接口參數值以及S2S。可以參考思維導圖的方式解析需求,并設計測試用例。首先,要在CANoe工程中添加SOME/IP數據庫文件,在CANoe界面點擊“Simulation > System and Communication Setup > Import Data Source > 選擇對應的Arxml文件 > Finish”。然后在“System Explorer”中,綁定BodyDoorLock為SOME/IP服務。CANoe工程導入對應的數據庫之后,可以跟DUT自動建立服務的發布和訂閱,也可以自動的解析服務接口的參數。測試工程師不需要考慮底層邏輯的實現,即服務發現(Service Discovery)和序列化等過程,只需要考慮接口層的使用即可。如何在CAPL腳本中實現接口的調用和響應參數的檢查,可以參考vector的示例,開發測試腳本如下,對CAN信號的檢查不再贅述。
在整個測試過程中,或多或少會出現一些測試問題,這里根據常見的問題簡單做個總結:
Tips1?
client和server對應都已經發送find service和offer service,但是CANoe和DUT之間不能自動完成服務的訂閱???這種情況要在log中檢查IP地址、MAC地址、VLAN、ServiceID、InstanceID、MajorVersion、MinorVersion、TP Port等參數與定義的服務是否一致,如果不一致則可以在“Edit System Data > Model Editor”中修改這些參數。也可以在Model Editor中修改服務的接口參數,訂閱關系等。
Tips2
當仿真發送的參數是不定長數組時,canoe發送報文失敗?
??模擬發送不定長數組的時候需要先定義數組的長度。
Tips3
定義參數名稱的時候使用了key,message等已經被canoe使用的關鍵字,調用這個參數的時候,CANoe報錯??
??如果發現數據庫中的參數包含這些關鍵字,可以在Model Editor里面修改參數的名稱,再重新調用即可。
以上就是SOA測試的主要內容,篇幅有限,更多的細節就不一一贅述了,如果你有其他問題,歡迎留言探討
關注公眾號,點擊公眾號主頁右上角“ ··· ”,設置星標,實時關注智能汽車電子與軟件最新資訊【免責聲明】文章為作者獨立觀點,不代表旺材汽車電子立場。如因作品內容、版權等存在問題,請于本文刊發30日內聯系旺材汽車電子進行刪除或洽談版權使用事宜。