自动驾驶仿真:ECU TEST自动化测试常用API调用
文章目录
- 一、 API调用运行环境
- 二、ET API帮助文档
- 三、如何导入ET API
- 四、 ET常用接口
- 1、 创建用于添加测试步骤的Package
- 2、 在Package的TestStep中添加precondition块
- 3、 在Package的TestStep中添加Block块
- 4、在Package的TestStep中添加PostconditionBlock块
- 5、 在Package的TestStep中调用其他package
- 6、 创建联合仿真工具的JOB
- 7、 创建Calculation计算模块
- 8、 创建信号的GlobalMapping
- 9、 创建SignalRecording模块
- 10、 创建Wait时间延迟模块
- 11、 VERISTAND信号读
- 12、 VERISTAND信号写
- 13、 ECU TEST TestStep函数
提示:以下是本篇文章正文内容,下面案例可供参考
一、 API调用运行环境
1、 安装python 3.6 及以上
二、ET API帮助文档
1、进入ET HELP文档
2、进入API HELP
3、根据需求选择API类型
三、如何导入ET API
1、 获取ET API路径
注意:调用ET的API之前需要将API路径添加至搜索路径中,这样才能成功调用API:
方法1:通过注册表获取API路径
reg = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r'SOFTWARE\TraceTronic\ECU-TEST 2022.1') #打开注册表;
etDir = winreg.QueryValueEx(reg, 'Path')[0] #查询ET Path的值;
reg.Close() #关闭注册表;
ApiClientPath = os.path.join(etDir, r'Templates\ApiClient') #路径连接;#注:根据版本更改ECU-TEST 2022.1值
方法2:在安装目录下找到API文件夹(根据安装位置)
ApiClientPath = os.path.join(r'C:\Program Files\ECU-TEST 2022.1\Templates\ApiClient')
2、将ApiClient路径添加至python搜索路径
sys.path.append(ApiClientPath)
3、导入ApiClient库
from ApiClient import ApiClient
4、API实例化
self.api = ApiClient()
四、 ET常用接口
1、 创建用于添加测试步骤的Package
1)pkghandle = self.api.PackageApi.CreatePackage()
2、 在Package的TestStep中添加precondition块
注意:要先创建pkg才能添加precondition,pkghandle是创建pkg返回的句柄;
1) precondition = self.api.PackageApi.TestStepApi.CreateTsPreconditionBlock() #创建PreconditionBlock;2)pkghandle.AppendTestStep(precondition) #将block添加到pkg的TestStep中;
3、 在Package的TestStep中添加Block块
注意:要先创建pkg才能添加Block,pkghandle是创建pkg返回的句柄;
3) actionBlock = self.api.PackageApi.TestStepApi.CreateTsBlock() #创建Block块4) actionBlock.SetActionColumnText('Action') #设置block的名称;5) pkghandle.AppendTestStep(actionBlock) #将block添加到pkg的TestStep中;
4、在Package的TestStep中添加PostconditionBlock块
注意:要先创建pkg才能添加Postcondition,pkghandle是创建pkg返回的句柄;
1) postcondition = self.api.PackageApi.TestStepApi.CreateTsPostconditionBlock() #创建PostconditionBlock;2) pkghandle.AppendTestStep(postcondition) #将block添加到pkg的TestStep中;
5、 在Package的TestStep中调用其他package
1)Tspkg = self.api.PackageApi.TestStepApi.CreateTsPackage(pkgPath) #创建引用包的调用句柄;
2)Tspkg.SetPackageParameter(paramName,paramValue) #设置被调用package的形参值;3)block.AppendTestStep(Tspkg) #将Job添加到Block/PostconditionBlock/PreconditionBlock模块;
6、 创建联合仿真工具的JOB
1) mappingitem = self.api.PackageApi.MappingApi.CreateJobMappingItem(toolID, JobName, portId=None, checkTarget=True) #创建工具模型的mappingitem,需要填写ToolID、JobName;
toolID:
JobName:
注意:创建Job之前,需要确保工具的Job MappIngItem已经创建,如上所示;
2) TsJob = self.api.PackageApi.TestStepApi.CreateTsJob(mappingitem,generateInterface=True) #创建TsJob之前mappingitem需要提前创建;
3) TsJob.SetParameter(name, Value) #设置Job的参数名称与值;4) block.AppendTestStep(Tsjob) #将Job添加到Block/PostconditionBlock/PreconditionBlock模块
7、 创建Calculation计算模块
1) TsCal = self.api.PackageApi.TestStepApi.CreateTsCalculation() #创建Calculation模块;
2) TsCal.SetFormula(Formula) #设置Calculation模块的公式
3) TsCal.SetExpectationExpression(ExpectationExpression) #添加期望结果表达式;4) block.AppendTestStep(TsCal) #将Job添加到Block/PostconditionBlock/PreconditionBlock模块;
8、 创建信号的GlobalMapping
1)mappingfile = self.api.GlobalMappingApi.CreateMapping() #创建GlobalMapping文件;
2) mappingItem = self.api.PackageApi.MappingApi.CreateModelMappingItem(systemIdentifier,
targetPath,variableType=None,isSignal=False,referenceName=MappingName,checkTarget=True)
#需要配置systemIdentifier一般为Plant model(TCF中可以修改名称),targetPath是需要Mapping的信号路径,referenceName是Mapping的名称;3) mappingfile.AddItem(mappingItem) #添加GlobalMapping对象到Mappingfile;
4)mappingfile.Save(filename=””) #保存Mapping文件;
9、 创建SignalRecording模块
1) SGroupHandle =self.api.PackageApi.SignalRecordingApi.CreateSignalGroup(name='',description='') #创建信号录制组别;2) pkghandle.AppendSignalGroup(SGroupHandle, defaultRecordingGroup=None, allowNewName=False) #将信号组添加到pkg;3) RecordingGroup = SGroupHandle.GetRecordingGroups() #获取所有信号组,返回的RecordingGroup是列表;
4)for RG in RecordingGroup: #因为RecordingGroup是列表,返回了多个录制组;RG.SetRecordingMode(RG.RECORDING_MODE_AUTO) #将每个组切换自动录制模式
5)SGroupHandle.AppendMappingItem(MappingItem) #需要先创建GlobalMapping,才能将信号添加至信号录制组;
10、 创建Wait时间延迟模块
1) TsWait= self.api.PackageApi.TestStepApi.CreateTsWait() #创建时间延时模块;2) TsWait.SetDelay(value, unit) #创建延迟时间3) block.AppendTestStep(TsWait) #将TsWait添加到Block/PostconditionBlock/PreconditionBlock模块
11、 VERISTAND信号读
注意这里使用的Mapping和GlobalMapping不一样
1) mappingItem = self.api.PackageApi.MappingApi.CreateGenericMappingItem(referenceName=referenceName) #创建需要读取值的信号Mappingitem;2) TsRead = self.api.PackageApi.TestStepApi.CreateTsRead(mappingItem) #添加MappingItem到读取步骤;3) TsRead.SetExpectationExpression(expectation) #添加期望结果;4) block.AppendTestStep(TsRead) #将TsRead添加到Block/PostconditionBlock/PreconditionBlock模块
12、 VERISTAND信号写
1) MappingItem = self.api.PackageApi.MappingApi.CreateGenericMappingItem(referenceName=referenceName)
#创建需要写入值的信号GenericMappingitem;2) testStep = self.api.PackageApi.TestStepApi.CreateTsWrite(MappingItem) #添加MappingItem到写入步骤;3) testStep.SetValue(value) #设置写入值;
13、 ECU TEST TestStep函数
创建IF语句
1)Tsif = self.api.PackageApi.TestStepApi.CreateTsIfThenElse() # 创建if..else函数2)block.AppendTestStep(Tsif) # 添加if函数到block块3)Tsif.SetCondition(condition) # 添加if..else条件4)ThenNode = Tsif.GetThenNode() # 获取Then节点5)ElseNode = Tsif.GetElseNode() # 获取Else节点6)ThenNode.AppendTestStep()/ElseNode.AppendTestStep() #添加TestStep到Then或Else节点;
创建LOOP语句
1)Tsloop = self.api.PackageApi.TestStepApi.CreateTsLoop() #创建Loop函数2)block.AppendTestStep(Tsloop) # 添加Loop函数到block块3)Tsloop.SetStartCondition(loopcondition) # 设置Loop执行条件4)Tsloop.SetLoopCountExpression(looptimes) # 设置Loop执行次数5)Tsloop.SetSaveInVariableName(LoopCounter) # 设置Save counter in的变量
创建SWITCH CASE语句
1)Tsswitch_case = self.api.PackageApi.TestStepApi.CreateTsSwitchCase() #创建SwitchCase函数;2)block.AppendTestStep(Tsswitch_case) #添加SwitchCase到block块;3)Tsswitch_case.SetSwitchValue(switchcondition) #添加SwitchCase的进入条件;
4)SwitchNode = Tsswitch_case.CreateCaseNode(caseValue='0', insPos=None) #创建Case节点;5)SwitchNode.AppendTestStep() #Case节点添加步骤;
6)GetDefaultNode = Tsswitch_case.GetCaseNode() #获取Default节点7)GetDefaultNode.AppendTestStep() #Default节点添加步骤;
以上,例举了一些自动化常用的API;
自动驾驶仿真:ECU TEST自动化测试常用API调用相关推荐
- 自动驾驶仿真类初创企业信息梳理
引言 对于高阶自动驾驶来说,虚拟仿真测试是研发及测试验证过程中不可缺少的一个关键环节.并且虚拟仿真测试所占的比重也越来越大,虚拟仿真测试技术的发展进步,将直接影响到高阶自动驾驶技术商业化落地的时间. ...
- python仿真智能驾驶_自动驾驶仿真工程师
禁止私自转载,转载请联系作者. 想要做一个自动驾驶仿真工程师,我们要学的还远远不够. 对自动驾驶仿真工程师这个岗位,相关介绍还是少了些.有些公司是直接把它纳入到基础架构组里,有些是单独招聘这个岗位,还 ...
- 自动驾驶仿真测试标准ASAM OpenX简介
声明:偶尔转载的文章出于非商业性的教育和科研目的,并不意味着支持其观点或证实其内容的实行,欢迎大家评论发表自己的意见.版权归原作者所有,如转载稿涉及版权等问题,请立即联系我们,我们会予以更改或删除相关 ...
- Airsim+UnrealEngine4 搭建无人车/无人机自动驾驶仿真环境
文章目录 1. Airsim 概述 2. Unreal Engine 概述 3. 在Linux下环境搭建 3.1. 手动 编译安装 UnrealEngine 3.2 编译airsim 插件 3.3 使 ...
- 介绍一款开源的自动驾驶仿真模拟器-Carla
大家好,我是李慢慢. 不管你是一个自动驾驶的算法工程师,还是仿真工程师,不管你是业界大佬还是小白,我都建议你了解甚至使用一下这个软件. 目录: 0.前言 1.Carla简介 2.Carla的官方资源 ...
- 对自动驾驶仿真软件研发方向的看法
快毕业了,计划入职的公司的产品经理,让我写一下关于使用Carla的使用心得,所以就简单得写了一下,我个人对自动驾驶仿真软件的看法. 对自动驾驶软件的个人看法 在介绍Carla的基本功能前,我想先说一下 ...
- 北京内推 | 华为诺亚方舟实验室招聘自动驾驶仿真实习生
合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 华为 诺亚方舟实验室(Noah's Ark Lab)是华为公司从事人工智能 ...
- 自动驾驶仿真(六)—— SIL软件在环仿真测试
自动驾驶仿真六-- SIL软件在环仿真测试 1. 在环仿真测试 2. SIL软件在环仿真测试 2.1 模型配置参数 2.2 S function生成实现 2.3 结果对比 3. 参考学习的书目教材 博 ...
- 回顾:鲍世强,讲述51VR自动驾驶仿真平台从0-1的开发与构建
L3及其以上级别自动驾驶车辆的开发,在系统复杂程度.使用环境复杂程度方面均急剧增加.传统开发ADAS算法的仿真工具已无法完美解决当前更高级别的自动驾驶开发问题.仿真平台便成为自动驾驶企业的刚性需求. ...
最新文章
- typescript索引类型_TypeScript类型声明书写详解
- “编码 5 分钟,命名 2 小时”,这道题究竟怎么解? | 问题征集
- Cocos2dx学习笔记(1) Ref类型数据 垃圾回收机制
- ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成
- cmd 将文件夹下文件剪切到另外一个文件_手把手教你运行第一个 Java 程序,看不懂你来骂我!...
- 小白python语言基础
- ubuntu 14.04 将用户目录下中文目录修改为英文目录
- 学生成绩互帮互助分组C语言,C语言实现—学生成绩管理系统(Linux下运行)
- 去年的今天我们举行了婚礼
- 北斗导航 | RAIM算法之奇偶矢量法(原理讲解,附代码链接:可用性判定)
- 使用pip报错error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools“:
- 三角形的外心 内心 重心 垂心 九点圆心与各圆半径的算法
- 2021最新的NVIDIA显卡排行榜前十
- 大龄程序员的4年生涯
- 手机卫星定位系统_北斗三号最后一颗卫星发射成功完成组网!为何手机上还显示GPS?...
- 判断任意时刻、位置是白昼?黑夜?
- YUV图片查看器以及测试文件(YUV420)
- 13种MongoDB的GUI简介
- 让word从第二页开始标记页脚
- 支持DoH的DNS服务器,谷歌公共 DNS 服务器正式支持 DoH 加密