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