[发明专利]一种基于通信异常注入的测试方法、装置及相关设备有效
申请号: | 202210468488.5 | 申请日: | 2022-04-29 |
公开(公告)号: | CN114844813B | 公开(公告)日: | 2023-07-04 |
发明(设计)人: | 吴捷成;韩旭 | 申请(专利权)人: | 广州文远知行科技有限公司 |
主分类号: | H04L43/12 | 分类号: | H04L43/12;H04L47/32 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 彭东威 |
地址: | 510000 广东省广州市黄埔区广州国际生物岛螺旋*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 通信 异常 注入 测试 方法 装置 相关 设备 | ||
本申请公开了一种基于通信异常注入的测试方法、装置及相关设备,包括:当需要发送消息时,判断是否需要注入异常;若是,基于所述消息对应的异常逻辑,采用预设的通信接口发送或丢弃所述消息;其中,所述通信接口为通过工厂模式对初始通信接口进行封装后得到的,所述异常逻辑通过工厂模式记载在所述通信接口中。在通过工厂模式创建对象时,不会对客户端暴露对象的创建逻辑,而是通过使用共同的接口来创建对象,在这种情况下,通过工厂模式增加通信接口的业务逻辑不需要改动初始通信接口,从而实现了在不修改现有代码的前提下,对消息进行了异常注入,便于进行通信异常情况的测试。
技术领域
本申请涉及自动驾驶技术领域,更具体地说,是涉及一种基于通信异常注入的测试方法、装置及相关设备。
背景技术
现有的分布式系统由多个相互独立的节点(node)组成,节点之间的通信方式因系统而异。为了适配多种通信方式的需求,现有的系统往往会将通信功能通过接口(interface)来实现,通信的发送方和接收方不需要了解所采用的具体通信方式,通过调用通信接口来实现通信功能。
例如,在自动驾驶软件系统中,可将整个软件系统看作一个分布式系统,系统中各个组件(如摄像机传感器、感知模块、规划模块等)可看作这个分布式系统的节点,它们之间相互独立,并通过共享内存等方式实现通信。
在分布式系统的开发过程中,需要对所开发的节点进行测试,其中,对通信异常情况的测试是非常重要的一环。然而,为了不影响系统在生产环境的正常运行,应该在不对现有节点的代码进行修改的前提下进行异常注入测试,如何在不修改节点的现有代码的前提下,进行通信异常情况的测试成为一个亟待解决的问题。
发明内容
有鉴于此,本申请提供了一种基于通信异常注入的测试方法、装置及相关设备,以实现在不修改节点的现有代码的前提下,进行通信异常测试。
为实现上述目的,本申请第一方面提供了一种基于通信异常注入的测试方法,包括:
当需要发送消息时,判断是否需要注入异常;
若是,基于所述消息对应的异常逻辑,采用预设的通信接口发送或丢弃所述消息;
其中,所述通信接口为通过工厂模式对初始通信接口进行封装后得到的,所述异常逻辑通过工厂模式记载在所述通信接口中。
优选地,所述通过工厂模式对初始通信接口进行封装的过程,包括:
调用预设的工厂方法构造所述初始通信接口,得到实例化的通信接口;
将所述实例化的通信接口封装到注册有异常逻辑的外层通信接口中。
优选地,将所述实例化的通信接口封装到注册有异常逻辑的外层通信接口中的过程,包括:
对预设的异常定义配置文件进行解析,得到异常逻辑;
将所述异常逻辑注册到外层通信接口中,并将所述实例化的通信接口封装到所述外层通信接口中。
优选地,所述异常逻辑包括与各消息主题对应的异常条件;所述判断是否需要注入异常的过程,包括:
获取运行数据,基于所述消息的主题、所述运行数据以及所述异常条件,判断是否需要注入异常。
优选地,所述运行数据包括就绪时间、当前时间、在所述主题下的上一次异常注入的时间、在所述主题下的异常注入次数;基于所述消息的主题、所述运行数据以及所述异常条件,判断是否需要注入异常的过程,包括:
基于所述消息的主题,获取与所述消息的主题匹配的目标异常条件;
若所述目标异常条件包含时间条件,基于所述就绪时间、当前时间以及在所述主题下的上一次异常注入的时间,判断是否满足所述时间条件,得到第一判断结果;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州文远知行科技有限公司,未经广州文远知行科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210468488.5/2.html,转载请声明来源钻瓜专利网。