CN113721957B - 对嵌入式设备固件部署升级的自动测试方法、装置和系统 - Google Patents

对嵌入式设备固件部署升级的自动测试方法、装置和系统 Download PDF

Info

Publication number
CN113721957B
CN113721957B CN202111003221.0A CN202111003221A CN113721957B CN 113721957 B CN113721957 B CN 113721957B CN 202111003221 A CN202111003221 A CN 202111003221A CN 113721957 B CN113721957 B CN 113721957B
Authority
CN
China
Prior art keywords
version
firmware
upgrade
upgrading
mqtt server
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.)
Active
Application number
CN202111003221.0A
Other languages
English (en)
Other versions
CN113721957A (zh
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.)
Sichuan Hongmei Intelligent Technology Co Ltd
Original Assignee
Sichuan Hongmei Intelligent Technology 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 Sichuan Hongmei Intelligent Technology Co Ltd filed Critical Sichuan Hongmei Intelligent Technology Co Ltd
Priority to CN202111003221.0A priority Critical patent/CN113721957B/zh
Publication of CN113721957A publication Critical patent/CN113721957A/zh
Application granted granted Critical
Publication of CN113721957B publication Critical patent/CN113721957B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本申请提供了一种对嵌入式设备固件部署升级的自动测试方法、装置和系统;该方案包括:设备在开启之后,调用Jenkins工具中的CI JOB配置待升级的目标固件的多个版本参数,基于配置的所述多个版本参数,按照版本由低至高的顺序依次分别执行每个版本参数对应的固件升级脚本,直至完成所有版本升级测试;其中,设备执行每个版本参数对应的固件升级脚本,包括:设备基于本次选择的版本参数从http服务器下载匹配的固件升级文件并同步到消息队列遥测传输MQTT服务器上以完成固件升级部署;MQTT服务器对所述固件升级文件进行版本校验;在校验通过,MQTT服务器向所述设备下发升级命令;所述设备在接收到所述升级命令后,从MQTT服务器下载所述固件升级文件并进行版本升级。

Description

