掌桥专利:专业的专利平台
掌桥专利
首页

一种固件升级测试方法、装置、平台、设备及存储介质

文献发布时间:2023-06-19 09:35:27


一种固件升级测试方法、装置、平台、设备及存储介质

技术领域

本发明实施例涉及软件测试技术领域,尤其涉及一种固件升级测试方法、装置、平台、设备及存储介质。

背景技术

固件升级,指的是厂商对电子设备的内嵌固件进行升级,以完善设备功能、增强设备稳定性、修补设备漏洞。

在厂商正式推出固件对用户的电子设备进行升级之前,需要对该电子设备样品进行多次固件升级测试,以了解固件升级过程中可能出现的问题。在传统的固件升级测试中基本都是采用测试人员在固件升级应用程序中手动操作点击选择需要升级的模块固件,然后进行传输升级,传输升级过程中,若应用程序出现某些异常时,也需要手动退出异常界面后再进行重复动作传输升级。

现有的固件升级测试过程中,整个过程都需要测试人员手动操作并记录异常,更需要测试人员全程提高注意力观察传输升级结果,特别是当固件需要反复多次传输升级时,浪费了测试人员大量时间,且测试效率低。

发明内容

本发明提供一种固件升级测试方法、装置、平台、设备及存储介质,无需测试人员手动操作移动终端上升级应用程序,实现自动对目标设备进行固件升级测试,节省了人力成本,提高了固件升级测试效率。

第一方面,本发明实施例提供了一种固件升级测试方法,应用于上位机,所述上位机与移动终端连接,所述移动终端与目标设备连接,包括:

确定所述移动终端运行的升级应用程序,所述升级应用程序用于对目标设备执行固件升级操作;

获取用于控制所述升级应用程序执行固件升级操作的升级脚本;

运行所述升级脚本以向所述移动终端发送第一操作控制指令,所述移动终端用于根据所述第一操作控制指令对目标设备进行固件升级,且在固件升级过程中进行异常测试;

通过移动终端获取目标设备在固件升级过程中的异常测试结果。

可选的,所述升级脚本预先生成,且所述升级脚本的生成过程,包括:

获取目标设备的固件升级测试流程,所述固件升级测试流程为所述目标设备在固件升级过程中进行异常测试的流程;

根据所述固件升级测试流程确定多个潜在异常情况;

确定每个潜在异常情况在所述升级应用程序中分别对应的页面元素;

获取所述页面元素的属性值;

基于所述属性值和所述固件升级测试流程生成升级脚本。

可选的,所述升级脚本的生成过程,还包括:

根据所述固件升级测试流程确定固件升级次数和/或升级时间;

基于所述固件升级次数和/或升级时间生成升级脚本。

可选的,所述方法还包括:

运行所述升级脚本以向所述目标设备发送第二操作控制指令,所述目标设备用于根据所述第二操作控制指令进行重启,并在重启过程中进行固件升级。

可选的,运行所述升级脚本以向所述目标设备发送第二操作控制指令,包括:

在接收到所述移动终端发送的固件传输完成消息时,向所述目标设备发送第二操作控制指令。

可选的,所述上位机还与所述目标设备的程控电源连接,运行所述升级脚本以向所述目标设备发送第二操作控制指令,包括:

运行所述升级脚本以向所述程控电源发送第二操作控制指令,所述程控电源用于根据所述第二操作控制指令进行重启,以使所述目标设备重启。

可选的,移动终端用于根据所述第一操作控制指令对所述目标设备进行固件升级,且在固件升级过程中进行异常测试,包括:

选择待测试的目标设备;

判断是否能够获取与所述目标设备连接的各模块的当前的固件版本;

若是,则在模块管理列表中选择目标模块;若否,则记录无法获取当前的固件版本的模块;

在模块管理列表中选择目标模块之后,向所述目标模块传输固件;

判断固件传输是否成功;

若是,则向所述目标设备发送固件升级指令;若否,则记录固件传输失败;

在向所述目标设备发送固件升级指令之后,等待预设时长,直至固件升级完成;

检测并记录目标模块的状态和当前的固件版本;

累计固件升级次数;

判断固件升级次数是否达到预设次数;

若是,则停止测试,并输出记录的测试结果;若否,则返回执行判断是否能够获取与所述目标设备连接的各模块的当前的固件版本的步骤。

可选的,所述运行所述升级脚本以向所述移动终端发送第一操作控制指令,包括:

运行所述升级脚本获得所述升级脚本中页面元素的属性值;

