固态硬盘部署方法、装置、可读存储介质及电子设备与流程

文档序号:30385465发布日期:2022-06-11 08:34阅读:100来源:国知局
固态硬盘部署方法、装置、可读存储介质及电子设备与流程

1.本发明涉及存储器测试领域,特别是涉及一种固态硬盘部署方法、装置、可读存储介质及电子设备。


背景技术:

2.目前,ssd(solid state disk,固态硬盘)产品的测试对象仅在release(候选)版本的测试。并且缺乏持续集成部署方案来针对开发代码质量的监控。因此,无法对代码质量进行及时监控。
3.然而随着计算机技术的不断发展,市场对ssd产品的需求也越来越大,质量要求也越来越高。但由于缺乏自动化的测试流程和部署方案,难以实现针对ssd产品的持续集成与部署。使得ssd开发和测试的效率无法提高。


技术实现要素:

4.本发明所要解决的技术问题是:提供一种固态硬盘部署方法、装置、可读存储介质及电子设备,实现对ssd的持续集成部署。
5.为了解决上述技术问题,本发明采用的技术方案为:一种固态硬盘部署方法,包括步骤:判断是否接收到定时触发命令,若是,则获取开发代码;获取固态硬盘的规格;根据所述开发代码编译出与所述固态硬盘的规格对应的镜像文件;获取待测固态硬盘的规格、所述待测固态硬盘的规格对应的镜像文件以及升级用例脚本,根据所述镜像文件及所述升级用例脚本对所述待测固态硬盘进行升级部署;判断所述待测固态硬盘是否升级成功,若是,获取测试用例脚本;根据所述测试用例脚本对完成升级的所述待测固态硬盘进行测试。
6.为了解决上述技术问题,本发明采用的另一种技术方案为:一种固态硬盘部署装置,包括:第一判断模块,用于判断是否接收到定时触发命令,若是,则获取开发代码;获取模块,用于获取固态硬盘的规格;编译模块,用于根据所述开发代码编译出与所述固态硬盘的规格对应的镜像文件;升级模块,用于获取待测固态硬盘的规格、所述待测固态硬盘的规格对应的镜像文件以及升级用例脚本,根据所述镜像文件及所述升级用例脚本对所述待测固态硬盘进行升级部署;第二判断模块,用于判断所述待测固态硬盘是否升级成功,若是,获取测试用例脚本;测试模块,用于根据所述测试用例脚本对完成升级的所述待测固态硬盘进行测
试。
7.为了解决上述技术问题,本发明采用的另一种技术方案为:一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的一种固态硬盘部署方法中的各个步骤。
8.为了解决上述技术问题,本发明采用的另一种技术方案为:一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的一种固态硬盘部署方法中的各个步骤本发明的有益效果在于:当接收到定时触发命令后,通过自动拉取对应的开发代码以及获取固态硬盘的规格,并对开发代码进行编译得到与固态硬盘的规格对应的镜像文件,从而使得测试终端在后续进行升级部署的过程中能够获取到对应的镜像文件以及对应的升级用例脚本对固态硬盘进行升级,并进一步对完成升级后的固态硬盘进行测试,从而实现针对固态硬盘产品的自动化集成、部署、测试以及报告的完整流程,无需人工干预,提高固态硬盘开发和测试的效率。
附图说明
9.图1为本发明实施例的一种固态硬盘部署方法的步骤流程图;图2为本发明实施例的一种固态硬盘部署装置的结构示意图;图3为本发明实施例的一种电子设备的结构示意图;图4为本发明实施例的一种固态硬盘部署方法的定时工程界面示意图;图5为本发明实施例的一种固态硬盘部署方法的另一定时工程界面示意图;图6为本发明实施例的一种固态硬盘部署方法的测试工具安装界面示意图;图7为本发明实施例的一种固态硬盘部署方法的基础信息录入界面示意图;图8为本发明实施例的一种固态硬盘部署方法的测试任务用例选择界面示意图;图9为本发明实施例的一种固态硬盘部署方法的测试环境设置界面示意图;图10为本发明实施例的一种固态硬盘部署方法的ftp服务器中存储的镜像文件界面示意图;图11为本发明实施例的一种固态硬盘部署方法的另一ftp服务器中存储的镜像文件界面示意图;图12为本发明实施例的一种固态硬盘部署方法的另一步骤流程图;图13为本发明实施例的一种固态硬盘部署方法的测试结果界面示意图;图14为本发明实施例的一种固态硬盘部署方法的jenkins工程监控示意图。
具体实施方式
10.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
11.请参照图1,一种固态硬盘部署方法,包括步骤:判断是否接收到定时触发命令,若是,则获取开发代码;获取固态硬盘的规格;
根据所述开发代码编译出与所述固态硬盘的规格对应的镜像文件;获取待测固态硬盘的规格、所述待测固态硬盘的规格对应的镜像文件以及升级用例脚本,根据所述镜像文件及所述升级用例脚本对所述待测固态硬盘进行升级部署;判断所述待测固态硬盘是否升级成功,若是,获取测试用例脚本;根据所述测试用例脚本对完成升级的所述待测固态硬盘进行测试。
12.由上述描述可知,本发明的有益效果在于:当接收到定时触发命令后,通过自动拉取对应的开发代码以及获取固态硬盘的规格,并对开发代码进行编译得到与固态硬盘的规格对应的镜像文件,从而使得测试终端在后续进行升级部署的过程中能够获取到对应的镜像文件以及对应的升级用例脚本对固态硬盘进行升级,并进一步对完成升级后的固态硬盘进行测试,从而实现针对固态硬盘产品的自动化集成、部署、测试以及报告的完整流程,无需人工干预,提高固态硬盘开发和测试的效率。
13.进一步地,所述判断是否接收到定时触发命令,若是,则获取开发代码之前包括:接收自动化测试任务id、测试项目名和测试项目编号得到待测试信息;根据所述待测试信息得到所述固态硬盘的规格;根据所述待测试信息创建自动化测试任务,设置所述定时触发命令。
14.由上述描述可知,通过由接收自动化测试任务id、测试项目名和测试项目编号并生成待测试信息后,根据对应的待测试信息创建自动化测试任务并设置定时触发命令,从而能根据具体的测试任务要求进行与之对应的测试内容,并在设定的时间点进行测试,提高固态硬盘测试的方便性。
15.进一步地,所述根据所述开发代码编译出与所述固态硬盘的规格对应的镜像文件包括:获取当前时间,以所述当前时间生成所述镜像文件的文件名;根据所述固态硬盘的规格将不同所述规格对应的所述镜像文件放置在对应的目录下。
16.由上述描述可知,通过获取当前系统时间,并将当前系统时间作为镜像文件的文件名,从而能够一目了然的将不同的镜像文件区分而且能够同时记录编译的时间,同时,根据不同的固态硬盘的规格将镜像文件进行分类放置,使得系统对镜像文件的管理更加高效,并且便于升级过程中的文件查找。
17.进一步地,所述根据所述镜像文件及所述升级用例脚本对所述待测固态硬盘进行升级部署包括:获取与所述自动化测试任务id对应的测试环境信息;根据所述测试环境信息内的状态信息判断所述状态信息是否为空闲,若否,则不进行升级;若是,则对所述待测固态硬盘进行升级部署。
18.由上述描述可知,根据测试环境的不同规格和后续测试用例的不同特性来设置测试环境的配置信息,使得在升级的过程中更加稳定,并获取每一测试环境当前的状态信息,当测试环境为空闲状态时表示当前测试环境可用,而当状态不为空闲时表示当前测试环境不可用,从而提高升级以及测试过程的稳定性。
19.进一步地,所述根据所述开发代码编译出与所述固态硬盘的规格对应的镜像文件还包括:
获取所述开发代码的编译结果;根据所述开发代码的编译结果判断是否编译成功,若否,则将与所述开发代码对应的固态硬盘的测试环境信息的状态信息设置为失败状态;若是,则将所述状态信息设置为空闲状态。
20.由上述描述可知,通过根据开发代码编译的结果将固态硬盘的测试环境信息的状态信息设置为失败或空闲,从而当开发代码编译失败后将对应的状态信息设置为失败状态,使得与之对应的固态硬盘不进行后续的升级和测试步骤,降低了系统能耗。
21.进一步地,所述判断所述待测固态硬盘是否升级成功,若是,获取测试用例脚本包括:接收所述待测固态硬盘的升级结果;判断所述升级结果是否为成功,若否,则将所述状态信息设置为失败;若是,则将所述状态信息设置为空闲,并获取测试用例脚本。
22.由上述描述可知,通过获取固态硬盘的升级结果,并且当升级结果为失败时,将对应的测试环境的状态信息设置为失败,而当升级结果为成功时,将对应的测试环境的状态信息设置为成功,从而能够仅对升级成功的固态硬盘进行后续测试步骤,避免无效的消息传送,降低系统能耗。
23.进一步地,所述判断是否接收到定时触发命令,若是,则获取开发代码之前包括:获取串口信息和端口信息;根据所述串口信息和端口信息与所述待测固态硬盘交互。
24.由上述描述可知,通过获取每一串口信息和端口信息,从而使得系统能够精确的定位每一固态硬盘,实现精确的信息传递。
25.请参照图2,本发明另一实施例提供了一种固态硬盘部署装置,包括:第一判断模块,用于判断是否接收到定时触发命令,若是,则获取开发代码;获取模块,用于获取固态硬盘的规格;编译模块,用于根据所述开发代码编译出与所述固态硬盘的规格对应的镜像文件;升级模块,用于获取待测固态硬盘的规格、所述待测固态硬盘的规格对应的镜像文件以及升级用例脚本,根据所述镜像文件及所述升级用例脚本对所述待测固态硬盘进行升级部署;第二判断模块,用于判断所述待测固态硬盘是否升级成功,若是,获取测试用例脚本;测试模块,用于根据所述测试用例脚本对完成升级的所述待测固态硬盘进行测试。
26.本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述的一种固态硬盘部署方法中的各个步骤。
27.请参照图3,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的一种固态硬盘部署方法中的各个步骤。
28.本发明上述固态硬盘部署方法、装置、计算机可读存储介质及电子设备能够适用于各种规格的nvme固态硬盘的自动化集成、部署、测试以及报告的完整流程,以下通过具体实施方式进行说明:实施例一在执行对应方法时,需要提前搭建对应的定时工程,执行机和测试机与调度系统之间的通讯;具体的:请参照图4和图5:搭建jenkins定时工程,如设置周一至周五的每晚九点定时触发测试任务;可传入测试项目名、代码分支、自动化测试任务id(自研测试调度服务器数据库中存储的该测试任务的id)、项目编号;搭建所有执行机和测试机环境(其中,windows系统启动与服务器通讯的进行进入.bat文件,linux则写入系统service),保证执行机与调度系统的socket通讯;连接到串口服务器;开启ssh server服务;请参照图6,使用所述自动化调度平台来安装测试所需工具;请参照图7,在所述自研调度平台上将测试机、执行机、串口服务器的基础信息录入;请参照图8-9,在所述自研测试调度系统中创建一个用于ci(持续集成)的自动化测试任务,勾选测试用例和测试环境,所述测试环境信息是存在在自动化调度平台与该任务id对应的数据中,设置测试结果发送人及测试参数配置等;请参照图1,一种固态硬盘部署方法,包括步骤:s01、接收自动化测试任务id、测试项目名和测试项目编号得到待测试信息;根据所述待测试信息得到所述固态硬盘的规格;根据所述待测试信息创建自动化测试任务,设置所述定时触发命令;即所述自动化调度平台接收对应测试任务,以及等待接收所述定时触发命令;s02、获取串口信息和端口信息;根据所述串口信息和端口信息与所述待测固态硬盘交互;具体的:通过调用所述自动化测试调度平台后端接口,获取分配给该测试工程的执行机、测试机以及测试机的串口服务器和端口信息;如图8中,已被勾选的测试环境为可参与本次测试的测试环境;如图9的中列表记录所有环境的信息;s1、判断是否接收到定时触发命令,若是,则获取开发代码;通过编译服务器使用git获取对应的开发代码;s2、获取固态硬盘的规格;根据上述搭建的定时工程中传入的所述测试项目名、项目编号等信息得到所述固态硬盘的规格;s3、根据所述开发代码编译出与所述固态硬盘的规格对应的镜像文件;请参照图10和图11,还搭建有ftp服务器;所述ftp服务器用于储存所述镜像版本备份;具体的编译过程包括:s31、根据jenkins服务器上的自建配置文件中该项目的几种不同规格(nand即不同型号的待测试产品),同时编译出这几种规格的新版本镜像(编译前将临时版本写入version.cfg文件,临时版本号带有项目编号、commit id、nand类型缩写、时间信息,此临时文件会在编译时被识别并将该文件中写入的编入到镜像文件中);s32、编译成功后将所有规格的镜像上传ftp服务器进行版本管理;具体的,包括步骤s321、获取当前时间,以所述当前时间生成所述镜像文件的文件名;
s321、根据所述固态硬盘的规格将不同所述规格对应的所述镜像文件放置在对应的目录下;其中,若所有规格的所述固态硬盘都编译失败(仅判断是否编译出一个对应的镜像文件,如果此文件不可用在后续的升级中会被排查),则工程结束;若部分规格编译成功,将编译成功的镜像上传ftp服务器;s4、获取待测固态硬盘的规格、所述待测固态硬盘的规格对应的镜像文件以及升级用例脚本,根据所述镜像文件及所述升级用例脚本对所述待测固态硬盘进行升级部署;s5、判断所述待测固态硬盘是否升级成功,若是,获取测试用例脚本;s6、根据所述测试用例脚本对完成升级的所述待测固态硬盘进行测试。
29.实施例二本实施例与实施例一的不同在于,通过设置有测试机转台和测试环境状态对编译、升级和测试过程进行控制;具体的,请参照图12,步骤s31和步骤s32之间还包括:s301、获取与所述自动化测试任务id对应的测试环境信息;s302、根据所述测试环境信息内的状态信息判断所述状态信息是否为空闲,若否,则不进行升级;若是,则对所述待测固态硬盘进行升级部署s303、获取所述开发代码的编译结果;s304、根据所述开发代码的编译结果判断是否编译成功,若否,则将与所述开发代码对应的固态硬盘的测试环境信息的状态信息设置为失败状态;若是,则将所述状态信息设置为空闲状态;具体的,使用smartctl、nvme工具分别获取windowx系统和linux系统测试盘的规格(nand),如该nand在编译流程中编译成功,则在测试机上下载编译成功的所述镜像文件和升级用例脚本,并执行用于升级固件版本的用例脚本(该用例名称配置在工程),对该测试盘进行升级部署;如该nand在编译流程中编译失败,则调用自动化测试平台接口将该测试机在调度平台的状态置为fault(不再分配进行测试);步骤s5还包括:s51、接收所述待测固态硬盘的升级结果;s52、判断所述升级结果是否为成功,若否,则将所述状态信息设置为失败;若是,则将所述状态信息设置为空闲,并获取测试用例脚本;具体的,若升级用例脚本返回结果为fail,则调用自动化测试平台接口将该测试机在调度平台的状态置为fault(不再分配进行测试);如所有测试机均升级失败,工程结束;同时ssh连接串口服务器,开启升级成功的测试机串口日志;步骤s6还包括:s61、调用所述自动化测试平台接口,触发自动化测试任务;s62、自动化调度平台调度测试机执行测试(测试用例为9中已勾选的用例集),并将结果以邮件的方式发送给相关责任人,如图7;测试环境上如有用例失败,则该环境在调度平台上的状态置为fault,不再参与后续的用例分发和执行;s63、jenkins工程通过自动化测试执行平台接口,监控自动化测试任务执行状态和结果,所有用例执行成功,则此次工程pass,如图13和14;
其中,步骤s1-s4在服务器上执行,测试机从服务器上获取对应的镜像文件以及升级用例脚本和测试用例脚本后对待测试的固态硬盘进行升级和测试。
30.实施例三请参照图2,一种固态硬盘部署装置,包括:第一判断模块,用于判断是否接收到定时触发命令,若是,则获取开发代码;获取模块,用于获取固态硬盘的规格;编译模块,用于根据所述开发代码编译出与所述固态硬盘的规格对应的镜像文件;升级模块,用于获取待测固态硬盘的规格、所述待测固态硬盘的规格对应的镜像文件以及升级用例脚本,根据所述镜像文件及所述升级用例脚本对所述待测固态硬盘进行升级部署;第二判断模块,用于判断所述待测固态硬盘是否升级成功,若是,获取测试用例脚本;测试模块,用于根据所述测试用例脚本对完成升级的所述待测固态硬盘进行测试。
31.实施例四一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如实施例一或二中任意一项所述的一种固态硬盘部署方法中的各个步骤。
32.实施例五请参照图3,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如实施例一或二中任意一项所述的一种固态硬盘部署方法中的各个步骤。
33.综上所述,本发明提供的一种固态硬盘部署方法、装置、可读存储介质及电子设备,通过当接收到定时触发命令后,通过自动拉取对应的开发代码以及获取固态硬盘的规格,并对开发代码进行编译得到与固态硬盘的规格对应的镜像文件,从而使得测试终端在后续进行升级部署的过程中能够获取到对应的镜像文件以及对应的升级用例脚本对固态硬盘进行升级,并进一步对完成升级后的固态硬盘进行测试,同时,在固态硬盘编译、升级和测试的过程中加入对测试机以及测试环境的控制,使得固态硬盘在编译、升级和测试的过程中更加稳定,且降低了系统的能耗,实现针对固态硬盘产品的自动化集成、部署、测试以及报告的完整流程,无需人工干预,提高固态硬盘开发和测试的效率。
34.在本技术所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
35.所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目
的。
36.另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
37.所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
38.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
39.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
40.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1