对嵌入式设备固件部署升级的自动测试方法、装置和系统
技术领域
本文件涉及固件升级测试技术领域,尤其涉及一种对嵌入式设备固件部署升级的自动测试方法、装置和系统。
背景技术
随着公司的不断发展壮大,各部门所开展的项目越来越多,为了保证公司项目交付出去之后,后续产品设备端可以正常升级且升级之后产品功能可正常使用,在交付之前我们需要对产品的升级功能进行反复的升级验证测试,以避免产品交付出去之后不能升级新的版本或者升级之后产品不能正常使用,影响公司产品业务拓展以及后续项目的正常开展。
固件是指设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。这里的固件升级是指设备上电工作时检测到MQTT服务器上有新的更高版本的固件存在则下载最新版本固件进行设备端版本升级。现有的固件升级测试方法,由开发人员手动将待升级的固件版本放在云端MQTT服务器上,测试人员重启设备,并通过实时日志信息去查看设备端是否去获取新版本信息,并下载新版本进行升级,再次通过查看实时日志信息确认版本是否升级成功。
为了确保版本的稳定可用,升级测试过程需要反复多次的验证升级功能是否正常,即需要开发人员多次手动删除再次部署升级包到MQTT服务器供测试人员测试验证;公司产品项目几乎都涉及到嵌入式开发,众多项目通过手动部署进行升级测试即会造成人力物力的一个浪费,又会影响公司项目开展的效率。
发明内容
本发明提供了一种对嵌入式设备固件部署升级的自动测试方法、装置和系统,以通过自动下载部署升级固件版本进行升级测试,减少人为反复多次干预,可以减少主观失误有效提高版本固件升级的准确性;自动下载部署升级固件版本进行升级,减少开发人员和测试人员多次配合参与升级测试,即节约了人力物力资源又提升了产品开发效率。
为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
第一方面,提出了一种对嵌入式设备固件部署升级的自动测试方法,包括:
设备在开启之后,调用Jenkins工具中的CI JOB配置待升级的目标固件的多个版本参数,其中,每个版本参数构建有相应的固件升级脚本;基于配置的所述多个版本参数,按照版本由低至高的顺序依次分别执行每个版本参数对应的固件升级脚本,直至完成所有版本升级测试;其中,设备执行每个版本参数对应的固件升级脚本,包括:设备基于本次选择的版本参数从http服务器下载匹配的固件升级文件并同步到消息队列遥测传输MQTT服务器上以完成固件升级部署;所述MQTT服务器对所述固件升级文件进行版本校验;在校验通过,所述MQTT服务器向所述设备下发升级命令;所述设备在接收到所述升级命令后,从所述MQTT服务器下载所述固件升级文件并进行版本升级。
第二方面,提出了一种对嵌入式设备固件部署升级的自动测试系统,其特征在于,包括:内置有一个或多个固件的设备,MQTT服务器和http服务器;所述设备上安装有Jenkins工具;其中,
设备在开启之后,调用Jenkins工具中的CI JOB配置待升级的目标固件的多个版本参数,其中,每个版本参数构建有相应的固件升级脚本;基于配置的所述多个版本参数,按照版本由低至高的顺序依次分别执行每个版本参数对应的固件升级脚本,直至完成所有版本升级测试;其中,设备执行每个版本参数对应的固件升级脚本,包括:设备基于本次选择的版本参数从http服务器下载匹配的固件升级文件并同步到消息队列遥测传输MQTT服务器上以完成固件升级部署;所述MQTT服务器对所述固件升级文件进行版本校验;在校验通过,所述MQTT服务器向所述设备下发升级命令;所述设备在接收到所述升级命令后,从所述MQTT服务器下载所述固件升级文件并进行版本升级。
第三方面,提出了一种对嵌入式设备固件部署升级的自动测试方法,包括:
设备在开启之后,调用Jenkins工具中的CI JOB配置待升级的目标固件的多个版本参数,其中,每个版本参数构建有相应的固件升级脚本;基于配置的所述多个版本参数,按照版本由低至高的顺序依次分别执行每个版本参数对应的固件升级脚本,直至完成所有版本升级测试;其中,设备执行每个版本参数对应的固件升级脚本,包括:设备基于本次选择的版本参数从http服务器下载匹配的固件升级文件并同步到消息队列遥测传输MQTT服务器上以完成固件升级部署,以便于所述MQTT服务器对所述固件升级文件进行版本校验,并在校验通过后向所述设备下发升级命令;所述设备在接收到所述升级命令后,从所述MQTT服务器下载所述固件升级文件并进行版本升级。
第四方面,提出了一种对嵌入式设备固件部署升级的自动测试装置,包括:
调用模块,用于设备在开启之后,调用Jenkins工具中的CI JOB配置待升级的目标固件的多个版本参数,其中,每个版本参数构建有相应的固件升级脚本;
执行模块,用于基于配置的所述多个版本参数,按照版本由低至高的顺序依次分别执行每个版本参数对应的固件升级脚本,直至完成所有版本升级测试;其中,所述执行模块在执行每个版本参数对应的固件升级脚本时,用于:基于本次选择的版本参数从http服务器下载匹配的固件升级文件并同步到消息队列遥测传输MQTT服务器上以完成固件升级部署,以便于所述MQTT服务器对所述固件升级文件进行版本校验,并在校验通过后向所述设备下发升级命令;在接收到所述升级命令后,从所述MQTT服务器下载所述固件升级文件并进行版本升级。
第五方面,提出了一种电子设备,包括:
至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行第三方面所述的方法。
第六方面,提出了一种计算机可读存储介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行第三方面所述的方法。
由以上本说明书一个或多个实施例提供的技术方案可见,当需要升级测试时,通过测试人员对Jenkins平台的CI JOB进行待升级固件版本参数设置,Jenkins会根据配置的版本参数执行对应的脚本文件,即通过执行JOB构建将待升级的固件版本从http服务器同步到MQTT服务器,将MQTT服务器上的两个设备固件版本,即设备当前版本与待升级固件版本进行对比,发现固件升级版本高于当前版本,并校验该固件升级版本是否是我们设备对应的升级固件,验证通过之后则MQTT服务器下发一个升级命令给设备端,设备端通过串口与MQTT服务器进行通信查询是否有新版本,检测到新版本之后进行校验新版本,校验通过之后下载新版本进行设备固件升级;升级完成之后自动删除MQTT服务器上已升级版本重新部署更新的版本进行验证测试,反复多次升级部署测试,确保版本固件升级稳定可靠。通过自动下载部署升级固件版本进行升级测试,减少人为反复多次干预,可以减少主观失误有效提高版本固件升级的准确性;自动下载部署升级固件版本进行升级,减少开发人员和测试人员多次配合参与升级测试,即节约了人力物力资源又提升了产品开发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有手动固件部署升级系统过程示意图。
图2是本说明书实施例提供的一种对嵌入式设备固件部署升级的自动测试方法的步骤示意图。
图3是本发明所述的自动部署固件升级系统流程示意图。
图4是本说明书实施例提供Jenkins平台和MQTT服务器自动部署升级固件的原理示意图。
图5是本说明书实施例提供的对嵌入式设备固件部署升级的自动测试系统结构示意图。
图6是本说明书实施例还提供一种对嵌入式设备固件部署升级的自动测试装置结构示意图。
图7是本说明书实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的一个或多个实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
参照图1所示,描绘了现有手动固件部署升级系统过程。手动固件部署升级方法主要指项目开发过程中,为了确保我们交付出去的产品可正常升级维护且升级之后能正常使用,因此在交付之前进行的嵌入式设备固件升级部署测试,该过程是开发人员通过多次手动部署升级测试的过程。
由于公司开展的项目众多,在实际产品开发过程中,同一个项目需要反复多次测试固件升级,比如1.0版本升级到1.1、1.2、…、1.9等版本,反复多次测试确保交付出去产品版本的稳定性和可靠性。公司项目众多,为了避免产品交付出去之后不能升级新的版本或者升级之后产品不能正常使用,每个项目都需要反复测试固件升级。目前的做法是,开发人员在MQTT服务器上传并部署一个高版本的固件,测试人员重启设备并配网,通过设备日志查看,设备端检测是否有新的版本,并且与当前设备端版本进行对比,当新版本高于现有版本,下载新版本进行升级,升级之后重启设备,并打印出新的版本信息;须再一次固件升级测试时,开发人员须在MQTT服务器上删除之前的升级版本固件,重新上传并部署一个新的版本进行重复的固件升级测试。这就导致人为反复多次干预,增加主观失误降低版本固件升级的准确性;且手动下载部署升级固件版本进行升级测试,导致人力物力资源浪费且降低产品开发效率。
为此,本发明提出一种嵌入式设备固件自动检测部署升级的装置及系统,该系统包括升级固件版本上传到MQTT服务器、MQTT服务器下发消息给设备、设备监听MQTT服务器消息、设备下载升级固件版本进行升级。当需要升级测试时,测试人员对Jenkins平台的CIJOB进行配置,并执行JOB构建将待升级的固件版本从http服务器同步到MQTT服务器,设备端通过串口与MQTT服务器进行通信查询是否有新版本,检测到新版本之后进行校验新版本,校验通过之后下载新版本进行设备固件升级;升级完成之后自动删除MQTT服务器上已升级版本重新部署更新的版本进行验证测试,反复多次升级部署测试,确保版本固件升级稳定可靠。
该发明通过自动下载部署升级固件版本进行升级测试,减少人为反复多次干预,可以减少主观失误有效提高版本固件升级的准确性;自动下载部署升级固件版本进行升级,减少开发人员和测试人员多次配合参与升级测试,即节约了人力物力资源又提升了产品开发效率。
其中,Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与配置管理员(SCM)、构建工具结合使用。
下面通过具体的实施例对本说明书方案进行详述。
实施例一
参照图2所示,为本说明书实施例提供的一种对嵌入式设备固件部署升级的自动测试方法的步骤示意图,所述方法可以包括以下步骤:
步骤202:设备在开启之后,调用Jenkins工具中的CI JOB配置待升级的目标固件的多个版本参数,其中,每个版本参数构建有相应的固件升级脚本。
所述版本参数可以为版本号。即每个版本号都对应有各自固件升级脚本。其中,每个版本参数均是根据http服务器上的不同版本的固件升级文件确定的,具体可以获取每个版本的固件升级文件的版本号。
步骤204:基于配置的所述多个版本参数,按照版本由低至高的顺序依次分别执行每个版本参数对应的固件升级脚本,直至完成所有版本升级测试。
当需要将固件版本从1.0升级到高版本时,通过Jenkins JOB配置待升级固件版本参数,比如1.1、1.2、…、1.9等,后续执行构建的时候,会根据设置的参数版本,执行相应的脚本文件。
其中,步骤204可以包括以下子步骤:
子步骤2042:设备基于本次选择的版本参数从http服务器下载匹配的固件升级文件并同步到消息队列遥测传输MQTT服务器上以完成固件升级部署。
子步骤2044:所述MQTT服务器对所述固件升级文件进行版本校验。
可选地,所述子步骤2044中MQTT服务器对所述固件升级文件进行版本校验时,具体包括:将所述固件升级文件的版本与所述目标固件当前版本进行比对;如果所述固件升级文件的版本高于所述目标固件当前版本,则判断所述固件升级文件是否为所述目标固件对应的升级文件;如果是,则确认校验通过。如果所述固件升级文件的版本不高于所述目标固件当前版本,或是,所述固件升级文件不是所述目标固件对应的升级文件,则确认校验不通过。
子步骤2046:在校验通过,所述MQTT服务器向所述设备下发升级命令。
子步骤2048:所述设备在接收到所述升级命令后,从所述MQTT服务器下载所述固件升级文件并进行版本升级。
可选地,在升级完成之后,所述方法还包括:所述设备向所述MQTT服务器返回升级完成消息;触发CI JOB删除所述MQTT服务器上所述固件升级文件;发送升级测试完成的通知邮件给测试方。
可选地,所述设备周期性监听所述MQTT服务器是否在有效监听时段内下发所述升级命令。
参照图3所示,描绘了本发明所述的自动部署固件升级系统,当某个项目需要升级测试时,开启设备,调用Jenkins中的CI JOB,配置固件版本,通过构建CI任务执行升级脚本,升级成功之后,邮件通知测试人员并删除该升级固件版本;升级固件上传到MQTT服务器、获取MQTT服务器上新版本、MQTT服务器部署新版本、设备端升级新版本。当需要将固件版本从1.0升级到高版本时,通过Jenkins JOB配置待升级固件版本参数,比如1.1、1.2、…、1.9等,后续执行构建的时候,会根据设置的参数版本,执行相应的脚本文件。
设备开启之后,点击CI构建,Jenkins会根据配置的版本参数执行对应的脚本文件;执行脚本任务包括从http服务器下载对应的固件升级版本放到MQTT服务器并完成固件升级部署,MQTT服务器检测固件升级版本与现设备固件版本进行对比,如果固件升级版本高于现版本,则校验该固件升级版本是否是我们设备对应的升级固件,校验通过之后MQTT服务器给设备下发升级命令,设备端收到MQTT服务器下发的升级消息后,下载固件升级版本并进行升级,升级成功之后重启设备并返回升级完成的命令给MQTT服务器,CI JOB执行MQTT服务器上删除该固件升级版本命令,并发送CI集成成功邮件,通过邮件通知测试人员升级成功。
图4所示,描绘了Jenkins平台和MQTT服务器自动部署升级固件的原理,其中①为设备端定时监听指令,即设置启动设备之后2分钟的定时监听,监听是否有MQTT服务器下发的升级固件更新的消息;②为当设备监听到MQTT下发的固件版本更新时,触发下载升级包请求,下载新版本的固件进行升级,设备端版本升级完成之后,会发送一个升级完成的消息给MQTT服务器;③通过Jenkins中的CI JOB设置好升级版本参数后,从http服务器下载固件升级包后,将升级包同步到MQTT服务器上;④将MQTT服务器上的两个设备固件版本,即设备当前版本与待升级固件版本进行对比,发现固件升级版本高于当前版本,并校验该固件升级版本是否是我们设备对应的升级固件,验证通过之后则MQTT服务器下发一个升级命令给设备端,设备端监听到该命令后可进行相关升级操作。
当需要升级测试时,通过测试人员对Jenkins平台的CI JOB进行待升级固件版本参数设置,Jenkins会根据配置的版本参数执行对应的脚本文件,即通过执行JOB构建将待升级的固件版本从http服务器同步到MQTT服务器,将MQTT服务器上的两个设备固件版本,即设备当前版本与待升级固件版本进行对比,发现固件升级版本高于当前版本,并校验该固件升级版本是否是我们设备对应的升级固件,验证通过之后则MQTT服务器下发一个升级命令给设备端,设备端通过串口与MQTT服务器进行通信查询是否有新版本,检测到新版本之后进行校验新版本,校验通过之后下载新版本进行设备固件升级;升级完成之后自动删除MQTT服务器上已升级版本重新部署更新的版本进行验证测试,反复多次升级部署测试,确保版本固件升级稳定可靠。
实施例二
参照图5所示,为本说明书实施例提供的对嵌入式设备固件部署升级的自动测试系统,该系统500可以包括:内置有一个或多个固件的设备502,MQTT服务器504和http服务器506;所述设备502上安装有Jenkins工具;其中,
设备502在开启之后,调用Jenkins工具中的CI JOB配置待升级的目标固件的多个版本参数,其中,每个版本参数构建有相应的固件升级脚本;
设备502基于配置的所述多个版本参数,按照版本由低至高的顺序依次分别执行每个版本参数对应的固件升级脚本,直至完成所有版本升级测试;
其中,设备502执行每个版本参数对应的固件升级脚本,包括:
设备502基于本次选择的版本参数从http服务器下载匹配的固件升级文件并同步到消息队列遥测传输MQTT服务器504上以完成固件升级部署;
所述MQTT服务器504对所述固件升级文件进行版本校验;
在校验通过,所述MQTT服务器504向所述设备502下发升级命令;
所述设备502在接收到所述升级命令后,从所述MQTT服务器504下载所述固件升级文件并进行版本升级。
可选地,作为一个实施例,所述MQTT服务器在对所述固件升级文件进行版本校验时,具体用于:将所述固件升级文件的版本与所述目标固件当前版本进行比对;如果所述固件升级文件的版本高于所述目标固件当前版本,则判断所述固件升级文件是否为所述目标固件对应的升级文件;如果是,则确认校验通过。
在本说明书实施例的一种具体实现方式中,在升级完成之后,所述设备还向所述MQTT服务器返回升级完成消息;以及,触发CI JOB删除所述MQTT服务器上所述固件升级文件;以及,发送升级测试完成的通知邮件给测试方。
在本说明书实施例的再一种具体实现方式中,所述设备还周期性监听所述MQTT服务器是否在有效监听时段内下发所述升级命令。
当需要升级测试时,通过测试人员对Jenkins平台的CI JOB进行待升级固件版本参数设置,Jenkins会根据配置的版本参数执行对应的脚本文件,即通过执行JOB构建将待升级的固件版本从http服务器同步到MQTT服务器,将MQTT服务器上的两个设备固件版本,即设备当前版本与待升级固件版本进行对比,发现固件升级版本高于当前版本,并校验该固件升级版本是否是我们设备对应的升级固件,验证通过之后则MQTT服务器下发一个升级命令给设备端,设备端通过串口与MQTT服务器进行通信查询是否有新版本,检测到新版本之后进行校验新版本,校验通过之后下载新版本进行设备固件升级;升级完成之后自动删除MQTT服务器上已升级版本重新部署更新的版本进行验证测试,反复多次升级部署测试,确保版本固件升级稳定可靠。
实施例三
本说明书实施例还提供了一种对嵌入式设备固件部署升级的自动测试方法,应用于设备侧,该方法可以包括以下内容:
设备在开启之后,调用Jenkins工具中的CI JOB配置待升级的目标固件的多个版本参数,其中,每个版本参数构建有相应的固件升级脚本;
基于配置的所述多个版本参数,按照版本由低至高的顺序依次分别执行每个版本参数对应的固件升级脚本,直至完成所有版本升级测试;
其中,设备执行每个版本参数对应的固件升级脚本,包括:
设备基于本次选择的版本参数从http服务器下载匹配的固件升级文件并同步到消息队列遥测传输MQTT服务器上以完成固件升级部署,以便于所述MQTT服务器对所述固件升级文件进行版本校验,并在校验通过后向所述设备下发升级命令;
所述设备在接收到所述升级命令后,从所述MQTT服务器下载所述固件升级文件并进行版本升级。
应理解,该设备侧的方法步骤以及功能效果均可以参考实施例一中的内容。
实施例四
参照图6所示,本说明书实施例还提供一种对嵌入式设备固件部署升级的自动测试装置,该测试装置可部署在电子设备上,该装置包括:
调用模块602,用于设备在开启之后,调用Jenkins工具中的CI JOB配置待升级的目标固件的多个版本参数,其中,每个版本参数构建有相应的固件升级脚本;
执行模块604,用于基于配置的所述多个版本参数,按照版本由低至高的顺序依次分别执行每个版本参数对应的固件升级脚本,直至完成所有版本升级测试;
其中,所述执行模块在执行每个版本参数对应的固件升级脚本时,用于:
基于本次选择的版本参数从http服务器下载匹配的固件升级文件并同步到消息队列遥测传输MQTT服务器上以完成固件升级部署,以便于所述MQTT服务器对所述固件升级文件进行版本校验,并在校验通过后向所述设备下发升级命令;
在接收到所述升级命令后,从所述MQTT服务器下载所述固件升级文件并进行版本升级。
可以理解的是,本发明实施例示意的结构并不构成对XX设备/装置的具体限定。在本发明的另一些实施例中,XX设备/装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了一种电子设备,参照图7所示,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行本发明任一实施例中的对嵌入式设备固件部署升级的自动测试方法。
本发明实施例还提供了一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行本发明任一实施例中的对嵌入式设备固件部署升级的自动测试方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。