向所述移动终端发送控件触发指令,所述控件触发指令中包括所述页面元素的属性值,所述移动终端用于根据所述控件触发指令触发所述升级应用程序的界面上所述属性值对应的页面元素。

可选的,获取用于控制所述升级应用程序执行固件升级操作的升级脚本,包括:

通过预设的工具命令获取移动终端上运行的升级应用程序的包名;

根据所述包名在升级脚本库中查找用于控制所述升级应用程序执行固件升级操作的升级脚本。

第二方面,本发明实施例提供了一种固件升级测试方法,应用于移动终端,所述移动终端分别与上位机与目标设备连接,包括:

运行升级应用程序,所述升级应用程序用于对目标设备执行固件升级操作;

接收所述上位机发送的第一操作控制指令,所述第一操作控制指令为所述上位机运行用于控制所述升级应用程序执行固件升级操作的升级脚本后所生成;

根据所述第一操作控制指令对所述目标设备进行固件升级,且在固件升级过程中进行异常测试;

获取所述升级应用程序生成的测试结果;

将所述测试结果发送至所述上位机。

第三方面,本发明实施例提供了一种固件升级测试装置,应用于上位机,所述上位机与移动终端连接,所述移动终端与目标设备连接,包括:

程序确定模块,用于确定所述移动终端运行的升级应用程序,所述升级应用程序用于对目标设备执行固件升级操作;

脚本获取模块,用于获取用于控制所述升级应用程序执行固件升级操作的升级脚本;

脚本运行模块,用于运行所述升级脚本以向所述移动终端发送第一操作控制指令,所述移动终端根据所述第一操作控制指令对目标设备进行固件升级,且在固件升级过程中进行异常测试;

第一测试结果获取模块,用于通过移动终端获取目标设备在固件升级过程中的异常测试结果。

第四方面,本发明实施例提供了一种固件升级测试装置,应用于移动终端,所述移动终端分别与上位机与目标设备连接,包括:

程序运行模块,用于运行升级应用程序,所述升级应用程序用于对目标设备执行固件升级操作;

指令接收模块,用于接收所述上位机发送的第一操作控制指令,所述第一操作控制指令为所述上位机运行用于控制所述升级应用程序执行固件升级操作的升级脚本后所生成;

固件升级模块,用于根据所述第一操作控制指令对所述目标设备进行固件升级,且在固件升级过程中进行异常测试;

第二测试结果获取模块,用于获取所述升级应用程序生成的测试结果;

测试结果发送模块,用于将所述测试结果发送至所述上位机。

第五方面,本发明实施例还提供了一种固件升级测试平台,包括:上位机、移动终端和目标设备,所述上位机与移动终端连接,所述移动终端与目标设备连接;

所述上位机配置为执行如本发明第一方面提供的固件升级测试方法,移动终端配置为执行如本发明第二方面提供的固件升级测试方法,所述目标设备配置为接收所述移动终端的第二操作控制指令进行固件升级。

第六方面,本发明实施例还提供了一种计算机设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明第一方面提供的固件升级测试方法,或实现如本发明第二方面提供的固件升级测试方法。

第七方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明第一方面提供的固件升级测试方法,或实现如本发明第二方面提供的固件升级测试方法。

本发明实施例提供的固件升级测试方法,应用于上位机,上位机与移动终端连接,移动终端与目标设备连接,在确定移动终端运行的升级应用程序后,获取用于控制升级应用程序执行固件升级操作的升级脚本,运行升级脚本以向移动终端发送第一操作控制指令,移动终端用于根据第一操作控制指令对目标设备进行固件升级,且在固件升级过程中进行异常测试,通过移动终端获取目标设备在固件升级过程中的异常测试结果。本发明实施例提供的固件升级测试方法无需测试人员手动操作移动终端上升级应用程序,实现自动对目标设备进行固件升级测试,节省了人力成本,提高了固件升级测试效率。

附图说明

图1为本发明实施例一提供的一种固件升级测试方法的流程图;

图2A为本发明实施例二提供的一种固件升级测试方法的流程图;

图2B为本发明实施例提供的一种固件升级测试流程的示意图;

图3为本发明实施例三提供的一种固件升级测试方法的流程图;

图4为本发明实施例四提供的一种固件升级测试装置的结构示意图;

图5为本发明实施例五提供的一种固件升级测试装置的结构示意图;

图6为本发明实施例六提供的一种固件升级测试平台的结构示意图;

