第一节:Sim Pro 自动化联合仿真手册
Last updated
Last updated
Simulink-SimPro模块和AD算法,实施自动化联合仿真的解决方案。
SimPro 自动化测试功能包含如下三部分:
自动化测试,利用测试用例模版设计测试用例,通过工具生成测试脚本。测试引擎的控制和执行测试用例,和SimPro仿真工具实现数据交换。
Sim Pro仿真工具,提供自动驾驶仿真虚拟环境,并实现和自动化测试的仿真控制指令和数据交互。
Simulink AD算法,通过Simulink-Sim Pro模块作为中介,实现Sim Pro仿真引擎和AD算法的算法状态/控制、车辆控制指令的交互。
基于测试用例模板,设计面向自动化测试的测试用例;
利用测试脚本生成工具,从测试用例生成自动化测试用的脚本;
Sim Pro仿真工具通过了功能安全认证,保证能提供稳定、可靠的仿真环境数据;
利用Simulink-Sim Pro模块实现Sim Pro仿真工具和AD算法间的无缝数据衔接;
Sim Pro仿真工具和AD算法间实现帧同步,保证两端数据一致性和实时性;
测试脚本提供自动化测试实施和测试结果可视化功能,便于控制、收集和统计测试结果;
Sim Pro 自动化测试包含测试用例设计,测试脚本生成和测试实施几个步骤,以下章节分别记述。
在测试用例模板中,可以通过指定测试场景、设置仿真前置条件、取得/设置/轮询仿真中环境数据和AD状态等方式,从而设计复杂的测试用例。
以下为一个典型的测试用例的样例:
由用户提供的测试用例概述,按顺序定义测试条件、执行操作和判定条件等测试用例必要的内容,并记入下面的【测试用例表格】。
测试条件:表示Sim Pro仿真环境中的数据(例如,Ego车车速、交通车车速等,以下简称环境数据)和AD算法的状态值(例如,图例中的L3系统Enable状态、L3系统激活状态等,以下简称AD状态)要满足的条件,才能执行下一步测试。
执行操作:表示当前一测试条件满足时,要执行的操作。
判断条件:表示当执行完之前测试条件和操作后,最后判断测试用例的结果OK或者NG的判断标准。通常在整个测试用例的最后。
定义联仿测试开始前操作和联仿测试开始后操作。
测试用例开始前后的条件和操作,分别记入【联仿测试开始前操作】和【联仿测试开始后操作】表格。
测试条件和执行操作的内容转自【测试用例表格】,每组<测试条件,执行操作>对应一个step,记入在一行中。
观测条件:表示环境数据或者AD状态满足的条件。每个条件按照以下格式定义,
{环境数据或者AD状态=某个数值}
可以是多个条件的组合,即满足所有条件的情况下,执行后续的操作。
输入接口:表示观测接口满足的情况下,要设置的环境数据或者AD状态。每个输入接口按照以下格式定义,
{环境数据或者AD状态=某个数值}
可以是多个条件的组合,即满足所有条件的情况下,执行输入接口中的操作。
在联仿测试开始前后之间,要指定测试场景文件对应的文件名。
定义判断条件。判断条件是本测试用例的结果是OK/NG的判定标准。在【判断条件】表格的【接口】栏中,设置判断条件。每个判断条件按照以下格式定义,
{环境数据或者AD状态=某个数值}
可以是多个条件的组合,即所有条件都满足的情况下,测试结果OK。
同一个测试用例文件中可以设计多个测试用例,每个测试用例按Excel的页来区分。
基于设计完成的测试用例文件(.xlsx),利用工具生成测试用的脚本文件(.py)。
启动命令行,并进入工具所在的文件夹,例如,[saimo_autotest_tools]。
运行生成测试脚本的命令[python generator.py data],其中data是测试用例文件所在的子文件夹。
运行命令后,将data文件夹下所有的测试用例文件(.xlsx),一对一生成测试脚本文件(.py),并保存在当前文件夹中。如下图,
测试脚本内容的样例如下,
在Excel测试用例文件中,每个测试用例对应测试脚本中的一个函数,函数名以Excel页的名字命名。如下图,
![](..\img\7\image (4).png)
对应测试脚本中的函数[test_TC_ID_PreScript1, test_TC_ID_PreScript2,…]
测试脚本、Sim Pro仿真工具和AD算法实现三者联合仿真,如下图,
(1) 自动化测试
安装python3.8的windows或者ubuntu 64位操作系统皆可。
另外,使用pip需要安装json、unittest的python包。
(2) Sim Pro仿真工具
在ubuntu16.4 64bit中,并配置NVIDIA显卡的环境中,安装部署Sim Pro2.0的环境。
(3) Simulink AD算法
安装matlab 2020b的windows环境。
启动Sim Pro的仿真引擎和渲染引擎。
登陆安装部署过Sim Pro的ubuntu环境,运行以下命令,
仿真引擎: [saimosim > saimosim.log]
渲染引擎: [RenderEngineOSG > RenderEngineOSG.log]
启动simulink,并运行AD算法,如下图,
打开MATLAB,切换工作目录为当前目录,并双击[interface.slx]文件,打开simulink。
双击S-Function模块,修改Sim Pro端的IP地址。
运行生成的测试脚本,并生成测试报告。
启动命令行,进入测试脚本所在文件夹,运行命令[python 10001.py]。也可以同时执行多个测试脚本[python {-option} 10001.py 10002.py 10003.py]。
option可以指定以下参数:
terminal:输出测试结果到终端。
txt:输出测试结果到txt文件。
html:输出测试脚本到html文件。
下图为输出测试结果到终端的样例,