Claims (4)

1.一种对嵌入式设备固件部署升级的自动测试方法,其特征在于,包括:
设备在开启之后,调用Jenkins工具中的CI JOB配置待升级的目标固件的多个版本参数,其中,每个版本参数构建有相应的固件升级脚本;
基于配置的所述多个版本参数,按照版本由低至高的顺序依次分别执行每个版本参数对应的固件升级脚本,直至完成所有版本升级测试;
其中,设备执行每个版本参数对应的固件升级脚本,包括:
设备基于本次选择的版本参数从http服务器下载匹配的固件升级文件并同步到消息队列遥测传输MQTT服务器上以完成固件升级部署;
所述MQTT服务器对所述固件升级文件进行版本校验;
在校验通过,所述MQTT服务器向所述设备下发升级命令;
所述设备在接收到所述升级命令后,从所述MQTT服务器下载所述固件升级文件并进行版本升级;
所述MQTT服务器对所述固件升级文件进行版本校验,具体包括:
将所述固件升级文件的版本与所述目标固件当前版本进行比对;
如果所述固件升级文件的版本高于所述目标固件当前版本,则判断所述固件升级文件是否为所述目标固件对应的升级文件;
如果是,则确认校验通过;在升级完成之后,所述方法还包括:
所述设备向所述MQTT服务器返回升级完成消息;
触发CIJOB删除所述MQTT服务器上所述固件升级文件;
发送升级测试完成的通知邮件给测试方。
2.如权利要求1所述对嵌入式设备固件部署升级的自动测试方法,其特征在于,所述设备周期性监听所述MQTT服务器是否在有效监听时段内下发所述升级命令。
3.如权利要求1-2任一项所述对嵌入式设备固件部署升级的自动测试方法,其特征在于,所述版本参数为版本号。
4.一种对嵌入式设备固件部署升级的自动测试系统,其特征在于,包括:内置有一个或多个固件的设备,MQTT服务器和http服务器;所述设备上安装有Jenkins工具;其中,
设备在开启之后,调用Jenkins工具中的CI JOB配置待升级的目标固件的多个版本参数,其中,每个版本参数构建有相应的固件升级脚本;
基于配置的所述多个版本参数,按照版本由低至高的顺序依次分别执行每个版本参数对应的固件升级脚本,直至完成所有版本升级测试;
其中,设备执行每个版本参数对应的固件升级脚本,包括:
设备基于本次选择的版本参数从http服务器下载匹配的固件升级文件并同步到消息队列遥测传输MQTT服务器上以完成固件升级部署;
所述MQTT服务器对所述固件升级文件进行版本校验;
在校验通过,所述MQTT服务器向所述设备下发升级命令;
所述设备在接收到所述升级命令后,从所述MQTT服务器下载所述固件升级文件并进行版本升级;所述MQTT服务器在对所述固件升级文件进行版本校验时,具体用于:
将所述固件升级文件的版本与所述目标固件当前版本进行比对;
如果所述固件升级文件的版本高于所述目标固件当前版本,则判断所述固件升级文件是否为所述目标固件对应的升级文件;
如果是,则确认校验通过;
所述设备还周期性监听所述MQTT服务器是否在有效监听时段内下发所述升级命令;在升级完成之后,所述设备还向所述MQTT服务器返回升级完成消息;以及,
触发CIJOB删除所述MQTT服务器上所述固件升级文件;以及,
发送升级测试完成的通知邮件给测试方。
CN202111003221.0A 2021-08-30 2021-08-30 对嵌入式设备固件部署升级的自动测试方法、装置和系统 Active CN113721957B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111003221.0A CN113721957B (zh) 2021-08-30 2021-08-30 对嵌入式设备固件部署升级的自动测试方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111003221.0A CN113721957B (zh) 2021-08-30 2021-08-30 对嵌入式设备固件部署升级的自动测试方法、装置和系统