图7为本发明实施例七提供的一种计算机设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种固件升级测试方法的流程图,本实施例可适用于对设备的固件升级测试,该方法可以由本发明实施例提供的固件升级测试装置来执行,该装置可采用软件和/或硬件的方式实现,并集成于本发明实施例所提供的上位机中,该上位机与移动终端连接,移动终端与目标设备连接,如图1所示,该方法具体包括如下步骤:

S101、确定移动终端运行的升级应用程序,升级应用程序用于对目标设备执行固件升级操作。

具体的,移动终端上装载有升级应用程序,升级应用程序用于对目标设备执行固件升级操作。具体的,升级应用程序被运行时,在移动终端的显示屏上显示一交互界面,该交互界面上包括多个页面元素,当交互界面上的页面元素被触发时,升级应用程序执行相应的固件升级操作,可实现对目标设备进行固件升级。

其中,移动终端可以是智能手机、智能平板等便携式电子设备,目标设备可以是音箱、相机、无人机、无人车等电子设备,移动终端与上位机连接,上位机可以是个人计算机、远程服务器等。

本发明实施中,移动终端可以通过有线或无线网络分别与目标设备和上位机连接,本发明实施例对于移动终端与目标设备和上位机的连接方式不做限定。

S102、获取用于控制升级应用程序执行固件升级操作的升级脚本。

其中,升级脚本可以是根据固件升级测试流程所编辑而成的脚本,该脚本被执行时可使得相应的设备执行固件升级测试流程。在本发明的可选实施例中,可以根据升级应用程序执行固件升级操作时的步骤、在操作页面上触发的页面元素等信息来编辑升级脚本。

具体的,可以预先编辑升级脚本并存储在上位机本地,示例性地,不同的移动终端上可以装载有不同的升级应用程序,或同一移动终端中可以装载多个不同的升级应用程序,不同的升级应用程序用于对不同目标设备执行固件升级操作。在上位机中,可以配置用于存储多个升级脚本的脚本库,每个升级脚本关联一个升级应用程序。在确定移动终端运行的升级应用程序后,从脚本库中查找与该升级应用程序关联的升级脚本。

S103、运行升级脚本以向移动终端发送第一操作控制指令。

由于升级脚本是根据固件升级测试流程所编辑而成的脚本,当上位机运行升级脚本时,上位机生成控制指令来指示其他电子设备来实现固件升级测试流程。

具体到本发明实施例中,上位机在运行升级脚本的过程中,可以按照固件升级测试流程依次向移动终端发送第一操作控制指令,移动终端在接收到第一操作控制指令后,对第一操作控制指令进行解析,确定移动终端上运行的升级应用程序的界面上的目标页面元素,并对该目标页面元素执行触发操作。如此,按照升级脚本中的流程实现对目标设备进行固件升级,且在固件升级过程中进行异常测试。

其中,页面元素为升级应用程序的交互界面中的控件,该控件被触发时升级应用程序执行控件所表达的功能,例如,控件可以为勾选框、虚拟按钮等,当勾选框被执行勾选操作时,勾选该勾选框对应的内容,例如勾选目标设备上的某个模块来执行固件升级测试,又或者控件为开始升级虚拟按钮,当该开始升级虚拟按钮被触发时,升级应用程序开始执行升级操作。当然,页面元素还可以是其他功能的控件,本发明实施例对页面元素不加以限制,对页面元素的触发操作亦不加以限制。

S104、通过移动终端获取目标设备在固件升级过程中的异常测试结果。

在运行升级脚本的过程中,通过移动终端将测试结果反馈给上位机。测试结果可以包括固件传输是否完成、固件更新后目标设备的是否正常在线等。进一步的,上位机收集到这些测试结果后,对测试结果进行整理,在固件升级测试完成后输出测试报告。

本发明实施例提供的固件升级测试方法,应用于上位机,上位机与移动终端连接,移动终端与目标设备连接,在确定移动终端运行的升级应用程序后,获取用于控制升级应用程序执行固件升级操作的升级脚本,运行升级脚本以向移动终端发送第一操作控制指令,移动终端用于根据第一操作控制指令对目标设备进行固件升级,且在固件升级过程中进行异常测试,通过移动终端获取目标设备在固件升级过程中的异常测试结果。本发明实施例提供的固件升级测试方法无需测试人员手动操作移动终端上升级应用程序,实现自动对目标设备进行固件升级测试,节省了人力成本,提高了固件升级测试效率。

实施例二

图2A为本发明实施例二提供的一种固件升级测试方法的流程图,本发明实施例以前述实施例一为基础进行优化,详细描述了本发明实施例中固件升级测试的具体过程,具体的,如图2A所示,本发明实施例的方法可以包括如下步骤:

S201、通过预设的工具命令获取移动终端上运行的升级应用程序的包名。

具体的,上述移动终端可以搭载Android系统或IOS系统,本发明实施例对移动终端搭载的系统不做限定。以移动终端搭载Android系统为示例,移动终端通过USB(通用串行总线,Universal Serial Bus)线与上位机连接,移动终端开启“开发者选项”中的USB调试功能,即移动终端与上位机通过底层ADB(Android Debug Bridge,安卓调试桥)连接。移动终端与上位机建立连接后,上位机通过Android SDK的工具命令appt获取升级应用程序的packageName(包名)。

S202、根据包名在升级脚本库中查找用于控制升级应用程序执行固件升级操作的升级脚本。

具体的,在本发明实施例中,移动终端中可以装载多个不同的升级应用程序,不同的升级应用程序用于对不同目标设备执行固件升级操作。在上位机中,可以预先配置用于存储多个升级脚本的脚本库,每个升级脚本关联一个升级应用程序。在确定移动终端运行的升级应用程序的包名后,从脚本库中查找与该升级应用程序的包名关联的升级脚本。

其中,升级脚本为预先生成的,升级脚本的生成过程如下:

1、获取目标设备的固件升级测试流程,固件升级测试流程为目标设备在固件升级过程中进行异常测试的流程。

不同的目标设备可以具有不同的升级测试流程,固件升级测试流程为目标设备在固件升级过程中进行异常测试的流程。

2、根据固件升级测试流程确定多个潜在异常情况。

具体的,可以在首次或前几次固件升级测试时,通过测试人员手动对目标设备上的各模块的固件升级测试流程进行一次或多次测试,模拟出所有可能出现的需要在升级应用程序的交互界面上执行的操作,这些操作也包括固件升级测试过程中存在潜在异常情况时需要人为介入的操作。

3、确定每个潜在异常情况在升级应用程序中分别对应的页面元素。

具体的,确定各操作(包括存在潜在异常情况时需要人为介入的操作)在升级应用程序的交互界面中对应的页面元素。示例性的,如点击开始升级固件操作,对应的页面元素为“开始升级”按钮(图块形式),需要对“开始升级”按键执行点击操作。

4、获取页面元素的属性值。

确定各页面元素的属性值,属性值用于确定页面元素在升级应用程序的可交互界面中的位置,通过属性值可以找到对应的页面元素。

具体的,在本发明实施例中,在移动终端与上位机建立连接后,上位机通过Android SDK的工具命令appt获取升级应用程序的packageName(包名)、Activity(活动页面,即可交互界面),然后通过Android SDK的工具命令uiautomateviewer.bat获取升级应用程序的可交互界面的各页面元素的属性值,如id、class、xpath等。示例性的,例如,“开始升级”按钮(图块)这个页面元素的id为“com.xag.agri.app:id/btn_upgrade”。

将获取到的页面元素的属性值关联S2022中操作对应的页面元素。

5、基于属性值和固件升级测试流程生成用于控制升级应用程序执行固件升级操作的升级脚本。

固件升级测试流程可以包括多个步骤,用于对一个页面元素执行相应的操作,每个步骤可以关联该步骤需要操作的页面元素对应的属性值。具体的,在运行升级脚本过程中,每个步骤可以向移动终端发送一个控件触发指令,该控件触发指令携带有对应的页面元素的属性值,移动终端根据该属性值确定页面元素,并执行相应的操作。

图2B为本发明实施例提供的一种固件升级测试流程的示意图,在本发明一具体实施例中,固件升级测试流程包括如下步骤:

S1、选择待测试的目标设备。

示例性的,移动终端与上位机建立连接后,上位机通过Android SDK的工具命令appt获取移动终端的唯一设备识别符(Unique Device Identifier,UDID),通过UDID选择对应的移动终端。移动终端可以连接多个目标设备,移动终端的升级应用程序的界面上具有目标设备管理列表,上位机向移动终端发送控件触发指令,以使移动终端在目标设备管理列表中勾选或点选目标待测试的目标设备。

S2、判断是否能够获取目标设备各模块的当前的固件版本。

具体的,目标设备可以包括多个模块,在本发明的一个示例中,以目标设备为无人机作为示例,目标设备可以包括导航模块、避障、飞控、通讯、测绘等模块,在固件升级测试时,需要对每个模块进行固件升级测试。

