从零开始--手写诊断及刷新测试程序
文章平均质量分 89
专栏从0到1介绍了使用Python,behave搭建了汽车ECU的自动化测试框架,并以ECU诊断测试和刷新测试为例介绍了具体测试用例的实现方式。
专栏会介绍CANoe,CAPL,Python,自动化测试,UDS,刷新流程等,专栏会包含实际可用的CANoe配置,框架代码等
优惠券已抵扣
余额抵扣
还需支付
¥49.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
我叫数数
汽车行业资深划水工程师
展开
-
从零开始--手写诊断及刷新测试程序--总目录
欢迎来到“从零开始–手写诊断及刷新测试程序”专栏,目录中包含了专栏的大纲,大家可以按顺序学习。原创 2023-04-16 22:17:42 · 654 阅读 · 1 评论 -
从零开始--手写诊断及刷新测试程序--概述
从方案设计到功能实现,再到功能测试与验证,本专栏的文章不仅让你看到结果,更能够让你理解设计思路,同时专栏的每个实验都配备了整套的实验工程与代码,帮助你无缝验证。你将开发一个包含了简单仿真ECU的CANoe工程,仿真的ECU能够响应程序发送的诊断请求,模拟真实的测试场景。专栏提供完整的代码及工程文件,项目通过git管理,使你能够根据章节查看对应的代码,并轻松比对不同章节之间的代码变化,深入理解实现细节。如果您觉得上面介绍的内容有用,不妨订阅我的专栏,我会持续分享更多有价值的内容。原创 2023-04-16 18:05:02 · 706 阅读 · 2 评论 -
第4章--CANoe library开发 - 诊断功能
因为专栏要做的是汽车ECU自动化测试程序,测试的是ECU的诊断和刷新,因此就需要利用CANoe的接口,开发一些方便使用的诊断报文收发函数。原创 2023-04-26 18:19:40 · 870 阅读 · 4 评论 -
第5章--第一个测试用例
在完成前几章的准备工作后,已经具备了编写测试用例的基本条件,现在让我们尝试编写一个诊断测试用例。原创 2023-05-20 22:39:20 · 260 阅读 · 0 评论 -
第61章--Python获取elf文件中的变量地址_pyelftools库
完整代码在文章末尾。原创 2023-07-02 10:44:24 · 1161 阅读 · 5 评论 -
第6章--日志功能开发
在之前的测试程序中,我们已经能够执行简单的诊断测试用例并生成了Allure测试报告。但是有些测试问题需要额外的信息来协助分析和解决,而这些信息可以通过记录日志来实现。因此,在本章中,我们将使用Python的logging模块为程序添加日志功能。原创 2023-05-20 22:43:22 · 205 阅读 · 0 评论 -
第7章--刷新程序开发_方案设计
在ECU制造完成之后,更新软件时需要运用ECU刷新功能。刷新过程包含了较多诊断命令的使用,通过了解刷新过程,可以对不同诊断命令的含义及使用场景有比较具体的认识。本专栏以ECU刷新功能为被测对象,实现了刷新过程的测试。刷新过程是一个数据传输过程,即将电脑(或其他设备)上的数据传输给ECU。ECU的刷新功能主要用于更新软件,因为ECU在制造完成之后就成为一个带接口的黑盒子,所有与ECU的通讯都需要通过这个接口来完成。一旦ECU装到车上,ECU的接口也很难接触到,因此连接ECU进行刷新就非常困难。原创 2023-05-20 22:47:38 · 138 阅读 · 0 评论 -
第10章--报文发送功能的实时性分析
在某些测试中,需要验证一些时间参数,通常这些参数是毫秒级别的,比如传输层时间参数N_Bs。N_Bs指的是发送方从“发送完首帧(FF)”到“收到流控帧”之间的时间差,其中发送方是指发送首帧的一方。在0.0015秒时,ECU向Tester发送了一帧报文,FF代表First Frame(首帧);在0.0118秒时,Tester向ECU发送了一帧报文,FC代表Flow Control(流控);这两个时间的差值(约10ms)即为本次测试中的N_Bs。原创 2023-05-20 22:57:34 · 451 阅读 · 0 评论 -
第13章--生成可独立查看的allure报告
实际工作中经常需要将测试报告发送给相关方,然而查看allure的报告不仅需要安装allure程序,而且要使用特定的命令才能查看,这不得不说是一件很不合理的事情。通过本章内容,我们将通过使用allure-combine库,来生成可以独立查看的测试报告。本章内容很简单,但是因为比较独立,所以没有合并到其他章节中。>>>返回总目录原创 2023-05-21 09:57:18 · 612 阅读 · 0 评论 -
第14章--功能寻址和TesterPresent
诊断相关的测试中会涉及到功能寻址的测试,同时部分场景也需要控制TesterPresent的发送。在本章中我们将一起开发这两个功能。本章完成了功能寻址和TesterPresent功能的开发。>>>返回总目录原创 2023-05-21 19:54:28 · 600 阅读 · 0 评论 -
专栏配套资源使用介绍
以上就是配套资源的大致使用方法。>>>返回总目录原创 2023-05-20 23:10:38 · 168 阅读 · 0 评论 -
第12章--传输层诊断报文收发功能开发
朋友们看到本章的标题可能会有疑惑,我们不是已经通过COM模块实现了诊断收发功能吗?用起来也挺方便的,为什么还要再次开发?同时,我们可能会对传输层的概念感到困惑,不知道当前发送的报文是处于哪一层。接下来,让我们一起来解答这些问题。原创 2023-05-20 23:08:26 · 243 阅读 · 0 评论 -
第11章--基于FDX的报文发送功能开发
通过调用函数来发送报文的方案存在输入参数类型和数量的限制,同时还需要在初始化的时候额外配置事件处理,使用比较麻烦;使用系统变量来触发报文发送的方案则需要设置多个变量才能完成报文发送,导致延迟增加;本章实现的方案仍是通过系统变量来触发报文发送,只不过不再通过COM接口来完成变量设置,而是使用FDX(Fast Data eXchange)来设置系统变量。原创 2023-05-20 23:03:26 · 484 阅读 · 0 评论 -
第9章--报文发送功能开发
在测试中,需要发送各种异常报文来验证ECU是否能正确响应。正常情况,应用层发送10 02,在CANoe中,看到的是如下报文,测试情况一,需要发送如下报文:测试情况二,需要发送如下报文:测试情况三,需要发送少于8字节的报文:利用CAPL的output函数可以比较容易地实现这些需求,但是,CANoe的COM模块并没有提供类似于output函数的接口,只能通过调用在CAPL中定义好的函数来实现。在Vector公司的文档。原创 2023-05-20 22:54:19 · 321 阅读 · 0 评论 -
第8章--刷新功能开发_步骤实现
上一章中实现了方案2的demo代码,但是其中的步骤都没有完成,本章将参考链接中描述的刷新流程完成刷新代码的步骤实现。原创 2023-05-20 22:50:42 · 129 阅读 · 0 评论 -
第3章--CANoe library开发 - 基础功能
在介绍完behave之后,我们来讨论一下CANoe库的开发。由于在实际测试中会涉及到大量CANoe的操作,因此,我们需要利用CANoe提供的COM接口来开发一个方便易用的库。COM接口可以简单理解为CANoe提供的基础接口,其他程序可以通过这些接口控制CANoe。本章我们完成了Python控制CANoe的基本功能开发,在后续,还将继续扩展该库,以提供更多的功能。>>>返回总目录原创 2023-04-25 17:06:22 · 627 阅读 · 0 评论