当前位置: 首页 > 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测试方面的功能实现,后续将在本文基础上对测试用例开发、脚本实现等做进一步介绍,敬请期待!

http://www.lryc.cn/news/44351.html

相关文章:

  • LibTorch中Windows系统环境配置及CUDA不可用问题解决
  • Java并发编程实战二
  • Linux中最基本的命令ls的用法有哪些?
  • 第 100002(十万零二)个素数是多少?
  • Lua迭代器
  • 同步与互斥之信号量
  • 如何当个优秀的文档工程师?从 TC China 看技术文档工程师的自我修养
  • 如何学习k8s
  • 【SSM】MyBatis(十.动态sql)
  • 最近很多人都在说 “前端已死”,讲讲我的看法
  • 大家好,我是火旺技术
  • 【Java并发编程系列】全方位理解多线程几乎包含线程的所有操作哦
  • 天宝S6测量机器人/天宝S6全站仪参数/教程/Trimble 天宝全站仪
  • c++基础知识汇总
  • 重磅!基于GPT-4的全新智能编程助手 GitHub Copilot X 来了!
  • 第04章_运算符
  • Excel 文件比较工具:xlCompare 11.0 Crack
  • 802.1x认证原理
  • GPIO的八种模式分析
  • 携职教育:财会人常用必备,203个EXCEL快捷键汇总
  • 【美赛】2023年ICM问题Z:奥运会的未来(思路、代码)
  • CSS基础入门
  • 可重入锁、读写锁、邮戳锁 详解
  • HBase客户端、服务器端、列簇设计、HDFS相关优化,HBase写性能优化切入点,写异常问题检查点
  • DINO-DETR在COCO缩减数据集上实验结果分析
  • 语聊房app源码及架构设计
  • 什么是软件测试?5分钟带你快速了解!
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-手把手教你新增一个后效Shader
  • 构建产品帮助中心,促进SaaS企业的进步
  • 【Qt】Qt单元测试详解(四):Google Test