当前位置: 首页 > news >正文

基于DDS的SOA测试方案实现

随着以太网技术在车载网络中的应用,各种基于以太网的中间件也相继被应用在车内,如果对车载网络有过相关了解的小伙伴,对于作为中间件之一的DDS(数据分发服务Data Distribution Service)可能并不陌生;若没有接触过可以参考先前的文章《分布式实时通信——DDS技术》、《一文轻松了解DDS实时传输协议及其消息格式》,可从整体上对DDS有初步了解。

伴随DDS技术研究的深入以及在SOA中的应用,对基于DDS的SOA测试也被提上日程,本文主要结合一些项目的实际需求,探讨一种基于DDS的SOA测试实现方案

测试介绍

测试范围

基于DDS的SOA测试有标准协议层面的测试,也有自定义层面的测试,标准协议的测试能够验证协议本身在具体实现上是否符合标准中定义,自定义的测试能够进一步验证基于DDS的SOA功能实现是否符合企业要求。

在当前测试方案中,为满足实际的SOA功能需求,主要关注的测试点在两个方面:

1)协议一致性测试

RTPS协议的一致性

图 1 模型架构

(图片来源于Fast DDS官网:https://www.eprosima.com)

2)功能测试

· 服务的发布订阅测试

· 接口和参数测试

· 压力测试

· 系统测试

· 性能测试

……

测试方案

本方案中,主要涉及的软硬件如下:

仿真节点:基于eProsima公司的Fast DDS来实现,与被测节点间进行通信交互。

硬件:Vector公司的VN系列设备和VT系统,VN设备实现通信数据监测,VT系统实现DUT的供电控制及I/O信号仿真等。

软件:Vector公司的CANoe,使用CANoe的Test Module模块进行测试脚本的搭建与执行。

图 2 总体框架

CANoe通过socket将测试数据发送到DDS仿真节点,仿真节点接收到数据后,通过RTPS协议将数据发送到DDS被测节点;被测节点在接收到数据并处理后,会将处理的结果通过RTPS协议传输给仿真节点,仿真节点再将接收到的结果通过socket发送至CANoe,通过此过程可以对通信交互的行为和返回的结果等进行测试验证,以实现对被测节点的测试。

图 3 策略实现

模块剖析

1.Fast DDS仿真节点实现

Fast DDS是一种开源的DDS标准实现,基于C++语言开发,由eProsima公司发布并维护,在本方案中利用Fast DDS来实现仿真节点的设置,以便能够与被测节点进行直接的DDS通信交互。在Fast DDS实现中,需要对使用的实体等进行创建并设置。

图 4 Fast DDS实现

2.CANoe接口实现

CANoe在本方案中的主要作用是实现对Fast DDS仿真节点的控制,包括数据发送和返回结果接收等,并结合实际的测试用例需求完成对应测试逻辑的实现。在实际开发中,利用CANoe的Test Module模块编写测试脚本,通过socket调用的方式来完成本部分的功能。

图 5 CANoe接口实现

结果展示

基于如上方案开展测试仿真,在终端内可以看到运行的结果。

图 6 结果展示

本文主要结合实际的项目需求探讨了一种基于DDS的SOA测试实现方案,对涉及的测试范围以及在方案实施上的策略和模块等进行了介绍。

实际基于DDS的SOA应用中,根据不同的功能需求对测试的覆盖度要求也会有所不同,为更好展示本方案在基于DDS的SOA测试方面的功能实现,后续将在本文基础上对测试用例开发、脚本实现等做进一步介绍,敬请期待!

相关文章:

基于DDS的SOA测试方案实现

随着以太网技术在车载网络中的应用,各种基于以太网的中间件也相继被应用在车内,如果对车载网络有过相关了解的小伙伴,对于作为中间件之一的DDS(数据分发服务Data Distribution Service)可能并不陌生;若没有…...

LibTorch中Windows系统环境配置及CUDA不可用问题解决

前言:本文对在Windows系统上进行LibTorch开发环境配置及相关问题解决做一个较为详细的记录,以便后续查询使用。 使用环境版本: Windows 11 Visual Studio 2022 CUDA 12.0 LibTorch 1.13.1_cu11.7 目录一、LibTorch简介二、LibTorch下载安装三…...

Java并发编程实战二

线程间的通讯方式 1.volitate(缓存一致性协议),synchronize,lock(都保证可见性) 2.wait.notify,await(),signal(前两个是Object,后两个属于lock) 3.管道输入、输出流 (示例代码:PipeInOut.java)(目前几乎没人使用) 管道输入/输…...

Linux中最基本的命令ls的用法有哪些?

Linux是一种流行的操作系统,被广泛应用于服务器和个人电脑。Linux命令行界面是使用Linux操作系统的关键。其中一个最基本的命令是"ls"命令,该命令用于列出指定目录中的所有文件和子目录。在这篇文章中,我们将探讨ls命令及其各种用途…...

第 100002(十万零二)个素数是多少?