升级应用程序的交互界面包括“固件版本”按钮,该步骤被执行时,上位机向移动终端发送控件触发指令,以使移动终端触发“固件版本”按钮,执行点击“固件版本”按钮操作。

在触发“固件版本”按钮后,移动终端向目标设备发送固件版本获取请求,以获取目标设备的各模块当前的固件版本。移动终端将获取到的各模块当前的固件版本反馈给上位机。上位机将获取到的当前的固件版本与需要固件版本升级测试的固件版本比对,当某一模块的当前的固件版本低于需要升级测试的固件版本,或与需要升级测试的固件版本相同时,说明能够获取目标设备的各模块的当前的固件版本,将该模块作为目标模块,进行下一次固件升级,执行步骤S3-S9。若上位机没有收到反馈信息,则说明升级测试程序不稳定或前一次固件升级出错,执行步骤S8。

S3、在模块管理列表中选择目标模块。

具体的,升级应用程序的交互界面包括对各模块进行管理的模块管理列表,在确定目标模块后,上位机向移动终端发送控件触发指令,以使移动终端在模块管理列表中勾选或点选目标模块。

S4、点击开始升级。

具体的,升级应用程序的交互界面包括“开始升级”按钮,在选中目标模块后,上位机向移动终端发送控件触发指令,以使移动终端触发“开始升级”按钮,执行开始升级操作。

移动终端在触发“开始升级”按钮后,向服务器发送固件请求,从服务器下载需要升级测试的固件,并将该固件传输给目标设备。

S5、判断固件传输是否成功。

具体的,移动终端在固件传输完成后会向上位机反馈固件传输完成消息,在固件传输失败时,向上位机反馈固件传输失败消息。上位机根据固件传输完成消息确定固件传输成功,并执行步骤S6-S9;上位机根据固件传输失败消息确定固件传输失败,并执行步骤S8。

S6、向目标设备发送固件升级指令。

上位机在确定固件传输完成后,控制移动终端向目标设备发送固件升级指令,控制目标模块进行固件升级。

在本发明的一些实施例中,上位机还与目标设备连接,上位机在运行升级脚本的过程中,在接收到移动终端发送的固件传输完成消息时,向目标设备发送第二操作控制指令,目标设备用于根据第二操作控制指令进行重启,并在重启过程中进行固件升级。示例性的,上位机与目标设备的程控电源连接,运行升级脚本以向程控电源发送第二操作控制指令,程控电源用于根据第二操作控制指令进行重启,以使目标设备重启。

S7、等待预设时长,直至固件升级完成。

具体的,可以在首次或前几次固件升级测试时,通过测试人员手动对目标设备上的各模块的固件升级测试流程进行一次或多次测试,得到预设时长。

S8、确定目标模块的状态和当前的固件版本。

具体的,升级应用程序的交互界面包括“检查状态”按钮,上位机向移动终端发送控件触发指令,以使移动终端触发“检查状态”按钮,执行点击“检查状态”按钮操作。

在触发“检查状态”按钮后,移动终端向目标设备发送固件检测请求和模块状态检测请求,以获取目标设备的目标模块当前的状态和固件版本。若目标模块当前的状态为离线,或目标设备的当前的固件版本低于步骤S4传输的固件版本,则说明该次固件升级存在问题。

S9、记录固件升级情况,累计固件升级次数。

具体的,上位机记录前述步骤中固件升级过程中出现的问题,例如,步骤S2中上位机没有收到反馈信息、步骤S5中固件传输失败、步骤S8中目标模块处于离线状态或目标模块的当前的固件版本低于步骤S4传输的固件版本,将这些固件升级情况作为测试结果,并累计固件升级的次数。

S10、判断固件升级次数是否达到预设次数。

具体的,本发明实施例中,需要对目标模块进行反复多次固件升级,测试固件升级过程中可能出现的问题。

在确定目标模块的固件升级累计次数小于预设次数时,返回执行步骤S2。在确定目标模块的固件升级次数累计达到预设次数时,结束固件升级测试,并对前述步骤中记录的测试结果进行整理,生成该目标模块的固件升级测试报告。

上述固件升级测试流程中步骤S2、步骤S3、步骤S4和步骤S7都需要出发相应的页面元素,在编辑升级脚本时,按照上述步骤S1-步骤S9的顺序生成测试流程,并将步骤S2、步骤S3、步骤S4和步骤S7关联对应的页面元素的属性值,形成升级脚本。当步骤S2、步骤S3、步骤S4和步骤S7被执行时,上位机向移动终端发送的控件触发指令中包括对应的页面元素的属性值,进而使得移动终端能够根据属性值确定对应的页面元素,并触发该页面元素,执行相应的操作。

