CN115061746A - 基于Jenkins的车载网络控制器产品开发方法及系统 - Google Patents

基于Jenkins的车载网络控制器产品开发方法及系统 Download PDF

Info

Publication number
CN115061746A
CN115061746A CN202210695355.1A CN202210695355A CN115061746A CN 115061746 A CN115061746 A CN 115061746A CN 202210695355 A CN202210695355 A CN 202210695355A CN 115061746 A CN115061746 A CN 115061746A
Authority
CN
China
Prior art keywords
directory
test
latest version
version number
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210695355.1A
Other languages
English (en)
Inventor
祝宁
李德祥
贾涛
苗津铨
李文正
左登超
王晋伟
王福才
刘峻杭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CRRC Qingdao Sifang Rolling Stock Research Institute Co Ltd
Original Assignee
CRRC Qingdao Sifang Rolling Stock Research Institute Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CRRC Qingdao Sifang Rolling Stock Research Institute Co Ltd filed Critical CRRC Qingdao Sifang Rolling Stock Research Institute Co Ltd
Priority to CN202210695355.1A priority Critical patent/CN115061746A/zh
Publication of CN115061746A publication Critical patent/CN115061746A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于Jenkins的车载网络控制器产品开发方法及系统,车载网络控制器产品开发方法包括:SVN代码库监测步骤:对SVN代码库进行监测,根据SVN代码库的变化输出监测结果;监测结果执行步骤:根据监测结果选择性地触发Jenkins工具发起自动编译构建或者自动测试构建,本发明解决了车载网络控制器产品新功能开发完成后编译、配置文件修改、文件转换、打包、部署、重启硬件设备等都依靠手动完成的问题,实现整个开发过程自动化运行和管理,提高产品质量和研发效率,降低时间成本和人力成本。

Description