Publications (2)

Publication Number Publication Date
CN113721957A CN113721957A (zh) 2021-11-30
CN113721957B true CN113721957B (zh) 2023-10-31

Family

ID=78678954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111003221.0A Active CN113721957B (zh) 2021-08-30 2021-08-30 对嵌入式设备固件部署升级的自动测试方法、装置和系统

Country Status (1)

Country Link
CN (1) CN113721957B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697214B (zh) * 2022-03-31 2023-08-15 四川虹美智能科技有限公司 动态配置升级包实现智能设备指定升级的系统及方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104978271A (zh) * 2015-07-06 2015-10-14 Tcl集团股份有限公司 一种Android系统的自动升级压测方法及系统
CN106874050A (zh) * 2017-02-20 2017-06-20 郑州云海信息技术有限公司 一种系统自动升级方法
CN109002307A (zh) * 2018-06-27 2018-12-14 郑州云海信息技术有限公司 一种自动升级及自动化测试方法
CN109062790A (zh) * 2018-07-19 2018-12-21 北京首汽智行科技有限公司 车载终端蓝牙固件的升级测试方法
CN109408382A (zh) * 2018-10-11 2019-03-01 网宿科技股份有限公司 一种持续集成方法和持续集成系统
CN109471646A (zh) * 2018-11-01 2019-03-15 郑州云海信息技术有限公司 一种服务器的bmc版本的升级方法、装置及存储介质
CN109918107A (zh) * 2019-02-27 2019-06-21 苏州浪潮智能科技有限公司 基于mcs系统反复刷新oses的测试方法及系统
CN109992283A (zh) * 2019-03-26 2019-07-09 合肥移瑞通信技术有限公司 一种批量同步下载升级测试固件的方法及系统
CN110968510A (zh) * 2019-11-28 2020-04-07 深圳忆联信息系统有限公司 Ssd自动化在线升级固件测试方法、装置及计算机设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11151024B2 (en) * 2019-08-09 2021-10-19 International Business Machines Corporation Dynamic automation of DevOps pipeline vulnerability detecting and testing

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104978271A (zh) * 2015-07-06 2015-10-14 Tcl集团股份有限公司 一种Android系统的自动升级压测方法及系统
CN106874050A (zh) * 2017-02-20 2017-06-20 郑州云海信息技术有限公司 一种系统自动升级方法
CN109002307A (zh) * 2018-06-27 2018-12-14 郑州云海信息技术有限公司 一种自动升级及自动化测试方法
CN109062790A (zh) * 2018-07-19 2018-12-21 北京首汽智行科技有限公司 车载终端蓝牙固件的升级测试方法
CN109408382A (zh) * 2018-10-11 2019-03-01 网宿科技股份有限公司 一种持续集成方法和持续集成系统
CN109471646A (zh) * 2018-11-01 2019-03-15 郑州云海信息技术有限公司 一种服务器的bmc版本的升级方法、装置及存储介质
CN109918107A (zh) * 2019-02-27 2019-06-21 苏州浪潮智能科技有限公司 基于mcs系统反复刷新oses的测试方法及系统
CN109992283A (zh) * 2019-03-26 2019-07-09 合肥移瑞通信技术有限公司 一种批量同步下载升级测试固件的方法及系统
CN110968510A (zh) * 2019-11-28 2020-04-07 深圳忆联信息系统有限公司 Ssd自动化在线升级固件测试方法、装置及计算机设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Simulating upgrades of complex systems: The case of Free and Open Source Software;Davide Di Ruscio等;Information and Software Technology;第56卷(第4期);第438-462页 *
基于持续集成的自动化测试框架;国建胜等;电脑知识与技术;第15卷(第6期);第259-260页 *
持续集成技术在手机研发中的实践研究;邵爽爽;中国优秀硕士学位论文全文数据库信息科技辑(第2期);第I138-648页 *