需要说明的是,上述升级流程仅仅作为一个示例,在实际应用中,本领域技术人员可以根据不同的固件设置不同的升级流程,并生成不同的升级脚本,本发明实施例对升级流程不加以限制。

S203、运行升级脚本获得升级脚本中页面元素的属性值。

具体的,如上所述,固件升级测试流程可以包括多个步骤,用于对一个页面元素执行相应的操作,每个步骤关联该步骤需要操作的页面元素对应的属性值。在升级脚本运行到某一步骤时,获取该步骤关联的属性值。具体的,在运行升级脚本过程中,按照上述步骤S1-步骤S10的顺序执行固件升级测试。具体的固件升级测试流程可以参考步骤S1-步骤S10和图2B,本发明实施例在此不再赘述。

S204、向移动终端发送控件触发指令,控件触发指令中包括页面元素的属性值。

具体的,在获取到该步骤关联的属性值后,上位机向移动终端发送控件触发指令,该控件触发指令中包括该步骤需要操作的页面元素的属性值。移动终端接收到该控件触发指令后,对其进行解析,获得该控件触发指令包括的属性值,并根据该属性值定位到该步骤需要操作的页面元素,然后自动触发升级应用程序的可交互界面上的该页面元素。

S205、通过移动终端获取目标设备在固件升级过程中的异常测试结果。

如上所述,在运行升级脚本的过程中,上位机会记录固件升级过程中出现的问题,例如,步骤S2中上位机没有收到反馈信息、步骤S5中固件传输失败、步骤S8中目标模块处于离线状态或目标模块的当前的固件版本低于步骤S4传输的固件版本,将这些固件升级情况作为测试结果。进一步的,在对目标模块完成预设次数的固件升级测试后,对测试结果进行整理,生成测试报告。

本发明实施例提供的固件升级测试方法,应用于上位机,在确定移动终端运行的升级应用程序后,获取用于控制升级应用程序执行固件升级操作的升级脚本,运行升级脚本以向移动终端发送第一操作控制指令,移动终端用于根据第一操作控制指令对目标设备进行固件升级,且在固件升级过程中进行异常测试,通过移动终端获取目标设备在固件升级过程中的异常测试结果。本发明实施例提供的固件升级测试方法无需测试人员手动操作移动终端上升级应用程序,实现自动对目标设备进行固件升级测试,节省了人力成本,提高了固件升级测试效率。

实施例三

图3为本发明实施例三提供的一种固件升级测试方法的流程图,本实施例可适用于对目标设备的固件升级测试,该方法可以由本发明实施例提供的固件升级测试装置来执行,该装置可采用软件和/或硬件的方式实现,并集成于移动终端中,移动终端分别与上位机和目标设备连接,如图3所示,该方法具体包括如下步骤:

S301、运行升级应用程序,升级应用程序用于对目标设备执行固件升级操作。

具体的,移动终端上装载有升级应用程序,升级应用程序用于对目标设备执行固件升级操作。升级应用程序被运行时,在移动终端的显示屏上显示一交互界面,该交互界面上包括多个页面元素,当交互界面上的页面元素被触发时,升级应用程序执行相应的固件升级操作,可实现对目标设备进行固件升级。

其中,移动终端可以是智能手机、智能平板等便携式电子设备,目标设备可以是音箱、相机、无人机、无人车等电子设备,移动终端与上位机连接,上位机可以是个人计算机、远程服务器等。

S302、接收上位机发送的第一操作控制指令,第一操作控制指令为上位机运行用于控制升级应用程序执行固件升级操作的升级脚本后所生成。

具体的,移动终端与上位机建立连接并通讯,上位机确定移动终端当前运行的升级应用程序,并根据升级应用程序从脚本库中查找与该升级应用程序对应的升级脚本,上位机运行该升级脚本,生成第一操作控制指令,上位机将第一操作控制指令发送给移动终端。移动终端可以通过通讯接口接收到上位机发送的第一操作控制指令。具体的,上位机的具体工作过程在上述实施例一和实施例二中已有详细记载,本发明实施例在此不再赘述。

S303、根据第一操作控制指令对目标设备进行固件升级,且在固件升级过程中进行异常测试。

在接收到第一操作控制指令后,根据第一操作控制指令自动触发升级应用程序的可交互界面上的该页面元素,从而使得升级应用程序执行相应的操作,实现固件升级,并在固件升级过程中进行异常测试。