基于Jenkins的车载网络控制器产品开发方法及系统
技术领域
本发明涉及轨道交通技术领域,具体地说,尤其涉及一种基于Jenkins的车载网络控制器产品开发方法及系统。
背景技术
由于列车车载网络控制器产品兼具模型开发和嵌入式软件开发的特殊性,产品新功能开发完毕后,需要使用多款工具进行编译、配置文件修改、文件转换、打包、部署、重启硬件设备等,目前都需要采用手动方式进行,同时车载网络控制器产品具有需求变更次数多、新版本发布频繁等特点,列车车载网络控制器产品传统研发过程存在如下弊端:重复且繁多的操作步骤,增加了手工错误的可能性;编译环节耗时多导致人工等待时间长,影响了开发效率;研发人员往往在开发周期后期才测试和修复缺陷,增加了定位错误的难度和产品按期交付的风险。
现有技术中,可以通过结合SVN+maven+nexus架构组合模式,对Jenkins工具进行改进,编写xml配置文件,实现了Java项目研发流程自动化,但该方案特定适用于Java语言开发特性,不能直接适用于基于模型开发和嵌入式软件开发的车载网络控制器产品开发流程。
现有技术中,还可以通过在云服务器端部署Jenkins工具,实现车载网络产品的自动化测试及管理,但该方案适用于车载网络产品测试场景,不能直接适用于需要编译、打包、部署、重启硬件设备的产品的开发场景。
如何将车载网络控制器产品的繁琐开发工作实现完全自动化,提高产品质量和研发效率,成了要解决的关键问题。因此急需开发一种克服上述缺陷的基于Jenkins的车载网络控制器产品开发方法及系统。
发明内容
针对上述问题,本发明提供一种基于Jenkins的车载网络控制器产品开发方法,其中,包括:
SVN代码库监测步骤:对SVN代码库进行监测,根据所述SVN代码库的变化输出监测结果;
监测结果执行步骤:根据所述监测结果选择性地触发Jenkins工具发起自动编译构建或者自动测试构建。
上述的车载网络控制器产品开发方法,其中,所述SVN代码库监测步骤包括:
检测步骤:检出客户端输出至所述SVN代码库的改动内容;
版本号提取步骤:从所述改动内容中提取当前项目主目录最新版本号、当前程序目录最新版本号及当前测试目录最新版本号;
监测结果输出步骤:根据所述当前项目主目录最新版本号、所述当前程序目录最新版本号及所述当前测试目录最新版本号通过预设条件进行判断输出监测结果。
上述的车载网络控制器产品开发方法,其中,所述预设条件包括:
判断所述当前项目主目录最新版本号是否为空,如果不为空则继续;
判断所述当前项目主目录最新版本号、所述当前程序目录最新版本号及所述当前测试目录最新版本号是否相同,若全部相同输出第一监测结果;
判断所述当前项目主目录最新版本号、所述当前程序目录最新版本号及所述当前测试目录最新版本号是否相同,若不同则判断所述当前项目主目录最新版本号与所述当前程序目录最新版本号是否相同,若相同输出所述第一监测结果,若不同则判断所述当前项目主目录最新版本号与所述当前测试目录最新版本号是否相同,若相同输出第二监测结果。
上述的车载网络控制器产品开发方法,其中,所述监测结果执行步骤包括:
第一执行步骤:根据第一监测结果触发Jenkins工具发起自动编译构建,执行自动编译、自动部署及自动测试;或;
第二执行步骤:根据第二监测结果触发Jenkins工具发起自动测试构建后,执行自动测试。
上述的车载网络控制器产品开发方法,其中,所述第一执行步骤包括:
根据第一监测结果触发Jenkins工具发起自动编译构建,调用仿真工具将模型逻辑图编译生成C代码文件,再将具有所述C代码文件的文件夹复制到CCS工程指定目录下后,自动指定CCS工作空间、导入CCS工程、指定编译路径、编译CCS工程,生成标准文件输出;
修改CCS工程下配置文件的内容,指定需要加载的文件路径和生成的文件路径,调用AISgen工具自动加载配置文件,生成被测需要的可执行文件;
将可执行文件输出至所述SVN代码库,检出项目仓库至本地、删除测试目录下旧程序、复制新程序至测试目录下,进行自动部署任务构建;
触发Jenkins工具发起自动测试构建后,触发客户端的驱动软件调用现有测试软件进行程序部署,下载软件最终交付物至被测设备,并重启所述被测设备后,触发驱动软件调用现有测试软件进行自动测试,监听并解析所述驱动软件发回的数据。
上述的车载网络控制器产品开发方法,其中,所述第二执行步骤包括:
根据第二监测结果触发Jenkins工具发起自动测试构建后,触发客户端的驱动软件调用现有测试软件进行程序部署,下载软件最终交付物至被测设备,并重启所述被测设备后,触发驱动软件调用现有测试软件进行自动测试,监听并解析所述驱动软件发回的数据。
上述的车载网络控制器产品开发方法,其中,所述第一执行步骤及所述第二执行步骤均包括:
基于自动测试的返回结果,调用扩展Plot插件提取本地工作区的数据绘制趋势图并展示;
自动调用扩展email-ext插件根据预设的邮件模板自动发送邮件通知研发人员。
上述的车载网络控制器产品开发方法,其中,所述监听并解析所述驱动软件发回的数据包括:
如果接收到测试结果,则根据测试用例总数量、通过数量、未通过数量计算未执行数量、测试用例通过率,将数据写入本地工作区;如果接收到驱动软件内部处理错误,解析并发送错误类型至控制台。
本发明还提供一种基于Jenkins的车载网络控制器产品开发系统,其中,包括:服务器端,通过所述服务器端对SVN代码库进行监测,根据所述SVN代码库的变化输出监测结果;通过所述服务器端根据所述监测结果选择性地触发Jenkins工具发起自动编译构建或者自动测试构建。
上述的车载网络控制器产品开发系统,其中,所述服务器端包括:
部署于所述服务器端的SVN版本控制管理单元,通过所述SVN版本控制管理单元检出客户端输出至所述SVN代码库的改动内容,再从所述改动内容中提取当前项目主目录最新版本号、当前程序目录最新版本号及当前测试目录最新版本号,根据所述当前项目主目录最新版本号、所述当前程序目录最新版本号及所述当前测试目录最新版本号通过预设条件进行判断输出监测结果;
部署于所述服务器端的构建单元,根据第一监测结果触发Jenkins工具发起自动编译构建,执行自动编译、自动部署及自动测试;或;根据第二监测结果触发Jenkins工具发起自动测试构建后,执行自动测试。
本发明相对于现有技术其功效在于:
针对现有车载网络控制器产品开发过程存在的技术问题,本发明提供一种基于Jenkins的车载网络控制器产品开发方法和系统,解决了车载网络控制器产品新功能开发完成后编译、配置文件修改、文件转换、打包、部署、重启硬件设备等都依靠手动完成的问题,实现整个开发过程自动化运行和管理,提高产品质量和研发效率,降低时间成本和人力成本。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书以及附图中所指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的车载网络控制器产品开发方法的流程图;
图2为图1中步骤S1的分步骤流程图;
图3为本发明的车载网络控制器产品开发方法的应用流程图;
图4为本发明的车载网络控制器产品开发系统的结构示意图;
图5为执行结果示意图;
图6为测试结果趋势图;
图7为项目测试通过率趋势图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。另外,在附图及实施方式中所使用相同或类似标号的元件/构件是用来代表相同或类似部分。
关于本文中所使用的“第一”、“第二”、“S1”、“S2”、…等,并非特别指称次序或顺位的意思,也非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。
关于本文中所使用的方向用语,例如:上、下、左、右、前或后等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本创作。
关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。
关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。
关于本文中的“多个”包括“两个”及“两个以上”;关于本文中的“多组”包括“两组”及“两组以上”。
关于本文中所使用的用语“大致”、“约”等,用以修饰任何可以微变化的数量或误差,但这些微变化或误差并不会改变其本质。一般而言,此类用语所修饰的微变化或误差的范围在部分实施例中可为20%,在部分实施例中可为10%,在部分实施例中可为5%或是其他数值。本领域技术人员应当了解,前述提及的数值可依实际需求而调整,并不以此为限。
某些用以描述本申请的用词将于下或在此说明书的别处讨论,以提供本领域技术人员在有关本申请的描述上额外的引导。
请参照图1,图1为本发明的车载网络控制器产品开发方法的流程图。如图1所示,本发明的一种基于Jenkins的车载网络控制器产品开发方法包括:
SVN代码库监测步骤S1:对SVN代码库进行监测,根据所述SVN代码库的变化输出监测结果;
监测结果执行步骤S2:根据所述监测结果选择性地触发Jenkins工具发起自动编译构建或者自动测试构建。
由此,本发明可以同时监视同一SVN代码库下的源码目录和测试目录。当客户端提交改动至SVN代码库后,判断提交改动的是源码目录还是测试目录,灵活地选择并触发Jenkins持续集成服务器进行自动编译或者自动测试构建任务。
进一步地,请参照图2及图3,图2为图1中步骤S1的分步骤流程图;图3为本发明的车载网络控制器产品开发方法的应用流程图。如图2及图3所示,所述SVN代码库监测步骤S1包括:
检测步骤S11:检出客户端输出至所述SVN代码库的改动内容;
版本号提取步骤S12:从所述改动内容中提取当前项目主目录最新版本号、当前程序目录最新版本号及当前测试目录最新版本号;
监测结果输出步骤S13:根据所述当前项目主目录最新版本号、所述当前程序目录最新版本号及所述当前测试目录最新版本号通过预设条件进行判断输出监测结果。
其中,所述预设条件包括:
判断所述当前项目主目录最新版本号是否为空,如果不为空则继续;
判断所述当前项目主目录最新版本号、所述当前程序目录最新版本号及所述当前测试目录最新版本号是否相同,若全部相同输出第一监测结果;
判断所述当前项目主目录最新版本号、所述当前程序目录最新版本号及所述当前测试目录最新版本号是否相同,若不同则判断所述当前项目主目录最新版本号与所述当前程序目录最新版本号是否相同,若相同输出所述第一监测结果,若不同则判断所述当前项目主目录最新版本号与所述当前测试目录最新版本号是否相同,若相同输出第二监测结果。
其中,所述第一监测结果代表为源码目录发生变化,所述第二监测结果代表为测试目录发生变化。
在本实施例中,本发明通过在服务器端构建自定义钩子程序对SVN代码库进行监测,具体地说,客户端提交改动至项目仓库后触发执行自定义钩子程序,自定义钩子程序检出项目仓库至本地服务器后从所述改动内容中提取当前项目主目录最新版本号prj_ver、当前程序目录最新版本号build_ver及当前测试目录最新版本号test_ver;判断所述当前项目主目录最新版本号是否为空prj_ver,如果不为空则继续,如果为空则不触发Jenkins构建;若prj_ver==build_ver==prj_ver则输出所述第一监测结果触发Jenkins工具发起自动编译构建;否则若prj_ver==build_ver则输出所述第一监测结果触发Jenkins工具发起自动编译构建;否则若prj_ver==test_ver则输出所述第二监测结果触发Jenkins工具发起自动测试构建,否则不触发Jenkins构建。
基于此,本发明的钩子程序可以同时监视同一SVN代码库下的源码目录和测试目录。当SVN客户端提交改动至SVN代码库后,判断提交改动的是源码目录还是测试目录,灵活地选择并触发Jenkins持续集成服务器进行自动编译或者自动测试构建任务。如果自动编译成功,系统会触发自动测试任务。
再进一步地,所述监测结果执行步骤S2包括:
第一执行步骤S21:根据第一监测结果触发Jenkins工具发起自动编译构建,执行自动编译、自动部署及自动测试;或;
第二执行步骤S22:根据第二监测结果触发Jenkins工具发起自动测试构建后,执行自动测试。
具体地说,所述第一执行步骤S21包括:
自动编译步骤S211:根据第一监测结果触发Jenkins工具发起自动编译构建,调用仿真工具将模型逻辑图编译生成C代码文件,再将具有所述C代码文件的文件夹复制到CCS工程指定目录下后,自动指定CCS工作空间、导入CCS工程、指定编译路径、编译CCS工程,生成标准文件输出;
具体地说,在步骤S211中,自动调用仿真环境Simulink的补充模块Real-TimeWorkshop和Target Language Compiler,将图形化逻辑图编译生成C代码文件,将该代码文件夹复制到CCS工程指定目录下,然后,自动指定CCS工作空间、导入CCS工程、指定编译路径、编译CCS工程,生成标准输出的.out和.map文件。
自动转换生成软件最终交付物步骤S212:修改CCS工程下配置文件的内容,指定需要加载的文件路径和生成的文件路径,调用AISgen工具自动加载配置文件,生成被测需要的可执行文件;
具体地说,在步骤S212中,自动修改CCS工程下配置文件的内容,指定需要加载的.out文件路径和生成的.ais文件路径,调用AISgen工具自动加载配置文件,生成被测需要的可执行文件,其中可执行文件为.ais文件。
自动部署步骤S213:将可执行文件输出至所述SVN代码库,检出项目仓库至本地、删除测试目录下旧程序、复制新程序至测试目录下,进行自动部署任务构建;
具体地说,在步骤S213中,自动提交可执行文件至SVN代码库,触发SVN自动检出项目仓库至本地、删除测试目录下旧程序、复制新程序至测试目录下,触发Jenkins工具执行自动部署任务构建。
自动测试步骤S214:触发Jenkins工具发起自动测试构建后,触发客户端的驱动软件调用现有测试软件进行程序部署,下载软件最终交付物至被测设备,并重启所述被测设备后,触发驱动软件调用现有测试软件进行自动测试,监听并解析所述驱动软件发回的数据。
具体地说,在步骤S214中,本发明采用TCP协议并使用回环地址127.0.0.1与现有测试软件开放的接口程序,即驱动软件进行数据传输。将待测项目路径发送给客户端的驱动软件,自动触发驱动软件调用现有测试软件进行程序部署,下载软件最终交付物至被测,并重启被测设备,触发驱动软件调用现有测试软件进行自动测试,监听并解析所述驱动软件发回的数据。
其中,监听并解析所述驱动软件发回的数据包括:如果接收到测试结果,测试结果至少包括:测试用例总数量、通过数量及未通过数量,则根据测试用例总数量、通过数量及未通过数量计算未执行数量、测试用例通过率,将数据写入本地工作区.csv文件中;如果接收到驱动软件内部处理错误,解析并发送错误类型至控制台,并在控制台打印错误信息。
自动绘制图表步骤S215:基于自动测试的返回结果,调用扩展Plot插件提取本地工作区的数据绘制趋势图并展示;
具体地说,在步骤S215中基于自动测试的返回结果,调用基于Java语言的扩展Plot插件,提取本地工作区.csv文件中的数据,绘制项目测试结果趋势图,如图6及测试用例通过率趋势图,如图7,并在Jenkins持续集成服务器Web页面展示。
自动发送邮件通知步骤S216:自动调用扩展email-ext插件根据预设的邮件模板自动发送邮件通知研发人员;
具体地说,在步骤S216中,利用web前端开发语言HTML5/CSS3和JavaScript,分别定义自动编译和自动测试项目的邮件模板。项目任务构建结束后,自动调用扩展email-ext插件,在局域网内通过SMTP服务器自动发送邮件通知研发人员。邮件中包含项目构建的Web页面链接,方便研发人员直接点击链接查看项目执行详细信息。研发人员可根据反馈结果,进行新一轮源码修改。
具体地说,所述第二执行步骤S22包括:
自动测试步骤S221:触发Jenkins工具发起自动测试构建后,触发客户端的驱动软件调用现有测试软件进行程序部署,下载软件最终交付物至被测设备,并重启所述被测设备后,触发驱动软件调用现有测试软件进行自动测试,监听并解析所述驱动软件发回的数据。
具体地说,在步骤S221中,本发明采用TCP协议并使用回环地址127.0.0.1与现有测试软件开放的接口程序,即驱动软件进行数据传输。将待测项目路径发送给客户端的驱动软件,自动触发驱动软件调用现有测试软件进行程序部署,下载软件最终交付物至被测,并重启被测设备,触发驱动软件调用现有测试软件进行自动测试,监听并解析所述驱动软件发回的数据。
其中,监听并解析所述驱动软件发回的数据包括:如果接收到测试结果,测试结果至少包括:测试用例总数量、通过数量及未通过数量,则根据测试用例总数量、通过数量及未通过数量计算未执行数量、测试用例通过率,将数据写入本地工作区.csv文件中;如果接收到驱动软件内部处理错误,解析并发送错误类型至控制台,并在控制台打印错误信息。
自动绘制图表步骤S222:基于自动测试的返回结果,调用扩展Plot插件提取本地工作区的数据绘制趋势图并展示;
具体地说,在步骤S222中基于自动测试返回的执行结果即图5,调用基于Java语言的扩展Plot插件,提取本地工作区.csv文件中的数据,绘制项目测试结果趋势图,如图6及测试用例通过率趋势图,如图7,并在Jenkins持续集成服务器Web页面展示。
其中,图5为执行结果示意图。登录Jenkinsweb服务器可以查看执行完成的项目、正在执行的项目、排队等待执行的项目、项目构建结果等。图6为测试结果趋势图。横轴表示触发自动测试的Jenkins构建ID,纵轴表示测试用例数。图6中红色、绿色、蓝色、紫色曲线分别表示测试用例总数、通过用例数、失败用例数、未执行用例数趋势图。从该图可以看出某项目测试执行的具体信息。图7为项目测试通过率趋势图。横轴表示触发自动测试的Jenkins构建ID,纵轴表示测试通过率。通过某项目测试通过率趋势图,可以判断被测产品质量的稳定性趋势。
自动发送邮件通知步骤S223:自动调用扩展email-ext插件根据预设的邮件模板自动发送邮件通知研发人员;
具体地说,在步骤S223中,利用web前端开发语言HTML5/CSS3和JavaScript,分别定义自动编译和自动测试项目的邮件模板。项目任务构建结束后,自动调用扩展email-ext插件,在局域网内通过SMTP服务器自动发送邮件通知研发人员。邮件中包含项目构建的Web页面链接,方便研发人员直接点击链接查看项目执行详细信息。研发人员可根据反馈结果,进行新一轮源码修改。
请参照图4,图4为本发明的车载网络控制器产品开发系统的结构示意图。如图4所示,本发明的车载网络控制器产品开发系统应用于前述的车载网络控制器产品开发方法,车载网络控制器产品开发系统包括:客户端11及服务器端12,通过所述服务器端12对SVN代码库进行监测,根据所述SVN代码库的变化输出监测结果;通过所述服务器端根据所述监测结果选择性地触发Jenkins工具发起自动编译构建或者自动测试构建。
其中,所述服务器端12包括:
部署于所述服务器端的SVN版本控制管理单元121,SVN版本控制管理单元121包括SVN代码库及自定义钩子程序模块,自定义钩子程序模块检出客户端11输出至所述SVN代码库的改动内容,再从所述改动内容中提取当前项目主目录最新版本号、当前程序目录最新版本号及当前测试目录最新版本号,根据所述当前项目主目录最新版本号、所述当前程序目录最新版本号及所述当前测试目录最新版本号通过预设条件进行判断输出监测结果;
部署于所述服务器端的构建单元122,根据第一监测结果触发Jenkins工具发起自动编译构建,执行自动编译、自动部署及自动测试;或;根据第二监测结果触发Jenkins工具发起自动测试构建后,执行自动测试。
其中构建单元122包括SVN插件及自定义自动化构建模块,自定义自动化构建模块根据监测结果在新功能开发完成后,实现自动编译、自动部署、自动测试,测试结束后,自动绘制测试结果图表和发送邮件通知。
综上所述,本发明实现了持续编译、持续部署、持续测试、持续交付,相比现有的车载网络控制器产品开发方法,本发明提出的技术方案具有如下有益效果:
1.使研发人员从重复性劳动中解放出来,减少了手工出错的可能性;
2.使研发人员专注于更为重要的业务逻辑实现和业务功能测试用例设计上,优化了人力资源配置,提升了产品质量;
3.缩短了开发编译、部署、测试各个环节的时间,同时也缩短了中间出现的等待时间,提高了产品研发效率,节省了时间成本和人力成本;
4.不必等到开发周期后期才寻找和修复缺陷,频繁地集成可以及时快速地发现和定位错误,缩短了整个开发周期,更快地交付成果;
5.本发明可应用于产品开发环境、测试环境、生产环境等多种场景,为轨道交通产品软件研发提供了新的思路和解决方案。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于Jenkins的车载网络控制器产品开发方法,其特征在于,包括:
SVN代码库监测步骤:对SVN代码库进行监测,根据所述SVN代码库的变化输出监测结果;
监测结果执行步骤:根据所述监测结果选择性地触发Jenkins工具发起自动编译构建或者自动测试构建。
2.如权利要求1所述的车载网络控制器产品开发方法,其特征在于,所述SVN代码库监测步骤包括:
检测步骤:检出客户端输出至所述SVN代码库的改动内容;
版本号提取步骤:从所述改动内容中提取当前项目主目录最新版本号、当前程序目录最新版本号及当前测试目录最新版本号;
监测结果输出步骤:根据所述当前项目主目录最新版本号、所述当前程序目录最新版本号及所述当前测试目录最新版本号通过预设条件进行判断输出监测结果。
3.如权利要求2所述的车载网络控制器产品开发方法,其特征在于,所述预设条件包括:
判断所述当前项目主目录最新版本号是否为空,如果不为空则继续;
判断所述当前项目主目录最新版本号、所述当前程序目录最新版本号及所述当前测试目录最新版本号是否相同,若全部相同输出第一监测结果;
判断所述当前项目主目录最新版本号、所述当前程序目录最新版本号及所述当前测试目录最新版本号是否相同,若不同则判断所述当前项目主目录最新版本号与所述当前程序目录最新版本号是否相同,若相同输出所述第一监测结果,若不同则判断所述当前项目主目录最新版本号与所述当前测试目录最新版本号是否相同,若相同输出第二监测结果。
4.如权利要求3所述的车载网络控制器产品开发方法,其特征在于,所述监测结果执行步骤包括:
第一执行步骤:根据第一监测结果触发Jenkins工具发起自动编译构建,执行自动编译、自动部署及自动测试;或;
第二执行步骤:根据第二监测结果触发Jenkins工具发起自动测试构建后,执行自动测试。
5.如权利要求4所述的车载网络控制器产品开发方法,其特征在于,所述第一执行步骤包括:
根据第一监测结果触发Jenkins工具发起自动编译构建,调用仿真工具将模型逻辑图编译生成C代码文件,再将具有所述C代码文件的文件夹复制到CCS工程指定目录下后,自动指定CCS工作空间、导入CCS工程、指定编译路径、编译CCS工程,生成标准文件输出;
修改CCS工程下配置文件的内容,指定需要加载的文件路径和生成的文件路径,调用AISgen工具自动加载配置文件,生成被测需要的可执行文件;
将可执行文件输出至所述SVN代码库,检出项目仓库至本地、删除测试目录下旧程序、复制新程序至测试目录下,进行自动部署任务构建;
触发Jenkins工具发起自动测试构建后,触发客户端的驱动软件调用现有测试软件进行程序部署,下载软件最终交付物至被测设备,并重启所述被测设备后,触发驱动软件调用现有测试软件进行自动测试,监听并解析所述驱动软件发回的数据。
6.如权利要求4所述的车载网络控制器产品开发方法,其特征在于,所述第二执行步骤包括:
根据第二监测结果触发Jenkins工具发起自动测试构建后,触发客户端的驱动软件调用现有测试软件进行程序部署,下载软件最终交付物至被测设备,并重启所述被测设备后,触发驱动软件调用现有测试软件进行自动测试,监听并解析所述驱动软件发回的数据。
7.如权利要求4所述的车载网络控制器产品开发方法,其特征在于,所述第一执行步骤及所述第二执行步骤均包括:
基于自动测试的返回结果,调用扩展Plot插件提取本地工作区的数据绘制趋势图并展示;
自动调用扩展email-ext插件根据预设的邮件模板自动发送邮件通知研发人员。
8.如权利要求4或5所述的车载网络控制器产品开发方法,其特征在于,所述监听并解析所述驱动软件发回的数据包括:
如果接收到测试结果,则根据测试用例总数量、通过数量、未通过数量计算未执行数量、测试用例通过率,将数据写入本地工作区;如果接收到驱动软件内部处理错误,解析并发送错误类型至控制台。
9.一种基于Jenkins的车载网络控制器产品开发系统,其特征在于,包括:服务器端,通过所述服务器端对SVN代码库进行监测,根据所述SVN代码库的变化输出监测结果;通过所述服务器端根据所述监测结果选择性地触发Jenkins工具发起自动编译构建或者自动测试构建。
10.如权利要求9所述的车载网络控制器产品开发系统,其特征在于,所述服务器端包括:
部署于所述服务器端的SVN版本控制管理单元,通过所述SVN版本控制管理单元检出客户端输出至所述SVN代码库的改动内容,再从所述改动内容中提取当前项目主目录最新版本号、当前程序目录最新版本号及当前测试目录最新版本号,根据所述当前项目主目录最新版本号、所述当前程序目录最新版本号及所述当前测试目录最新版本号通过预设条件进行判断输出监测结果;
部署于所述服务器端的构建单元,根据第一监测结果触发Jenkins工具发起自动编译构建,执行自动编译、自动部署及自动测试;或;根据第二监测结果触发Jenkins工具发起自动测试构建后,执行自动测试。
CN202210695355.1A 2022-06-20 2022-06-20 基于Jenkins的车载网络控制器产品开发方法及系统 Pending CN115061746A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210695355.1A CN115061746A (zh) 2022-06-20 2022-06-20 基于Jenkins的车载网络控制器产品开发方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210695355.1A CN115061746A (zh) 2022-06-20 2022-06-20 基于Jenkins的车载网络控制器产品开发方法及系统

