IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 一文带你了解SOA接口测试 -> 正文阅读

[系统运维]一文带你了解SOA接口测试

了解汽车电子行业的人,近几年可能经常见到一个词“SOA”,那SOA具体是什么?作为测试人员应该要测试哪些内容呢?这篇文章就简单给大家介绍一下。

01?SOA是什么?

SOA(Service Oriented Architecture)是一种面向服务的架构,最早应用于IT行业,虽然行业内对于SOA的定义没有一个统一的描述,但是总体而言,SOA把功能定义成为服务,服务带有明确的可调用接口,并可以通过网络调用。

在汽车领域,对于高性能计算平台而言,为了实现域控制器以及区域控制器之间的互联互通和软硬分离、缩短开发周期等优势,也引入了SOA的概念,而SOME/IP(Scalable service-Oriented MiddlewarE over IP)协议就是汽车领域实现SOA时常用的一种中间件协议

02?SOME/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

???????????

???????

03? SOA服务测试内容及环境搭建

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服务的状态。

04? SOA服务接口测试

现在,通过一个实例来讲解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测试的主要内容,篇幅有限,更多的细节就不一一赘述了,如果你有其他问题,欢迎留言探讨!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-16 21:53:05  更:2022-06-16 21:54:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 14:50:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码