了解汽車電子行業的人,近幾年可能經常見到一個詞“SOA”,那SOA具體是什么?作為測試人員應該要測試哪些內容呢?這篇文章就簡單給大家介紹一下。
01SOA是什么?
SOA(Service Oriented Architecture)是一種面向服務的架構,最早應用于IT行業,雖然行業內對于SOA的定義沒有一個統一的描述,但是總體而言,SOA把功能定義成為服務,服務帶有明確的可調用接口,并可以通過網絡調用。
在汽車領域,對于高性能計算平臺而言,為了實現域控制器以及區域控制器之間的互聯互通和軟硬分離、縮短開發周期等優勢,也引入了SOA的概念,而SOME/IP(Scalable service-Oriented MiddlewarE over IP)協議就是汽車領域實現SOA時常用的一種中間件協議。
02SOME/IP服務的通訊機制
服務是實現某種功能的方法或函數,基于C/S架構可以分為server(服務提供方)和client(服務消費方),通過服務接口描述服務及服務的內容,其接口類型及通訊機制如下:
Method:Client端向Server端發送請求報文
· RR-Method——Server端回復響應報文
· FF-Method——Server端不回復響應報文
RR-Method
(Request/Response)
FF-Method
(Fire&Forget)
Event:Client端訂閱一個服務,Server端發布該服務
Event
Field:· Setter/Getter——Client端請求獲取/設置某一屬性/狀態· Notifier——Client端訂閱某一屬性/狀態后,Server端發布該服務,發布條件同Event,不同的是訂閱后Server端會立即發送此Field的內容
Get/Set Field
Notifier Field
03SOA服務測試內容及環境搭建
SOME/IP協議的底層是通過以太網實現的,基于service的控制器之間對服務的調用流程,以及基于service的控制器和基于信號(signal)的控制器之間對信息的傳輸,都需要在軟件開發過程中進行驗證,一般劃分5個方面測試SOA的性能。
SD測試:服務的訂閱/發布測試
接口和參數測試:測試服務的每一個Interface,以及Interface對應的參數
功能測試:測試特定輸入/場景下的SOA功能輸出
壓力測試:多個客戶端同時調用某服務的測試
系統測試:服務的嵌套調用
進行SOA測試首先要能與DUT建立通訊(CAN(FD)/LIN/以太網),能控制DUT上下電和喚醒,可以參考以下的測試拓撲來監控DUT的通訊,同時模擬傳統的CAN(FD)/LIN網絡節點,以及服務的client/server與DUT建立連接,測試DUT實現SOME/IP服務的狀態。
04SOA服務接口測試
現在,通過一個實例來講解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信號的檢查不再贅述。
05注意事項
在整個測試過程中,或多或少會出現一些測試問題,這里根據常見的問題簡單做個總結:
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測試的主要內容,篇幅有限,更多的細節就不一一贅述了,如果你有其他問題,歡迎留言探討
審核編輯:湯梓紅
-
汽車電子
+關注
關注
3029文章
8023瀏覽量
167805 -
接口
+關注
關注
33文章
8691瀏覽量
151915 -
SOA
+關注
關注
1文章
293瀏覽量
27572
原文標題:一文帶你了解SOA接口測試
文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論