Also Published As

Publication number Publication date
CN113721957A (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
US8627311B2 (en) Systems, methods, and apparatus to deploy software
US9485151B2 (en) Centralized system management on endpoints of a distributed data processing system
CN110908859B (zh) 应用服务处理方法、装置、终端及存储介质
CN106293811A (zh) 一种自动打包发布方法及装置
CN109753301A (zh) 应用系统部署方法、装置、存储介质及电子设备
WO2017028574A1 (zh) 一种路由器测试方法和测试装置
CN109558147A (zh) 一种基于Jenkins和Gitlab的持续集成平台构建方法
CN113721957B (zh) 对嵌入式设备固件部署升级的自动测试方法、装置和系统
CN112953983A (zh) Sftp传输方法及装置
CN111026581A (zh) 应用程序的修复方法及装置、系统、存储介质、电子装置
CN113721931A (zh) 一种自动化服务部署方法、系统及计算机可读存储介质
CN109471799B (zh) 一种需求环境的部署方法、装置、存储介质及终端
CN105786636A (zh) 一种系统修复方法及装置
CN112732285B (zh) 适用于云计算linux操作系统的升级方法、装置及电子设备
CN114221866A (zh) 一种终端升级的方法、装置及介质
CN112804071A (zh) 在线升级方法、升级文件提供方法、设备及存储介质
CN116383090A (zh) 一种用于麒麟系统迁移工具的自动化测试方法及平台
CN111198703A (zh) 一种版本升级方法、系统、设备以及介质
CN115390861A (zh) 资源部署方法、装置及设备和存储介质
CN111930625B (zh) 基于云服务平台的日志获取方法、装置及系统
CN115604307A (zh) 升级日志的处理方法、装置、终端设备及计算机介质
CN112328267A (zh) 一种多台服务器安装方法、装置、终端及存储介质
CN110489108B (zh) 一种自动收集可重用组件的方法及装置
CN112860555A (zh) 一种软件远程升级验证测试装置和方法
CN112596750A (zh) 应用测试方法、装置、电子设备及计算机可读存储介质

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
GR01 Patent grant
GR01 Patent grant