自动驾驶仿真测试脚本的自动化生成方法、装置、生成设备及存储介质与流程

文档序号:32419172发布日期:2022-12-02 22:42阅读:134来源:国知局
自动驾驶仿真测试脚本的自动化生成方法、装置、生成设备及存储介质与流程

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.本发明可以通过附图给出的非限定性实施例进一步说明;
39.图1为本技术实施例提供的自动驾驶仿真测试脚本的自动化生成设备的框图。
40.图2为本技术实施例提供的自动驾驶仿真测试脚本的自动化生成方法的流程示意图。
41.图3为本技术实施例提供的自动驾驶仿真测试脚本的自动化生成装置的框图。
42.图标:10、自动驾驶仿真测试脚本的自动化生成设备;11、存储器;12、脚本生成模块;200、自动驾驶仿真测试脚本的自动化生成装置;210、存储单元;220、处理单元。
具体实施方式
43.以下将结合附图和具体实施例对本发明进行详细说明,需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号,附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,实施例中提到的方向用语,例如“上”、“下”、“顶”、“底”、“左”、“右”、“前”、“后”等,仅是参考附图的方向,并非用来限制本发明的保护范围。
44.如图1所示,本技术实施例提供一种自动驾驶仿真测试脚本的自动化生成设备10,包括有存储器11和脚本生成模块12,所述脚本生成模块12用于自动生成自动驾驶仿真测试脚本,所述存储器11内存储计算机程序。
45.其中,存储器11可以用于但不局限于保存测试案例的步骤文档、案例号存储变量和生成的测试案例等文件。
46.本实施例中,将测试案例以步骤文档的形式写入存储器11中,通过脚本生成模块12内的预设脚本,爬取步骤文档内的信息,将测试案例的信息改写为单元格内的数组,之后将数组信息进一步切分和转换,实现将测试案例转化为了代码,再把代码按照语义逻辑进
行重构,写入测试脚本框架内,即自动生成测试脚本。然后根据预设脚本内的判断逻辑,分别判断测试脚本是否生成成功以及判断是否所有测试案例都已经生成对应的测试脚本。若确定所有的生成案例都已经生成对应的测试脚本,则将测试脚本写入存储器11内。
47.当所述计算机程序被所述脚本生成模块12执行时,使得所述自动驾驶仿真测试脚本的自动化生成设备10执行下述的方法。
48.如图2所示,本技术还提供一种自动驾驶仿真测试脚本的自动化生成方法。其中,自动驾驶仿真测试脚本的自动化生成方法,可以包括如下步骤:
49.步骤110:存储器11内分别以步骤文档的形式写入所有测试案例,脚本生成模块12内设置有预设脚本,通过预设脚本依次获取所述测试案例,并根据所述测试案例的案例号进行检索,确定当前测试案例为最新版本测试案例;
50.步骤120:所述预设脚本将所述当前测试案例的文字信息转换为代码,写入预设的测试脚本框架内,生成测试脚本;
51.步骤130:确定所述测试脚本成功生成;
52.步骤140:判定所有的所述测试案例是否都生成测试脚本,并将成功生成的所述测试脚本写入所述存储器11内。
53.在上述实施方式中,脚本生成模块12内的预设算法从存储器11内获取测试案例,将测试案例的信息保存为数组,通过预设脚本,将测试案例的信息进一步切分、转换和重构,转化为代码写入预设的测试脚本框架内,生成测试脚本。根据预设算法的内置逻辑,确定测试案例生成成功,以及所有的测试案例都已经生成测试脚本。
54.作为一种可选的实施方式,存储器11内分别以步骤文档的形式写入所有测试案例,脚本生成模块12内设置有预设脚本,通过预设脚本依次获取所述测试案例,并根据所述测试案例的案例号进行检索,确定当前测试案例为最新版本测试案例,包括:
55.通过预设脚本的第一子函数获取所述测试案例的所有配置信息,生成案例号存储变量,用于保存所有的测试案例的案例号;
56.根据当前测试案例的案例号进行检索,确定当前测试案例为最新版本的测试案例。
57.其中,将测试案例的主要信息划分为观测条件、操作注入两部分,以excel工作簿的形式保存为步骤文档,以案例号为步骤文档命名,步骤文档的a1:a36即第一列全部为