S304、获取升级应用程序生成的测试结果。

具体的,在固件升级测试过程中,升级应用程序可以根据上位机向移动终端发送的第一操作控制指令获取测试结果,测试结果可以包括固件传输是否完成、固件更新后目标设备的是否正常在线等。

S305、将测试结果发送至上位机。

具体的,移动终端可以在固件升级测试的过程中将测试结果发送至上位机。进一步的,在固件升级测试完成后,上位机对测试结果进行整理,在固件升级测试完成后输出测试报告。

本发明实施例提供的固件升级测试方法,应用于移动终端,移动终端分别与上位机和目标设备连接,上位机运行升级脚本生成指令发送到移动终端,移动终端在接收到上位机发送的第一操作控制指令时,根据第一操作控制指令对所述目标设备进行固件升级,且在固件升级过程中进行异常测试,无需测试人员手动操作移动终端上升级应用程序,节省了人力成本,提高了固件升级测试效率。

实施例四

图4为本发明实施例四提供的一种固件升级测试装置的结构示意图,本发明实施例四的固件升级测试装置应用于上位机,所述上位机与移动终端连接,所述移动终端与目标设备连接,如图4所示,该装置具体可以包括:

程序确定模块401,用于确定所述移动终端运行的升级应用程序,所述升级应用程序用于对目标设备执行固件升级操作;

脚本获取模块402,用于获取用于控制所述升级应用程序执行固件升级操作的升级脚本;

脚本运行模块403,用于运行所述升级脚本以向所述移动终端发送第一操作控制指令,所述移动终端根据所述第一操作控制指令对目标设备进行固件升级,且在固件升级过程中进行异常测试;

第一测试结果获取模块404,用于通过移动终端获取目标设备在固件升级过程中的异常测试结果。

在本发明的一些实施例中,所述升级脚本预先生成,且所述升级脚本的生成过程,包括:

获取目标设备的固件升级测试流程,所述固件升级测试流程为所述目标设备在固件升级过程中进行异常测试的流程;

根据所述固件升级测试流程确定多个潜在异常情况;

确定每个潜在异常情况在所述升级应用程序中分别对应的页面元素;

获取所述页面元素的属性值;

基于所述属性值和所述固件升级测试流程生成升级脚本。

在本发明的一些实施例中,所述升级脚本的生成过程,还包括:

根据所述固件升级测试流程确定固件升级次数和/或升级时间;

基于所述固件升级次数和/或升级时间生成升级脚本。

在本发明的一些实施例中,所述上位机还与目标设备连接,所述脚本运行模块403还用于:

运行所述升级脚本以向所述目标设备发送第二操作控制指令,所述目标设备用于根据所述第二操作控制指令进行重启,并在重启过程中进行固件升级。

在本发明的一些实施例中,脚本运行模块403还用于:

在接收到所述移动终端发送的固件传输完成消息时,向所述目标设备发送第二操作控制指令。

在本发明的一些实施例中,所述上位机还与所述目标设备的程控电源连接,脚本运行模块403还用于:

运行所述升级脚本以向所述程控电源发送第二操作控制指令,所述程控电源用于根据所述第二操作控制指令进行重启,以使所述目标设备重启。

在本发明的一些实施例中,移动终端用于根据所述第一操作控制指令对所述目标设备进行固件升级,且在固件升级过程中进行异常测试,包括:

选择待测试的目标设备;

判断是否能够获取与所述目标设备连接的各模块的当前的固件版本;

若是,则在模块管理列表中选择目标模块;若否,则记录无法获取当前的固件版本的模块;

在模块管理列表中选择目标模块之后,向所述目标模块传输固件;

判断固件传输是否成功;

若是,则向所述目标设备发送固件升级指令;若否,则记录固件传输失败;

在向所述目标设备发送固件升级指令之后,等待预设时长,直至固件升级完成;

检测并记录目标模块的状态和当前的固件版本;

累计固件升级次数;

判断固件升级次数是否达到预设次数;

若是,则停止测试,并输出记录的测试结果;若否,则返回执行判断是否能够获取与所述目标设备连接的各模块的当前的固件版本的步骤。

在本发明的一些实施例中,脚本运行模块403包括:

属性值获取单元,用于运行所述升级脚本获得所述升级脚本中页面元素的属性值;

触发指令发送单元,用于向所述移动终端发送控件触发指令,所述控件触发指令中包括所述页面元素的属性值,所述移动终端用于根据所述控件触发指令触发所述升级应用程序的界面上所述属性值对应的页面元素。