题目描述 素数就是不能再进行等分的整数。比如7,11。而 9 不是素数,因为它可以平分为 3 等份。一般认为最小的素数是2,接着是 3,5,... 请问,第 100002(十万零二)个素数是多少? 请注意&#xff1…...

Lua迭代器

Lua迭代器 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。 在 Lua 中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。 泛型 f…...

同步与互斥之信号量

目录 1、信号量用于线程的互斥 验证 2、信号量用于线程的同步 验证 3、无名信号量用于进程间互斥 代码一 代码二 验证 4、有名信号量 用于进程间同步和互斥 验证 信号量广泛用于进程或线程间的同步和互斥,信号量本质上是一个非负的整数计数器,它…...

如何当个优秀的文档工程师?从 TC China 看技术文档工程师的自我修养

本文系 NebulaGraph Community Academic 技术文档工程师 Abby 的参会观感,讲述了她在中国技术传播大会分享的收获以及感悟。 据说,技术内容领域、传播领域的专家和决策者们会在中国技术传播大会「tcworld China 2022」大会上分享心得。作为一名技术文档工…...

如何学习k8s

学习Kubernetes可以遵循以下步骤: 了解Kubernetes的基本概念和架构。学习Kubernetes前,需要了解它的基本概念和组成部分,包括Pod、Service、ReplicaSet、Deployment、Namespace等等,同时也需要了解Kubernetes的整体架构和工作原理…...

【SSM】MyBatis(十.动态sql)

文章目录1.if2.where3.trim4.set5. choose when otherwise6.foreach6.1 批量删除6.2 批量增加7.sql1.if <select id"selectByMultiCondition" resultType"Car">select * from t_car where 1 1<if test"brand ! null and brand ! ">…...

最近很多人都在说 “前端已死”,讲讲我的看法

转自 : 掘金 作者 : Ethan_Zhou 现状 我记得去年脉脉的论调还都是 客户端已死&#xff0c;前后端还都是一片祥和&#xff0c;有秀工资的&#xff0c;有咨询客户端转前端的&#xff0c;怎么最近打开脉脉一看&#xff0c;风向变了&#xff1f; 随便刷几下&#xff0c;出来的信息…...

大家好,我是火旺技术

大家好&#xff0c;我是火旺技术 在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用。这其中&#xff0c;家乡特色推荐的网络应用已经成为外国家乡推荐系统的一种很普遍的方式。不过&#xff0c;在国内&#xff0c;管理网站可能还处于起步阶段。 …...

【Java并发编程系列】全方位理解多线程几乎包含线程的所有操作哦

文章目录一、概述及目录二、实现多线程的方式2.1 继承Tread类&#xff0c;重写run方法。start方法2.2 实现Runnable方法&#xff0c;并实现run接口方法2.3 实现Callable接口重写call方法&#xff0c;Feature.get()获取返回值三、线程的执行流程3.1 执行流程3.2 start方法和 run…...

天宝S6测量机器人/天宝S6全站仪参数/教程/Trimble 天宝全站仪

TRIMBLE DR PLUS技术 Trimble DR Plus™距离测量技术实现更大范围的直接反射测量&#xff0c;不使用棱镜也能进行长距离测量。难以抵达或不安全的测 量目标&#xff0c;对Trimble S6来说不再是问题。Trimble DR Plus结合 了MagDrive™磁驱伺服技术&#xff0c;使测量的快捷和…...

c++基础知识汇总

目录 1、基础 1.2 注释 1.3 变量 1.4 常量 1.5 关键字 1.6 标识符命名规则 2 数据类型 2.1 整型 2.2 sizeof关键字 2.3 实型&#xff08;浮点型&#xff09; 2.4 字符型 2.5 转义字符 2.6 字符串型 2.7 布尔类型 bool 2.8 数据的输入 1、基础 1.2 注释 作用&a…...

重磅!基于GPT-4的全新智能编程助手 GitHub Copilot X 来了!

GitHub Copilot相信大家一定不陌生了&#xff0c;强大的智能代码补全功能一度让媒体直呼程序员要被替代。随着OpenAI推出全新的GPT-4&#xff0c;GitHub Copilot也在3月22日&#xff0c;推出了全新一代产品&#xff1a;GitHub Copilot X 。最新的GitHub Copilot X 不仅可以自动…...

第04章_运算符

第04章_运算符 &#x1f3e0;个人主页&#xff1a;shark-Gao &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是shark-Gao&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f389;目前状况&#xff1a;23届毕业生&#xff0c;目前在某公…...

Excel 文件比较工具:xlCompare 11.0 Crack

&#xff08;Excel 文件比较工具&#xff09;xlCompare 11.0 下载并安装最新版本的 xlCompare。下载是一个功能齐全的版本。 筛选匹配的行 筛选不同的行 仅显示两个 Excel 文件中存在的行&#xff0c;并排除新&#xff08;已删除&#xff09;行 隐藏在另一张工作表上具有相应行…...

802.1x认证原理