%’避免被执行;b1:g2为原测试概述内容,包含案例id、测试概述、测试条件、执行操作、判断条件等;b4:g36为测试步骤及通过条件的全部内容,其中b4:g4为抬头,b5:b25为步骤标注,即step1-step20。
58.本实施例中,预设脚本命名为write_script.py,预设脚本的第一子函数可以快速修改配置信息,如文档版本号、文件路径以及案例号信息等,实现脚本的重复调用。在此子函数脚本中内置了针对案例号(case_num)检索的逻辑判断,对所有案例的案例号进行爬取和保存。如若出现重复的案例号,会在生成测试脚本时发出提示信息,方便测试人员快速的定位问题。
59.预设脚本内包含python中pandas函数,通过python中pandas函数与excel进行交互,爬取出上述信息并以数组的形式保存,casecondition数组用于保存观测条件的文字信息,caseoperation数组用于保存操作注入的文字信息,整个交互过程保存为python函数以
方便调用,命名为pitchcaseinfo.py。
60.作为一种可选的实施方式,根据所述检索结果,所述预设脚本将所述测试案例的文字信息转化为代码,写入预设的测试脚本框架内,生成测试脚本,包括:
61.确定当前测试将案例为最新版本的测试案例,通过预设脚本的第二子函数爬取所述步骤文档内的所述测试案例的信息,并将所述测试案例的信息保存为数组,进一步将所述数组内的信息进行语句切分、转换以及重构,将所述测试案例转化为代码,所述代码写入预设的脚本框架内,生成所述测试脚本。
62.其中,预设脚本的第二子函数为python中pandas函数,通过python中pandas函数与excel进行交互,爬取出上述信息并以数组的形式保存,casecondition数组用于保存观测条件的文字信息,caseoperation数组用于保存操作注入的文字信息,整个交互过程保存为python函数以方便调用,命名为pitchcaseinfo.py。
63.本实施例中,结合scanner仿真软件的python脚本框架,运用mice.函数进行测试脚本框架设计。根据步骤文档中的step1-step20进行划分,每一个步骤独立生成一个def自定义函数,将固定的代码写入每个步骤,再由预设脚本write_script.py将各个案例不同的代码写入到对应的步骤中去。每一个测试脚本按step1-step20的顺序执行。
64.作为一种可选的实施方式,将所述测试案例的信息一次进行语句切分、转换以及重构,将所述测试案例转化为代码,所述代码写入预设的脚本框架内,生成所述测试脚本,包括:
65.通过所述预设脚本的第三子函数,将当前所述测试案例的步骤文档的单元格中的信息进行切分,获得切分信息;
66.通过所述预设脚本的第四子函数,将所述切分信息转换为预设的仿真软件能够识别的代码语句,获得转换后代码;
67.通过所述预设脚本的第五子函数,将所述转换后代码根据语义逻辑再次进行组合,写入所述预设的测试脚本框架内,获得所述测试案例的测试脚本。
68.本实施例中,预设脚本的第三子函数为python自带的正则运算函数re.,运用第三子函数根据逻辑运算符将单元格中信号名、信号值切分出来。。由于保存在数组中的信息均为等式,其中包括信号、运算符以及参数值,因此语句切分是以运算符为逻辑标志。涉及到的逻辑运算符如下的可识别符号和文字:==、》=、《=、~=、=、》、《、~、大于等于、小于等于、小于、大于、不等于、等于、≥、≤、不为、为、≠、<、达到、超过。
69.预设脚本的第四子函数为meta关联函数,通过meta关联函数将切分出的信号名、信号值转化成测试脚本需要的信息。此处测试脚本需要的信息是本技术所采用的scanner仿真软件能识别的python的mice函数语句。观测信号名转换成mice.getexportchannelbyname()的函数格式,操作信号名转换成mice.setexportchannelbyname()的函数格式。
70.预设脚本的第五子函数为comb重构函数,通过comb重构函数将转换后的python语句按原语义逻辑再次组合,从而将单元格信息完全转换为代码。
71.完成转化后,将每一句代码信息填充入已经写好的逻辑框架中去。采用的是for循环的方式,以当前测试案例的最高步长为循环结束标志,每一步长的代码编写都由固定的逻辑框架代码与变化的观测条件、操作条件代码组成。
72.作为一种可选的实施方式,确定所述测试脚本成功生成,包括:
73.通过所述预设脚本查询所述测试脚本的信息,与所述步骤文档内的测试案例的信息进行比较,确定所述测试案例的所有信息都已写入;
74.将所述测试脚本进行仿真测试,若所述测试脚本通过仿真测试,则成功生成当前所述测试案例对应的测试脚本。
75.本实施例中,在预设脚本write_script.py中,首先内置了判断案例是否为空的逻辑,如果当前案例内未写入或漏写入所需的信息,则脚本在运行时会记录下对应的案例号并发出提示信息。如果当前测试案例与未遗漏信息,则进行仿真判断。需要自定义仿真的步长逻辑,采取每step反馈一次的方式。每step设置30s的时延,如果30s内未给出执行下个step的命令,则判定该step为blocked;若执行最后step时存在条件未满足,则判定此step为failed即测试未通过。若是其他情况,则当前测试脚本通过仿真测试,即当前测试脚本成功生成。
76.作为一种可选的实施方式,所述方法还包括:
77.检索当前所述测试案例不是最新版本的测试案例,将该测试案例的案例号写入错误日志中;
78.或者,所述测试案例的信息并未完全写入所述测试脚本中,将该测试案例的案例号写入错误日志中;
79.或者,所述测试脚本仿真失败,将该测试脚本所对应的测试案例的案例号写入错误日志中;
80.自动生成所有测试案例的测试脚本之后,脚本编辑人员打开错误日志,对相应测试案例进行修改。
81.本实施例中,当出现异常情况时,错误日志进行记录,方便脚本编辑人员打开错误日志,对相应测试案例进行修改。
82.作为一种可选的实施方式,判定所有的所述测试案例是否都生成测试脚本,并将成功生成的所述测试脚本写入所述存储器11内,包括:
83.所述预设脚本运行时会抓取所述存储变量内的案例号,若所述预设脚本抓取到新的案例号,则获取对应测试案例,进行自动生成测试脚本的操作;
84.若所述预设脚本未抓取到新的案例号,则所有的测试案例都已经生成测试脚本;
85.将生成的所有所述测试脚本写入所述存储器11内。
86.本实施例中,在写入所有步骤文档的过程中,预设脚本将所有的测试案例的案例号保存在案例号储存变量内,生成测试脚本时,会逐渐抓取储存变量内的案例号,未抓取到新的案例号时,则说明所有的测试案例都已经生成测试脚本。
87.如图3所示,本技术还提供一种自动驾驶仿真测试脚本的自动化生成装置200,自动驾驶仿真测试脚本的自动化生成装置200包括至少一个可以软件或固件(firmware)的形式存储于存储模块中或固化在自动驾驶仿真测试脚本的自动化生成设备10的操作系统(operating system,os)中的软件功能模块。脚本生成模块12用于执行存储模块中存储的可执行模块,例如自动驾驶仿真测试脚本的自动化生成装置200所包括的软件功能模块及计算机程序等。
88.自动驾驶仿真测试脚本的自动化生成装置200包括存储单元210及处理单元220,
各单元具有的功能可以如下:
89.存储单元210,用于存储所有的测试案例和根据测试案例自动生成的测试脚本;
90.处理单元220,用于获取测试案例内的信息,将文字形式的测试信息转化为代码,并将所述代码写入预设的测试脚本框架,自动生成测试案例的测试脚本。
91.在本实施例中,存储模块可以是,但不限于,随机存取存储器,只读存储器,可编程只读存储器,可擦除可编程只读存储器,电可擦除可编程只读存储器等。
92.可以理解的是,图1中所示的自动驾驶仿真测试脚本的自动化生成设备10结构仅为一种结构示意图,自动驾驶仿真测试脚本的自动化生成设备10还可以包括比图1所示更多的组件。图1中所示的各组件可以采用硬件、软件或其组合实现。
93.需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的自动驾驶仿真测试脚本的自动化生成设备10、自动驾驶仿真测试脚本的自动化生成装置200的具体工作过程,可以参考前述方法中的各步骤对应过程,在此不再过多赘述。
94.本技术实施例还提供一种计算机可读存储介质。计算机可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行如上述实施例中所述的自动驾驶仿真测试脚本的自动化生成方法。
95.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本技术可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,制动设备,或者网络设备等)执行本技术各个实施场景所述的方法。
96.综上所述,本技术实施例提供一种自动驾驶仿真测试脚本的自动化生成方法、装置、生成设备及存储介质。在本方案中,需要将测试案例以步骤文档的形式写入存储器11中,通过脚本生成模块12内的预设脚本,爬取步骤文档内的信息,将测试案例的信息改写为单元格内的数组,之后将数组信息进一步切分和转换,实现将测试案例转化为了代码,再把代码按照语义逻辑进行重构,写入测试脚本框架内,即可自动生成测试脚本,极大地提高了算法开发迭代的速度。
97.在本技术所提供的实施例中,应该理解到,所揭露的装置、系统和方法,也可以通过其它的方式实现。以上所描述的装置、系统和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
98.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1