了解汽車電子行業(yè)的人,近幾年可能經常見到一個詞“SOA”,那SOA具體是什么?作為測試人員應該要測試哪些內容呢?這篇文章就簡單給大家介紹一下。
01SOA是什么?
SOA(Service Oriented Architecture)是一種面向服務的架構,最早應用于IT行業(yè),雖然行業(yè)內對于SOA的定義沒有一個統(tǒng)一的描述,但是總體而言,SOA把功能定義成為服務,服務帶有明確的可調用接口,并可以通過網絡調用。
在汽車領域,對于高性能計算平臺而言,為了實現域控制器以及區(qū)域控制器之間的互聯互通和軟硬分離、縮短開發(fā)周期等優(yōu)勢,也引入了SOA的概念,而SOME/IP(Scalable service-Oriented MiddlewarE over IP)協議就是汽車領域實現SOA時常用的一種中間件協議。
02SOME/IP服務的通訊機制
服務是實現某種功能的方法或函數,基于C/S架構可以分為server(服務提供方)和client(服務消費方),通過服務接口描述服務及服務的內容,其接口類型及通訊機制如下:

Method:Client端向Server端發(fā)送請求報文
· RR-Method——Server端回復響應報文
· FF-Method——Server端不回復響應報文

RR-Method
(Request/Response)

FF-Method
(Fire&Forget)
Event:Client端訂閱一個服務,Server端發(fā)布該服務

Event
Field:· Setter/Getter——Client端請求獲取/設置某一屬性/狀態(tài)· Notifier——Client端訂閱某一屬性/狀態(tài)后,Server端發(fā)布該服務,發(fā)布條件同Event,不同的是訂閱后Server端會立即發(fā)送此Field的內容

Get/Set Field

Notifier Field
03SOA服務測試內容及環(huán)境搭建
SOME/IP協議的底層是通過以太網實現的,基于service的控制器之間對服務的調用流程,以及基于service的控制器和基于信號(signal)的控制器之間對信息的傳輸,都需要在軟件開發(fā)過程中進行驗證,一般劃分5個方面測試SOA的性能。
SD測試:服務的訂閱/發(fā)布測試
接口和參數測試:測試服務的每一個Interface,以及Interface對應的參數
功能測試:測試特定輸入/場景下的SOA功能輸出
壓力測試:多個客戶端同時調用某服務的測試
系統(tǒng)測試:服務的嵌套調用
進行SOA測試首先要能與DUT建立通訊(CAN(FD)/LIN/以太網),能控制DUT上下電和喚醒,可以參考以下的測試拓撲來監(jiān)控DUT的通訊,同時模擬傳統(tǒng)的CAN(FD)/LIN網絡節(jié)點,以及服務的client/server與DUT建立連接,測試DUT實現SOME/IP服務的狀態(tài)。

04SOA服務接口測試
現在,通過一個實例來講解SOA接口測試的內容和測試方法。
首先,需要提供服務接口的需求規(guī)范、服務矩陣(Ethernet Matrix)、服務數據庫(Arxml),如果涉及到S2S(service to signal)的接口,也要提供相關的CAN(FD)/LIN數據庫文件。
測試需求
以BodyDoorLock服務的RR method接口LockReq為例,DUT作為server,Tester模擬client。接口包含兩個請求參數(Source,Req),和一個響應參數(Result)。

測試規(guī)范
根據需求規(guī)范的描述設計測試用例,測試用例需要覆蓋接口的通訊機制,接口參數值以及S2S??梢詤⒖妓季S導圖的方式解析需求,并設計測試用例。

測試工程
首先,要在CANoe工程中添加SOME/IP數據庫文件,在CANoe界面點擊“Simulation > System and Communication Setup > Import Data Source > 選擇對應的Arxml文件 > Finish”。
然后在“System Explorer”中,綁定BodyDoorLock為SOME/IP服務。

CANoe工程導入對應的數據庫之后,可以跟DUT自動建立服務的發(fā)布和訂閱,也可以自動的解析服務接口的參數。測試工程師不需要考慮底層邏輯的實現,即服務發(fā)現(Service Discovery)和序列化等過程,只需要考慮接口層的使用即可。
如何在CAPL腳本中實現接口的調用和響應參數的檢查,可以參考vector的示例,開發(fā)測試腳本如下,對CAN信號的檢查不再贅述。

05注意事項
在整個測試過程中,或多或少會出現一些測試問題,這里根據常見的問題簡單做個總結:
Tips1
client和server對應都已經發(fā)送find service和offer service,但是CANoe和DUT之間不能自動完成服務的訂閱?
? 這種情況要在log中檢查IP地址、MAC地址、VLAN、ServiceID、InstanceID、MajorVersion、MinorVersion、TP Port等參數與定義的服務是否一致,如果不一致則可以在“Edit System Data > Model Editor”中修改這些參數。也可以在Model Editor中修改服務的接口參數,訂閱關系等。

Tips2
當仿真發(fā)送的參數是不定長數組時,canoe發(fā)送報文失敗?
? 模擬發(fā)送不定長數組的時候需要先定義數組的長度。

Tips3
定義參數名稱的時候使用了key,message等已經被canoe使用的關鍵字,調用這個參數的時候,CANoe報錯?
? 如果發(fā)現數據庫中的參數包含這些關鍵字,可以在Model Editor里面修改參數的名稱,再重新調用即可。

以上就是SOA測試的主要內容,篇幅有限,更多的細節(jié)就不一一贅述了,如果你有其他問題,歡迎留言探討
審核編輯:湯梓紅
-
汽車電子
+關注
關注
3042文章
8468瀏覽量
171851 -
接口
+關注
關注
33文章
9307瀏覽量
155713 -
SOA
+關注
關注
1文章
311瀏覽量
28858
原文標題:一文帶你了解SOA接口測試
文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
諧波測試報告的主要內容和形式有哪些
微機控制技術主要內容
微機原理主要內容包括哪些
一文搞懂UPS主要內容
SOA是什么_SOA主要的開發(fā)方法和工具分析
DSP的理論基礎和主要內容和應用分析

關于SOA測試的主要內容
評論