在本发明的一些实施例中,所述脚本获取模块402包括:

包名获取单元,用于通过预设的工具命令获取移动终端上运行的升级应用程序的包名;

脚本获取单元,用于根据所述包名在升级脚本库中查找用于控制所述升级应用程序执行固件升级操作的升级脚本。

上述固件升级测试装置可执行本发明上述实施例一或实施例二所提供的固件升级测试方法,具备执行方法相应的功能模块和有益效果。

实施例五

图5为本发明实施例五提供的一种固件升级测试装置的结构示意图,本发明实施例五提供的固件升级测试装置应用于移动终端,所述移动终端分别与上位机与目标设备连接,如图5所示,该装置具体可以包括:

程序运行模块501,用于运行升级应用程序,所述升级应用程序用于对目标设备执行固件升级操作;

指令接收模块502,用于接收所述上位机发送的第一操作控制指令,所述第一操作控制指令为所述上位机运行用于控制所述升级应用程序执行固件升级操作的升级脚本后所生成;

固件升级模块503,用于根据所述第一操作控制指令对所述目标设备进行固件升级,且在固件升级过程中进行异常测试;

第二测试结果获取模块504,用于获取所述升级应用程序生成的测试结果;

测试结果发送模块505,用于将所述测试结果发送至所述上位机。

上述固件升级测试装置可执行本发明上述实施例三所提供的固件升级测试方法,具备执行方法相应的功能模块和有益效果。

实施例六

图6为本发明实施例六提供的一种固件升级测试平台的结构示意图,如图6所示,该平台包括:上位机601、移动终端602和目标设备603,上位机601与移动终端602连接,移动终端602与目标设备603连接。

上位机601配置为执行如本发明上述实施例一或实施例二提供的固件升级测试方法,移动终端配置为执行如本发明上述实施例三提供的固件升级测试方法。具体的,上位机601确定移动终端602运行的升级应用程序,升级应用程序用于对目标设备执行固件升级操作,并根据升级应用程序获取用于控制升级应用程序执行固件升级操作的升级脚本,上位机601运行升级脚本以向移动终端602发送第一操作控制指令,移动终端602用于根据第一操作控制指令对目标设备进行固件升级,且在固件升级过程中进行异常测试,目标设备603用于根据第二操作控制指令进行固件升级。

其中,移动终端602可以是智能手机、智能平板等便携式电子设备,目标设备603可以是音箱、相机、无人机、无人车等电子设备,上位机601可以是个人计算机、远程服务器等。

本发明实施中,移动终端602可以通过有线或无线网络分别与目标设备603和上位机601连接,本发明实施例对于移动终端602与目标设备603和上位机601的连接方式不做限定。

在本发明的一些实施例中,该平台还可以包括备用电源,所述备用电源用于给目标设备供电,避免在固件升级测试过程中目标设备603的电源的电量耗尽导致测试中断,提高测试平台的稳定性。

上述固件升级测试平台可执行本发明任意实施例所提供的固件升级测试方法,具备执行方法相应的功能模块和有益效果。

实施例七

本发明实施例七提供了一种计算机设备,图7为本发明实施例七提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括:

处理器701、存储器702、通信模块703、输入装置704和输出装置705;计算机设备中处理器701的数量可以是一个或多个,图7中以一个处理器701为例;计算机设备中的处理器701、存储器702、通信模块703、输入装置704和输出装置705可以通过总线或其他方式连接,图7中以通过总线连接为例。上述处理器701、存储器702、通信模块703、输入装置704和输出装置705可以集成在计算机设备上。

存储器702作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如上述实施例中的固件升级测试方法对应的模块。处理器701通过运行存储在存储器702中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的固件升级测试方法。

存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据微型计算机的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器702可进一步包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

通信模块703,用于与外界设备(例如智能终端)建立连接,并实现与外界设备的数据交互。输入装置704可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。

本实施例提供的计算机设备,可执行本发明实施例一、二、三提供的固件升级测试方法,具有相应的功能和有益效果。

实施例八

本发明实施例八提供了一种包含计算机可执行指令的存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明上述任意实施例提供的固件升级测试方法。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明实施例所提供的固件升级测试方法中的相关操作。

需要说明的是,对于装置、设备、平台和存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的固件升级测试方法。

值得注意的是,上述装置中,所包括的各个模块和单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

相关技术
  • 一种固件升级测试方法、装置、平台、设备及存储介质
  • 一种设备固件升级方法、装置、电子设备和存储介质
技术分类

06120112225651