CANoe和Jenkins ,持续集成自动化测试

Posted 蚂蚁小兵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CANoe和Jenkins ,持续集成自动化测试相关的知识,希望对你有一定的参考价值。


前言

  • 这篇文章断断续续我写了一个月有余,一来涉及的技术点有很多,CANoe Pythonn COM口编程,jenkins/Pipline语法,bat语法,CANoe CAPL测试架构等等;另一方面这套系统在实际应用时,会比本章所展示的内容复杂的多,我要思考该怎么剥离掉抽象复杂的代码和配置,以简单的方式让大多数人能够接受。

  • 本文的CANoe和Jenkins系统是 基于CANoe 16 Demo 版本,无需Vector 硬件和liscense ,只要有台电脑,就可以跑通的。

  • 由于这套系统中运用的众多复杂技术,真正在项目中运用jenkins来完成车载项目的并不多,学会了这套系统,可以让你部门的自动化测试程度提高几个数量级,降本增效,你的能力也会有很大的提升,涨薪指日可待。

  • 全网独此一文,本文我们先从整体来感受下,Jenkins 可以用来做什么?

  • 需要安装软件: CANoe 16 SP2 demo,python3.8Git ,java,jenkins

目录

测试自动化

  • 毫无疑问,Jenkins 作为一个CI/CD工具,我们在车载诊断测试中引入它就是来完成我们的高级自动化测试
  • 下面我是创建的一个简单jenkins 工程 CANoeAutoRun ,虽然简单,但是功能已经很强大了,可以配置测试的模块,选择测试项目,测试的软件的版本,报告发送到测试人员等等

定时执行

  • jenkins 可以配置,定时执行,也可以配置待测试代码被提交了,触发执行。

测试过程和结果更透明

测试步骤逻辑更清晰

  • 看横着的红色框,整个测试分为了6个步骤:
  • 初始化(Initialization):实际项目可能有很多逻辑要处理,比如测试前的硬件设备端口号的预设,输入性文档的准备等等
  • 同步代码(Sync JnebkinsScript):同步 CANoe 工程和 Python 调用CANoe的源代码,这一步骤保证我们测试时,测试代码都是从版本库(git/gitee/ptc)上拉取最新的
  • CANoe预处理(killCANoeProcess):如果此时测试台架有CANoe正在运行,则处理掉当前的CANoe 进程
  • 执行测试(Run CANoe):核心步骤
  • 测试报告上传(Archive) : 测试完毕后,将测试报告上传上传到Master 路径,方便在线查看测试报告
  • 测试完毕处理(post) :比如将测试结果汇总,发送邮件到相关人员


测试历史可追溯

  • 如上图的 竖着的红色框,时近几次的测试历史,然后我们点击打开#96次的测试历史,可以看到更为具体的测试过程


测试结果保存

本地保存

  • 根据 被测试软件的版本,测试完毕,测试台架会收集测试报告(html/blf)等

服务器保存

  • 每次测试完毕之后,服务器上会保存一份(因为我就一台电脑,本机既是服务器(master节点),又是slave节点),然后在浏览器的jenkins上可有直接点击测试报告,在线打开,十分方便
  • jenkins 可以设定最大保存多少次,或者多少天历史记录

邮件推送测试总结

邮件样式

  • 如下图,是测试完毕后,将测试日志发给相关人员,并附件一个HTML格式的测试总结
  • 邮件发什么,可以在jenkins里面自由配置

测试结果总结

  • 附件 test_result.html打开就是这样,因为页面还没css修饰,有点丑,但是测试信息都在。

    @2022/1026,完善HTML报告显示方案

以上是关于CANoe和Jenkins ,持续集成自动化测试的主要内容,如果未能解决你的问题,请参考以下文章

自动化测试项目持续集成到jenkins

Jenkins UI与接口自动化测试持续集成实战

Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试(自由风格)

jenkins+maven+svn 远程部署到weblogic 持续集成

python+selenium自动化软件测试(第11章):持续集成jenkins和GitHub的使用

jenkins集群测试环境原理部署