802.1x认证原理802.1X认证简介802.1X认证协议802.1X认证流程802.1X认证简介 定义&#xff1a;802.1x协议是一种基于端口的网络接入控制协议。基于端口的网络接入控制&#xff0c;是指在局域网接入设备的端口这一级验证用户身份&#xff0c;并且控制其访问权限。优点&#xff1…...

GPIO的八种模式分析

GPIO是general purpose input output,即通用输入输出端口&#xff0c;作用是负责外部器件的信息和控制外部器件工作。 GPIO有如下几个特点&#xff1a;1.不同型号的IO口数量不同&#xff1b;2&#xff0c;反转快速&#xff0c;每次翻转最快只需要两个时钟周期&#xff0c;以ST…...

表面贴装TVS二极管选型与应用全解析

1. 表面贴装功率TVS二极管的核心优势解析在电信基站、工业控制系统等关键电力应用中&#xff0c;一次意外的浪涌事件可能导致数万元设备损坏和数小时系统宕机。传统通孔封装的TVS二极管虽然能提供基础保护&#xff0c;但实测数据显示其引线电感导致的额外电压尖峰可达60V以上。…...

手把手复现:在MATLAB/Simulink里搭建PMSM的两种解耦模型(附模型下载)

在MATLAB/Simulink中构建永磁同步电机解耦控制模型的实战指南 永磁同步电机&#xff08;PMSM&#xff09;因其高效率和高功率密度&#xff0c;已成为工业驱动和电动汽车领域的核心部件。但对于刚接触电机控制的工程师和学生来说&#xff0c;如何将教科书中的解耦控制理论转化为…...

全球化技术团队协作:跨越文化差异的沟通与管理实践

1. 从“理所当然”到“文化自觉”&#xff1a;全球化职场的思维转型在电子设计自动化&#xff08;EDA&#xff09;和半导体行业摸爬滚打了十几年&#xff0c;我参与过跨国项目&#xff0c;也带过分布在全球各地的团队。一个深刻的体会是&#xff0c;我们这些搞技术的&#xff0…...

如何用本地OCR工具快速提取视频硬字幕:3步完成专业字幕制作

如何用本地OCR工具快速提取视频硬字幕&#xff1a;3步完成专业字幕制作 【免费下载链接】video-subtitle-extractor 视频硬字幕提取&#xff0c;生成srt文件。无需申请第三方API&#xff0c;本地实现文本识别。基于深度学习的视频字幕提取框架&#xff0c;包含字幕区域检测、字…...

Vim插件vim-gpt-commit:基于AI自动生成Git提交信息的实践指南

1. 项目概述&#xff1a;当Vim遇上AI&#xff0c;让Git提交信息告别“fix bug”作为一名在Vim和Git世界里摸爬滚打了十多年的老码农&#xff0c;我深知写好一个Git提交信息有多重要&#xff0c;又有多烦人。多少次&#xff0c;在完成一段复杂的代码修改后&#xff0c;面对那个空…...

【LangChain】 输出解析器(Output Parsers)完全指南

LangChain 输出解析器&#xff08;Output Parsers&#xff09;完全指南2026 年最新版 | 覆盖所有内置解析器 完整代码示例一、什么是输出解析器 输出解析器是 LangChain 中连接"自由文本 LLM"与"结构化程序"的桥梁。LLM 天生输出自然语言&#xff0c;但应…...

清华研究发现:当世界模型能够通过视觉想象而非纯文本思考时,其推理方式更接近人类!

模型能解高数题、写复杂代码&#xff0c;但遇到“把这张纸对折三次再剪个洞&#xff0c;展开后有几个窟窿”就频频卡壳。纯语言推理在符号和抽象规则上进步很快&#xff0c;但在物理常识、空间拓扑这些需要具象表征的任务上&#xff0c;依然存在明显的系统性短板。社区一直对“…...

AI微服务治理新范式(Istio for AI技术栈深度拆解)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI原生服务网格应用&#xff1a;2026奇点智能技术大会Istio for AI 在2026奇点智能技术大会上&#xff0c;Istio正式发布v1.22“Prometheus AI”版本&#xff0c;首次将LLM推理生命周期深度集成进数据平…...

从样式覆盖到版本升级:全面解析Antd表格固定列对齐问题的解决路径

1. 问题复现&#xff1a;当Antd表格固定列开始"跳舞" 第一次遇到Antd表格固定列错位问题时&#xff0c;我正喝着咖啡调试一个后台管理系统。突然发现表格右侧的固定列像被施了魔法——表头和内容列完全错开&#xff0c;活像跳着蹩脚的探戈。这种问题在Antd 3.x版本中…...

你的密码正在裸奔!一张RTX 5090,1小时破解60%的MD5密码

网络安全文章 文章目录 网络安全文章前言一、卡巴斯基到底做了什么&#xff1f;1.1 测试环境1.2 测试结果 二、为什么MD5这么脆弱&#xff1f;2.1 MD5设计初衷就不是用来存密码的2.2 MD5 vs bcrypt vs Argon2 对比 三、真实案例&#xff1a;算力平台租卡破解有多便宜&#xff1…...