Publications (1)

Publication Number Publication Date
CN115061746A true CN115061746A (zh) 2022-09-16

Family

ID=83202782

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210695355.1A Pending CN115061746A (zh) 2022-06-20 2022-06-20 基于Jenkins的车载网络控制器产品开发方法及系统

Country Status (1)

Country Link
CN (1) CN115061746A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573235A (zh) * 2024-01-17 2024-02-20 山东浪潮数据库技术有限公司 一种持续集成构建配置管理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573235A (zh) * 2024-01-17 2024-02-20 山东浪潮数据库技术有限公司 一种持续集成构建配置管理方法

Similar Documents

Publication Publication Date Title
US6415396B1 (en) Automatic generation and maintenance of regression test cases from requirements
CN107273286B (zh) 针对任务应用的场景自动化测试平台及方法
CN111930635B (zh) 基于swagger快速自动化测试的方法及系统
CN108845940B (zh) 一种企业级信息系统自动化功能测试方法和系统
US6556950B1 (en) Diagnostic method and apparatus for use with enterprise control
US5799193A (en) Scenario based iterative method for development of an object oriented system model
US20180253296A1 (en) Software kit release management
CN111930421A (zh) 一种基于DevOps的自由编排监控系统及其使用方法
WO2001048603A9 (en) Object oriented software development tool with the ability to create or purchase new components and add them to an inventory (catalog)
CN114490319A (zh) 一种分布式持续集成自动化测试方法和系统
CN115061746A (zh) 基于Jenkins的车载网络控制器产品开发方法及系统
CN113741881B (zh) 一种rpa可视化流程设计方法
CN112527312B (zh) 一种嵌入式系统的测试方法和测试装置
US20190057333A1 (en) System and method for risk, waste, and opportunity evaluation, analysis, and recommendation
Graaf et al. Model-driven consistency checking of behavioural specifications
KR101449201B1 (ko) 철강 공정용 소프트웨어 자동 테스트 시스템
CN115185508B (zh) 一种基于图元的算法组态工具和方法
CN116400950A (zh) 一种基于版本控制的DevOps元流水线系统
CN113806114A (zh) 一种基于rpa机器人的商品展示页违禁词检查方法
CN112231231B (zh) 云端服务的调试方法、系统及装置
CN113791977A (zh) 代码开发的处理方法、装置、电子设备与存储介质
CN112579443B (zh) 智慧测试机器人的自动化测试方法及平台
CN112836220B (zh) 一种云中心环境检查方法
US20060277251A1 (en) Information processing apparatus and system development method
CN116450305B (zh) 基于分布式任务调度的soar平台组件执行方法与装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination