1.本技术实施例涉及汽车技术领域,具体涉及一种仿真测试方法、装置、电子设备及存储介质。
背景技术:2.随着自动驾驶技术的不断突破,自动驾驶仿真测试越来越受到各大传统主机厂和自动驾驶科技公司的关注和青睐,并逐渐成为自动驾驶研发过程中不可或缺的一环。将仿真测试自动化进行是在自动驾驶仿真领域的一个技术难题,是提升测试效率、规范测试流程的必经之路。
3.自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。在自动驾驶仿真测试领域,面临着场景库和大量的测试用例的调用。若不能实现仿真测试的自动化,那么需要耗费的人力、时间都是不可估量的,仿真测试工程师也将会面临繁琐乏味的体力工作。因此,将自动化测试理论引入到自动驾驶仿真测试领域是必要的,亦是一次跨产业的技术融合。
4.相关技术中,对于自动驾驶仿真测试往往需要人工实现,效率较低、成本较高、对人工依赖程度高。
技术实现要素:5.鉴于以上所述现有技术的缺点,本发明提供一种仿真测试方法、装置、电子设备及存储介质,以解决上述技术问题。
6.本发明提供的一种仿真测试装置,所述装置包括:
7.启闭控制模块,用于控制场景仿真模块的启闭,以及控制被测算法模块的启闭;
8.通信模块,与所述被测算法模块中的算法通信模块连接,以及与所述场景仿真模块连接,用于与所述被测算法模块和所述场景仿真模块进行通信;
9.测试执行模块,用于加载所述场景仿真模块的智能驾驶车辆仿真场景、将测试用例与智能驾驶车辆仿真场景进行关联、根据所述测试用例建立测试观测规则并对测试过程进行观测,以及记录观测结果。
10.于本发明一实施例中,所述启闭控制模块包括:
11.场景仿真控制模块,用于控制场景仿真模块的启闭;
12.算法控制模块,用于控制被测算法模块的启闭;
13.仿真时延模块,用于当获取到场景仿真模块开启指令,控制所述场景仿真控制模块在预设仿真时延时间完成控制所述场景仿真模块的开启。
14.于本发明一实施例中,所述启闭控制模块还包括:
15.算法时延模块,用于当获取到被测算法模块开启指令,控制所述算法控制模块在预设算法时延时间完成控制所述被测算法模块的开启。
16.于本发明一实施例中,所述装置还包括:
17.算法封装模块,用于对被测算法中的多个子算法进行封装,得到所述被测算法模块。
18.本发明提供的一种仿真测试方法,所述方法包括:
19.开启场景仿真模块和被测算法模块;
20.加载所述场景仿真模块的智能驾驶车辆仿真场景,将测试用例与智能驾驶车辆仿真场景进行关联;
21.根据所述测试用例建立测试观测规则并对测试过程进行观测,并记录观测结果。
22.于本发明一实施例中,根据所述测试用例建立测试观测规则并对测试过程进行观测包括:
23.基于所述智能驾驶车辆仿真场景和所述测试用例执行所述被测算法;
24.若执行完成,且满足预设观测条件,则观测结果为测试通过;
25.若执行过程中存在不满足所述预设观测条件,且不满足所述预设观测条件的时长超过预设时长,则观测结果为测试失败,并控制退出所述被测算法的执行。
26.于本发明一实施例中,加载所述场景仿真模块的智能驾驶车辆仿真场景,将测试用例与智能驾驶车辆仿真场景进行关联之前,所述方法包括:
27.与所述被测算法的信号流建立协议文件,将测试执行模块与被测算法模块中的算法通信模块建立通信连接,所述测试执行模块用于加载所述场景仿真模块的智能驾驶车辆仿真场景,将测试用例与智能驾驶车辆仿真场景进行关联,以及根据所述测试用例建立测试观测规则并对测试过程进行观测,并记录观测结果,所述测试执行模块包括所述被测算法。
28.于本发明一实施例中,开启场景仿真模块和被测算法模块包括:
29.当获取到场景仿真模块开启指令,控制在预设仿真时延时间完成所述场景仿真模块的开启;
30.当获取到被测算法模块开启指令,控制在预设算法时延时间完成所述被测算法模块的开启。
31.本发明提供的一种电子设备,包括:
32.一个或多个处理器;
33.存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如上述实施例中任一项所述的仿真测试方法。
34.本发明提供的一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述实施例中任一项所述的仿真测试方法。
35.本发明的有益效果:本发明中的仿真测试方法、装置、电子设备及存储介质,该方法通过开启场景仿真模块和被测算法模块,加载场景仿真模块的智能驾驶车辆仿真场景,将测试用例与智能驾驶车辆仿真场景进行关联,根据测试用例建立测试观测规则并对测试过程进行观测,并记录观测结果,能够将繁琐的人为测试步骤转为系统脚本再通过计算机等设备来执行,成功达到了仿真测试自动化串行进行的预期,解放了人力、提高了测试效率及测试有效性,降低了成本。
36.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不
能限制本技术。
附图说明
37.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
38.图1是本技术的一示例性实施例示出的仿真测试方法的实施环境示意图;
39.图2是本技术的一示例性实施例示出的仿真测试方法的流程图;
40.图3是本技术的图3是本技术的一示例性实施例示出的根据测试用例建立测试观测规则并对测试过程进行观测的流程图;
41.图4是本技术的一示例性实施例示出的仿真测试装置的框图;
42.图5是本技术的一示例性实施例示出的启闭控制模块的框图;
43.图6是本技术的一示例性具体的实施例示出的仿真测试方法的执行流程框图;
44.图7示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
具体实施方式
45.以下将参照附图和优选实施例来说明本发明的实施方式,本领域技术人员可由本说明书中所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。
46.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
47.在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
48.请参见图1,图1是本技术的一示例性实施例示出的仿真测试方法的实施环境示意图。如图1所示,一种示例的仿真测试系统至少包括服务器101和客户端102中至少之一,其中,该服务器101可以包括独立运行的服务器、分布式服务器或由多个服务器组成的服务器集群。服务器101可以包括有网络通信单元、处理器和存储器等。服务器101可以用于执行本实施例提供的仿真测试方法。客户端102可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、智能可穿戴设备等类型的实体设备,也可以包括运行于实体设备中的软体,例如一些服务商提供给用户的网页页面,也可以为该些服务商提供给用户的应用,例如客户端102可以用于响应于用户103的触发操作,向用户展示观测结果。当然,该系统也可以仅包括客户端,该客户端设置有相应的模块以执行下述实施例中的仿真测试方法。
49.随着自动驾驶技术的不断突破,自动驾驶仿真测试越来越受到各大传统主机厂和自动驾驶科技公司的关注和青睐,并逐渐成为自动驾驶研发过程中不可或缺的一环。将仿真测试自动化进行是在自动驾驶仿真领域的一个技术难题,是提升测试效率、规范测试流程的必经之路。
50.自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。在自动驾驶仿真测试领域,面临着场景库和大量的测试用例的调用。若不能实现仿真测试的自动化,那么需要耗费的人力、时间都是不可估量的,仿真测试工程师也将会面临繁琐乏味的体力工作。因此,将自动化测试理论引入到自动驾驶仿真测试领域是必要的,亦是一次跨产业的技术融合。
51.相关技术中,对于自动驾驶仿真测试往往需要人工实现,效率较低、成本较高、对人工依赖程度高。为解决这些问题,本技术的实施例分别提出一种仿真测试方法、一种仿真测试装置、一种电子设备、一种计算机可读存储介质以及一种计算机程序产品,以下将对这些实施例进行详细描述。
52.请参阅图2,图2是本技术的一示例性实施例示出的仿真测试方法的流程图。该方法可以应用于图1所示的实施环境,并由该实施环境中的客户端和/服务器具体执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
53.如图2所示,在一示例性的实施例中,仿真测试方法至少包括步骤s201至步骤s203,详细介绍如下:
54.步骤s201,开启场景仿真模块和被测算法模块。
55.其中,场景仿真模块包括但不限于vtd(virtual test drive)仿真软件等工具。
56.被测算法模块包括一个或多个被测算法,被测算法中各个组件的通信是基于zmq通信协议的通信架构,将其封装成被测算法模块,将被测算法的各个模块封装成组件.so,这样能够实现通过调用被测算法模块即可以实现被测算法的打开。
57.在一实施例中,开启场景仿真模块和被测算法模块包括:
58.当获取到场景仿真模块开启指令,控制在预设仿真时延时间完成场景仿真模块的开启;
59.当获取到被测算法模块开启指令,控制在预设算法时延时间完成被测算法模块的开启。
60.在一实施例中,在开启场景仿真模块和被测算法模块过程中,通过预先设置预设仿真时延时间、预设算法时延时间以弥补vtd软件启动过程中的加载时间、场景加载过程中的时间消耗。
61.在一实施例中,可以通过使用shell语言编写自动化调度工具,从linux系统的角度去控制vtd仿真软件的打开/关闭、被测算法的打开/关闭、python测试脚本的串行运行。
62.例如,vtd仿真软件的打开/关闭:在linux下运行/关闭vtd需要在bin目录下打开终端,执行vtdstart.sh/vtdstop.sh文件。因此在自动化调度工具中对以上两个.sh进行封装,编辑成vtd_start()、vtd_stop()函数。其中涉及到vtd软件启动过程中有一定的加载时间,因此在函数中加入sleep 5时延(预设仿真时延时间),使得vtd打开并加载正常后再执行后面的流程。
63.又例如,与vtd的打开类似,在自动化调度工具中将被测算法模块写成一个可调用的函数task_capilot(),并设置了14s的延时(预设算法时延时间)来对应场景加载过程中的时间消耗。关闭算法采用的是先搜寻被测算法模块的进程端口pid=$(pidof capilot),然后直接关闭该系统进程kill-9$pid。
64.步骤s202,加载场景仿真模块的智能驾驶车辆仿真场景,将测试用例与智能驾驶车辆仿真场景进行关联。
65.测试脚本(仿真测试方法的每一次运行)和智能驾驶车辆仿真场景、测试用例是具有关联与可追溯性的。例如可以采用统一案例号命名的方式:每个测试用例都以数字名字1000001、将测试脚本命名为1000001.py、将智能驾驶车辆仿真场景命名为1000001.xml。因此明确了每个脚本需要调度的智能驾驶车辆仿真场景就是每个python脚本的名称+.xml。这样能够实现将测试用例与智能驾驶车辆仿真场景进行关联,便于后续对于观测结果为测试失败时失败位置的确定及失败原因的分析。
66.步骤s203,根据测试用例建立测试观测规则并对测试过程进行观测,并记录观测结果。
67.在一实施例中,图3是本技术的一示例性实施例示出的根据测试用例建立测试观测规则并对测试过程进行观测的流程图,如图3所示,根据测试用例建立测试观测规则并对测试过程进行观测包括:
68.步骤s301,基于智能驾驶车辆仿真场景和测试用例执行被测算法;
69.步骤s302,若执行完成,且满足预设观测条件,则观测结果为测试通过;
70.步骤s303,若执行过程中存在不满足预设观测条件,且不满足预设观测条件的时长超过预设时长,则观测结果为测试失败,并控制退出被测算法的执行。
71.其中,上述过程的实现是以vtd的仿真时间为基准开展的。将测试用例中的语言描述,转为对软件接口层面的直接观测。内嵌了一个while循环,和step跳转机制,若执行到最后一个step并满足观测条件则判定该案例为测试通过。若在某一step持续15s(默认设置)未满足观测条件,则判定在这一步测试失败。无论失败还是通过,测试脚本都将退出测试逻辑的循环,然后执行将测试结果写入到txt文本中进行结果保存(案例号_测试结果:1000001_passed)。
72.在一实施例中,加载场景仿真模块的智能驾驶车辆仿真场景,将测试用例与智能驾驶车辆仿真场景进行关联之前,该方法包括:
73.与被测算法的信号流建立协议文件,将测试执行模块与被测算法模块中的算法通信模块建立通信连接,测试执行模块用于加载场景仿真模块的智能驾驶车辆仿真场景,将测试用例与智能驾驶车辆仿真场景进行关联,以及根据测试用例建立测试观测规则并对测试过程进行观测,并记录观测结果,测试执行模块包括被测算法。
74.例如,本实施例中的测试方法的通信包括两部分,一是与集成在被测算法模块中的算法通信模块(算法通信模块)的通信设计。先基于算法的信号流建立proto协议文件,然后使用基于socket的udp通信将python测试脚本与c++封装的仿真通信模块建立联系。二是与vtd仿真软件的通信设计,vtd软件开放了软件内部控制的端口x,可以向该端口发送对应的xml命令来控制vtd,这里主要实现了vtd的加载场景、开始/关闭仿真的功能。
75.本实施例提供的仿真测试方法,通过开启场景仿真模块和被测算法模块,加载场
景仿真模块的智能驾驶车辆仿真场景,将测试用例与智能驾驶车辆仿真场景进行关联,根据测试用例建立测试观测规则并对测试过程进行观测,并记录观测结果,能够将繁琐的人为测试步骤转为系统脚本再通过计算机等设备来执行,成功达到了仿真测试自动化串行进行的预期,解放了人力、提高了测试效率及测试有效性,为仿真上云、分布式仿真测试奠定了基础,提出了一种基于vtd的自动化仿真测试解决方案,具有一定的通用性。
76.图4是本技术的一示例性实施例示出的仿真测试装置的框图。该装置可以应用于图1所示的实施环境。该装置也可以适用于其它的示例性实施环境,并具体配置在其它设备中,本实施例不对该装置所适用的实施环境进行限制。
77.如图4所示,该示例性的仿真测试装置400包括:
78.启闭控制模块401,用于控制场景仿真模块的启闭,以及控制被测算法模块的启闭;
79.通信模块402,与被测算法模块中的算法通信模块连接,以及与场景仿真模块连接,用于与被测算法模块和场景仿真模块进行通信;
80.测试执行模块403,用于加载场景仿真模块的智能驾驶车辆仿真场景、将测试用例与智能驾驶车辆仿真场景进行关联、根据测试用例建立测试观测规则并对测试过程进行观测,以及记录观测结果。
81.在一个可选的实施例中,参见图5,图5本技术的一示例性实施例示出的启闭控制模块的框图,如图5所示,启闭控制模块401包括:
82.场景仿真控制模块501,用于控制场景仿真模块的启闭;
83.算法控制模块502,用于控制被测算法模块的启闭;
84.仿真时延模块503,用于当获取到场景仿真模块开启指令,控制场景仿真控制模块在预设仿真时延时间完成控制场景仿真模块的开启。
85.在一个可选的实施例中,启闭控制模块还包括:
86.算法时延模块,用于当获取到被测算法模块开启指令,控制算法控制模块在预设算法时延时间完成控制被测算法模块的开启。
87.在一个可选的实施例中,该装置还包括:
88.算法封装模块,用于对被测算法中的多个子算法进行封装,得到被测算法模块。
89.需要说明的是,上述实施例所提供的仿真测试装置与上述实施例图2所提供的仿真测试方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的仿真测试装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
90.发明人发现,相关技术中,自动驾驶仿真测试是缺乏成熟自动化工具支撑的,其原因是商用的仿真软件门类众多、被测算法的接入方式五花八门,因此难以达成一个统一的自动化测试模式,以计算机程序代替人工操作来执行仿真测试。相关技术中,人工进行sil仿真测试无论是打开vtd仿真软件、在vtd内加载智能驾驶车辆仿真场景、运行测试脚本、打开被测算法还是最后的仿真结束关闭vtd和算法都需要人工的参与,至少需要人为操作gui界面、在linux下打开终端运行对应的程序代码,由于仿真测试的步骤冗杂、仿真软件以及被测算法的多样性,相关技术中也没有可通用性的在自动化测试工具。于是,本发明实施例
提出了一种自动化仿真测试的方案,将自动化测试理论引入到基于vtd场景仿真软件的sil仿真测试中去,在保证测试有效性的前提下解放人力、提升仿真测试的有效性及测试效率。参见图6,图6是本技术的一示例性具体的实施例示出的仿真测试方法的执行流程框图。如图6所示,该方法的实现过程如下:
91.i、使用shell语言编写自动化调度工具,从linux系统的角度去控制vtd仿真软件的打开/关闭、被测算法的打开/关闭、python测试脚本的串行运行。
92.ii、vtd仿真软件的打开/关闭:在linux下运行/关闭vtd需要在bin目录下打开终端,执行vtdstart.sh/vtdstop.sh文件。因此在自动化调度工具中对以上两个.sh进行封装,编辑成vtd_start()、vtd_stop()函数。其中涉及到vtd软件启动过程中有一定的加载时间,因此在函数中加入sleep 5时延,使得vtd打开并加载正常后再执行后面的流程。
93.iii、被测算法的打开/关闭:被测算法中各个组件的通信是基于zmq通信协议的通信架构,将其封装成被测算法模块,将算法的各个模块封装成组件.so,然后打开该路径的终端运行被测算法模块程序即可打开算法。与vtd的打开类似,在自动化调度工具中将被测算法模块写成一个可调用的函数task_capilot(),并设置了14s的延时来对应场景加载过程中的时间消耗。关闭算法采用的是先搜寻被测算法模块的进程端口pid=$(pidof capilot),然后直接关闭该系统进程kill-9$pid。
94.iv、python测试脚本:python测试脚本是与vtd、被测算法模块解耦的第三方观测、通信脚本,其中包含了测试逻辑、自动化调度预埋、vtd加载智能驾驶车辆仿真场景、自动化结果生成。
95.可以理解,将启闭控制模块示例为图6中的自动化调度工具,将通信模块示例为图6所示的仿真通信模块,将测试执行模块示例为图6中的测试脚本。
96.v、测试脚本的通信设计有两部分:一是与集成在被测算法模块框架中的仿真通信模块的通信设计。先基于算法的信号流建立proto协议文件,然后使用基于socket的udp通信将python测试脚本与c++封装的仿真通信模块建立联系。二是与vtd仿真软件的通信设计,vtd软件开放了软件内部控制的端口x,可以向该端口发送对应的xml命令来控制vtd,这里主要实现了vtd的加载场景、开始/关闭仿真的功能。
97.vi、测试脚本的自动化调度预埋是依据整个仿真工程来设计的。首先明确测试脚本和智能驾驶车辆仿真场景、测试案例是具有关联与可追溯性的。这里采用的是统一案例号命名的方式:每个测试用例都以数字名字1000001、将测试脚本命名为1000001.py、将智能驾驶车辆仿真场景命名为1000001.xml。因此明确了每个脚本需要调度的智能驾驶车辆仿真场景就是每个python脚本的名称+.xml。
98.vii、测试脚本的自动化测试逻辑是以vtd的仿真时间为基准开展的。将测试用例中的语言描述,转为对软件接口层面的直接观测。内嵌了一个while循环,和step跳转机制,若执行到最后一个step并满足观测条件则判定该案例为测试通过。若在某一step持续15s(默认设置)未满足观测条件,则判定在这一步测试失败。无论失败还是通过,测试脚本都将退出测试逻辑的循环,然后执行将测试结果写入到txt文本中进行结果保存(案例号_测试结果:1000001_passed)。
99.viii、自动化调度的主要逻辑是将仿真测试的一次手动操作转化为了shell脚本语言。例如运行vtd_start()函数、运行python测试脚本、运行take_capilot()函数(执行
被测算法)、运行vtd_stop()、关闭算法进程五个步骤。因此将这五个步骤的脚本代码整合为一个fuction函数,函数中唯一改变的就是python测试脚本。接着设计了一个正则处理,将本次的测试脚本存为一个列表,最后使用一个for循环遍历列表并调用fuction函数。直到执行完最后一个python测试脚本则自动化调度完成。
100.通过上述仿真测试方法,能够将繁琐的人为测试步骤转为系统脚本再通过计算机来执行,成功达到了仿真测试自动化串行进行的预期。解放了人力、提高了测试效率及测试有效性,为仿真上云、分布式仿真测试奠定了基础,提出了一种基于vtd的自动化仿真测试解决方案,具有一定的通用性,并做到了测试脚本与仿真平台的通信解耦从而可以在第三方的角度去监测仿真进程。
101.本技术的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述各个实施例中提供的仿真测试方法。
102.图7示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。需要说明的是,图7示出的电子设备的计算机系统700仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
103.如图7所示,计算机系统700包括中央处理单元(central processing unit,cpu)1701,其可以根据存储在只读存储器(read-only memory,rom)702中的程序或者从储存部分708加载到随机访问存储器(random access memory,ram)703中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在ram 703中,还存储有系统操作所需的各种程序和数据。cpu701、rom 702以及ram 703通过总线704彼此相连。输入/输出(input/output,i/o)接口705也连接至总线704。
104.以下部件连接至i/o接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分707;包括硬盘等的储存部分708;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入储存部分708。
105.特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(cpu)701执行时,执行本技术的系统中限定的各种功能。
106.需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器
(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
107.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
108.描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
109.本技术的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的仿真测试方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
110.本技术的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的仿真测试方法。
111.上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
技术特征:1.一种仿真测试装置,其特征在于,所述装置包括:启闭控制模块,用于控制场景仿真模块的启闭,以及控制被测算法模块的启闭;通信模块,与所述被测算法模块中的算法通信模块连接,以及与所述场景仿真模块连接,用于与所述被测算法模块和所述场景仿真模块进行通信;测试执行模块,用于加载所述场景仿真模块的智能驾驶车辆仿真场景、将测试用例与智能驾驶车辆仿真场景进行关联、根据所述测试用例建立测试观测规则并对测试过程进行观测,以及记录观测结果。2.如权利要求1所述的装置,其特征在于,所述启闭控制模块包括:场景仿真控制模块,用于控制场景仿真模块的启闭;算法控制模块,用于控制被测算法模块的启闭;仿真时延模块,用于当获取到场景仿真模块开启指令,控制所述场景仿真控制模块在预设仿真时延时间完成控制所述场景仿真模块的开启。3.如权利要求2所述的装置,其特征在于,所述启闭控制模块还包括:算法时延模块,用于当获取到被测算法模块开启指令,控制所述算法控制模块在预设算法时延时间完成控制所述被测算法模块的开启。4.如权利要求1所述的装置,其特征在于,所述装置还包括:算法封装模块,用于对被测算法中的多个子算法进行封装,得到所述被测算法模块。5.一种仿真测试方法,其特征在于,所述方法包括:开启场景仿真模块和被测算法模块;加载所述场景仿真模块的智能驾驶车辆仿真场景,将测试用例与智能驾驶车辆仿真场景进行关联;根据所述测试用例建立测试观测规则并对测试过程进行观测,并记录观测结果。6.如权利要求5所述的方法,其特征在于,根据所述测试用例建立测试观测规则并对测试过程进行观测包括:基于所述智能驾驶车辆仿真场景和所述测试用例执行所述被测算法;若执行完成,且满足预设观测条件,则观测结果为测试通过;若执行过程中存在不满足所述预设观测条件,且不满足所述预设观测条件的时长超过预设时长,则观测结果为测试失败,并控制退出所述被测算法的执行。7.如权利要求5所述的方法,其特征在于,加载所述场景仿真模块的智能驾驶车辆仿真场景,将测试用例与智能驾驶车辆仿真场景进行关联之前,所述方法包括:与所述被测算法的信号流建立协议文件,将测试执行模块与被测算法模块中的算法通信模块建立通信连接,所述测试执行模块用于加载所述场景仿真模块的智能驾驶车辆仿真场景,将测试用例与智能驾驶车辆仿真场景进行关联,以及根据所述测试用例建立测试观测规则并对测试过程进行观测,并记录观测结果,所述测试执行模块包括所述被测算法。8.如权利要求5-7任一项所述的方法,其特征在于,开启场景仿真模块和被测算法模块包括:当获取到场景仿真模块开启指令,控制在预设仿真时延时间完成所述场景仿真模块的开启;当获取到被测算法模块开启指令,控制在预设算法时延时间完成所述被测算法模块的
开启。9.一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求5至8中任一项所述的仿真测试方法。10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求5至8中任一项所述的仿真测试方法。
技术总结本发明提供一种仿真测试方法、装置、电子设备及存储介质,该方法通过开启场景仿真模块和被测算法模块,加载场景仿真模块的智能驾驶车辆仿真场景,将测试用例与智能驾驶车辆仿真场景进行关联,根据测试用例建立测试观测规则并对测试过程进行观测,并记录观测结果,能够将繁琐的人为测试步骤转为系统脚本再通过计算机等设备来执行,成功达到了仿真测试自动化串行进行的预期,解放了人力、提高了测试效率及测试有效性,降低了成本。降低了成本。降低了成本。
技术研发人员:唐诚成 梁锋华 杨果 吕豪 勾天
受保护的技术使用者:重庆长安汽车股份有限公司
技术研发日:2022.07.08
技术公布日:2022/11/1