了解汽車電子行業(yè)的人,近幾年可能經(jīng)常見到一個詞“SOA”,那SOA具體是什么?作為測試人員應(yīng)該要測試哪些內(nèi)容呢?這篇文章就簡單給大家介紹一下。
01SOA是什么?
SOA(Service Oriented Architecture)是一種面向服務(wù)的架構(gòu),最早應(yīng)用于IT行業(yè),雖然行業(yè)內(nèi)對于SOA的定義沒有一個統(tǒng)一的描述,但是總體而言,SOA把功能定義成為服務(wù),服務(wù)帶有明確的可調(diào)用接口,并可以通過網(wǎng)絡(luò)調(diào)用。
在汽車領(lǐng)域,對于高性能計算平臺而言,為了實現(xiàn)域控制器以及區(qū)域控制器之間的互聯(lián)互通和軟硬分離、縮短開發(fā)周期等優(yōu)勢,也引入了SOA的概念,而SOME/IP(Scalable service-Oriented MiddlewarE over IP)協(xié)議就是汽車領(lǐng)域?qū)崿F(xiàn)SOA時常用的一種中間件協(xié)議。
02SOME/IP服務(wù)的通訊機(jī)制
服務(wù)是實現(xiàn)某種功能的方法或函數(shù),基于C/S架構(gòu)可以分為server(服務(wù)提供方)和client(服務(wù)消費(fèi)方),通過服務(wù)接口描述服務(wù)及服務(wù)的內(nèi)容,其接口類型及通訊機(jī)制如下:
Method:Client端向Server端發(fā)送請求報文
· RR-Method——Server端回復(fù)響應(yīng)報文
· FF-Method——Server端不回復(fù)響應(yīng)報文
RR-Method
(Request/Response)
FF-Method
(Fire&Forget)
Event:Client端訂閱一個服務(wù),Server端發(fā)布該服務(wù)
Event
Field:· Setter/Getter——Client端請求獲取/設(shè)置某一屬性/狀態(tài)· Notifier——Client端訂閱某一屬性/狀態(tài)后,Server端發(fā)布該服務(wù),發(fā)布條件同Event,不同的是訂閱后Server端會立即發(fā)送此Field的內(nèi)容
Get/Set Field
Notifier Field
03SOA服務(wù)測試內(nèi)容及環(huán)境搭建
SOME/IP協(xié)議的底層是通過以太網(wǎng)實現(xiàn)的,基于service的控制器之間對服務(wù)的調(diào)用流程,以及基于service的控制器和基于信號(signal)的控制器之間對信息的傳輸,都需要在軟件開發(fā)過程中進(jìn)行驗證,一般劃分5個方面測試SOA的性能。
SD測試:服務(wù)的訂閱/發(fā)布測試
接口和參數(shù)測試:測試服務(wù)的每一個Interface,以及Interface對應(yīng)的參數(shù)
功能測試:測試特定輸入/場景下的SOA功能輸出
壓力測試:多個客戶端同時調(diào)用某服務(wù)的測試
系統(tǒng)測試:服務(wù)的嵌套調(diào)用
進(jìn)行SOA測試首先要能與DUT建立通訊(CAN(FD)/LIN/以太網(wǎng)),能控制DUT上下電和喚醒,可以參考以下的測試拓?fù)鋪肀O(jiān)控DUT的通訊,同時模擬傳統(tǒng)的CAN(FD)/LIN網(wǎng)絡(luò)節(jié)點,以及服務(wù)的client/server與DUT建立連接,測試DUT實現(xiàn)SOME/IP服務(wù)的狀態(tài)。
04SOA服務(wù)接口測試
現(xiàn)在,通過一個實例來講解SOA接口測試的內(nèi)容和測試方法。
首先,需要提供服務(wù)接口的需求規(guī)范、服務(wù)矩陣(Ethernet Matrix)、服務(wù)數(shù)據(jù)庫(Arxml),如果涉及到S2S(service to signal)的接口,也要提供相關(guān)的CAN(FD)/LIN數(shù)據(jù)庫文件。
測試需求
以BodyDoorLock服務(wù)的RR method接口LockReq為例,DUT作為server,Tester模擬client。接口包含兩個請求參數(shù)(Source,Req),和一個響應(yīng)參數(shù)(Result)。
測試規(guī)范
根據(jù)需求規(guī)范的描述設(shè)計測試用例,測試用例需要覆蓋接口的通訊機(jī)制,接口參數(shù)值以及S2S??梢詤⒖妓季S導(dǎo)圖的方式解析需求,并設(shè)計測試用例。
測試工程
首先,要在CANoe工程中添加SOME/IP數(shù)據(jù)庫文件,在CANoe界面點擊“Simulation > System and Communication Setup > Import Data Source > 選擇對應(yīng)的Arxml文件 > Finish”。
然后在“System Explorer”中,綁定BodyDoorLock為SOME/IP服務(wù)。
CANoe工程導(dǎo)入對應(yīng)的數(shù)據(jù)庫之后,可以跟DUT自動建立服務(wù)的發(fā)布和訂閱,也可以自動的解析服務(wù)接口的參數(shù)。測試工程師不需要考慮底層邏輯的實現(xiàn),即服務(wù)發(fā)現(xiàn)(Service Discovery)和序列化等過程,只需要考慮接口層的使用即可。
如何在CAPL腳本中實現(xiàn)接口的調(diào)用和響應(yīng)參數(shù)的檢查,可以參考vector的示例,開發(fā)測試腳本如下,對CAN信號的檢查不再贅述。
05注意事項
在整個測試過程中,或多或少會出現(xiàn)一些測試問題,這里根據(jù)常見的問題簡單做個總結(jié):
Tips1
client和server對應(yīng)都已經(jīng)發(fā)送find service和offer service,但是CANoe和DUT之間不能自動完成服務(wù)的訂閱?
? 這種情況要在log中檢查IP地址、MAC地址、VLAN、ServiceID、InstanceID、MajorVersion、MinorVersion、TP Port等參數(shù)與定義的服務(wù)是否一致,如果不一致則可以在“Edit System Data > Model Editor”中修改這些參數(shù)。也可以在Model Editor中修改服務(wù)的接口參數(shù),訂閱關(guān)系等。
Tips2
當(dāng)仿真發(fā)送的參數(shù)是不定長數(shù)組時,canoe發(fā)送報文失敗?
? 模擬發(fā)送不定長數(shù)組的時候需要先定義數(shù)組的長度。
Tips3
定義參數(shù)名稱的時候使用了key,message等已經(jīng)被canoe使用的關(guān)鍵字,調(diào)用這個參數(shù)的時候,CANoe報錯?
? 如果發(fā)現(xiàn)數(shù)據(jù)庫中的參數(shù)包含這些關(guān)鍵字,可以在Model Editor里面修改參數(shù)的名稱,再重新調(diào)用即可。
以上就是SOA測試的主要內(nèi)容,篇幅有限,更多的細(xì)節(jié)就不一一贅述了,如果你有其他問題,歡迎留言探討
審核編輯:湯梓紅
-
汽車電子
+關(guān)注
關(guān)注
3026文章
7941瀏覽量
166907 -
接口
+關(guān)注
關(guān)注
33文章
8575瀏覽量
151015 -
SOA
+關(guān)注
關(guān)注
1文章
287瀏覽量
27463
原文標(biāo)題:一文帶你了解SOA接口測試
文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論