一种硬盘性能测试方法、系统、电子设备及可读存储介质与流程
未命名
10-18
阅读:147
评论:0
1.本技术涉及硬盘设计领域,特别涉及一种硬盘性能测试方法、系统、电子设备及可读存储介质。
背景技术:
2.nvme(non-volatile memory express,非易失性内存主机控制器接口规范)是一种高性能、numa(non uniform memory access,非统一内存访问)优化的、高度可扩展的存储协议,用于连接主机和内存子系统。各个ssd(solid state disk,固态硬盘)厂家除了遵循nvme协议标准完成标准命令的实现外,还可以自定义私有命令,实现客户的特定需求。现有的测试工具如fio、spdk中的性能测试框架只能够实现对标准读写命令的测试,无法验证自定义私有命令的性能,从而无法验证ssd的设计是否满足客户需求。
3.因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
技术实现要素:
4.本技术的目的是提供一种硬盘性能测试方法、系统、电子设备及可读存储介质,能够实现对硬盘进行与私有命令对应的性能测试,以验证硬盘性能是否能够满足客户的特定需求,提高硬盘测试的灵活性和全面性。
5.为解决上述技术问题,本技术提供了一种硬盘性能测试方法,所述硬盘性能测试方法包括:
6.当测试环境满足私有命令的测试需求,确定与当前命令参数对应的标准提交队列结构体数据;
7.调用目标测试脚本对所述标准提交队列结构体数据进行调整,得到对应所述私有命令的目标提交队列结构体数据;
8.根据所述目标提交队列结构体数据生成私有命令,并下发至硬盘,以便对所述硬盘进行与所述私有命令对应的性能测试。
9.可选的,所述当测试环境满足私有命令的测试需求,确定与当前命令参数对应的标准提交队列结构体数据之前,所述硬盘性能测试方法还包括:
10.判断是否存在目标测试脚本名称;
11.若不存在所述目标测试脚本名称,判定所述测试环境不满足私有命令的测试需求;
12.若存在所述目标测试脚本名称,判断所述目标测试脚本名称对应的文件是否加载成功;
13.若加载成功,判定所述测试环境满足私有命令的测试需求;
14.若加载失败,判定所述测试环境不满足私有命令的测试需求。
15.可选的,若存在所述目标测试脚本名称,判断所述目标测试脚本名称对应的文件
是否加载成功的过程包括:
16.若存在所述目标测试脚本名称,确定所述目标测试脚本名称对应的路径;
17.按所述路径获取所述目标测试脚本名称对应的文件;
18.当所述文件的内容不为空,判定所述文件加载成功。
19.可选的,根据所述目标提交队列结构体数据生成私有命令的过程包括:
20.确定所述目标提交队列结构体数据对应的命令类型;
21.基于所述命令类型确定目标函数;
22.调用所述目标函数根据所述目标提交队列结构体数据生成私有命令。
23.可选的,所述命令类型包括管理员命令或输入/输出命令。
24.可选的,调用目标测试脚本对所述标准提交队列结构体数据进行调整,得到对应所述私有命令的目标提交队列结构体数据的过程包括:
25.调用目标测试脚本确定所述标准提交队列结构体数据对应的命令类型和命令码;
26.判断与所述标准提交队列结构体数据对应的命令类型和命令码对应的命令是否满足替换条件;
27.若满足所述替换条件,对所述标准提交队列结构体数据进行调整,得到对应所述私有命令的目标提交队列结构体数据。
28.可选的,对所述标准提交队列结构体数据进行调整,得到对应所述私有命令的目标提交队列结构体数据的过程包括:
29.将所述标准提交队列结构体数据中的参数替换为所述私有命令对应的参数,得到目标提交队列结构体数据,所述参数包括操作码。
30.为解决上述技术问题,本技术还提供了一种硬盘性能测试系统,所述硬盘性能测试系统包括:
31.确定模块,用于当测试环境满足私有命令的测试需求,确定与当前命令参数对应的标准提交队列结构体数据;
32.调整模块,用于调用目标测试脚本对所述标准提交队列结构体数据进行调整,得到对应所述私有命令的目标提交队列结构体数据;
33.测试模块,用于根据所述目标提交队列结构体数据生成私有命令,并下发至硬盘,以便对所述硬盘进行与所述私有命令对应的性能测试。
34.为解决上述技术问题,本技术还提供了一种电子设备,包括:
35.存储器,用于存储计算机程序;
36.处理器,用于执行所述计算机程序时实现如上文任意一项所述的硬盘性能测试方法的步骤。
37.为解决上述技术问题,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任意一项所述的硬盘性能测试方法的步骤。
38.本技术提供了一种硬盘性能测试方法,在通过测试工具对硬盘性能进行测试时,如果需要对私有命令进行测试,调用目标测试脚本将测试工具基于当前命令参数生成的标准提交队列结构体数据调整为满足私有命令的目标提交队列结构体数据,然后基于目标提交队列结构体数据生成私有命令,并下发至硬盘,实现对硬盘进行与私有命令对应的性能
测试,以验证硬盘性能是否能够满足客户的特定需求,提高测试灵活性和全面性。本技术还提供了一种硬盘性能测试系统、电子设备及计算机可读存储介质,具有和上述硬盘性能测试方法相同的有益效果。
附图说明
39.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1为本技术所提供的一种硬盘性能测试方法的步骤流程图;
41.图2为本技术所提供的另一种硬盘性能测试方法的步骤流程图;
42.图3为本技术所提供的一种硬盘性能测试系统的结构示意图。
具体实施方式
43.本技术的核心是提供一种硬盘性能测试方法、系统、电子设备及可读存储介质,能够实现对硬盘进行与私有命令对应的性能测试,以验证硬盘性能是否能够满足客户的特定需求,提高硬盘测试的灵活性和全面性。
44.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
45.第一方面,请参照图1,图1为本技术所提供的一种硬盘性能测试方法的步骤流程图,该硬盘性能测试方法包括:
46.s101:当测试环境满足私有命令的测试需求,确定与当前命令参数对应的标准提交队列结构体数据;
47.s102:调用目标测试脚本对标准提交队列结构体数据进行调整,得到对应私有命令的目标提交队列结构体数据;
48.本技术通过测试工具下发对应的命令对硬盘进行性能测试,其中,命令具体可以为nvme命令,测试工具包括但不限于spdk测试工具、fio测试工具等。可以理解,由于测试工具的性能测试架构目前只能实现标准读写命令的测试,无法实现自定义的私有命令的测试,基于此,为了实现对私有命令的测试,本技术在测试工具的性能测试架构中增加了调用目标测试脚本的逻辑,以通过目标测试脚本辅助实现私有命令的测试。
49.本技术首先确定测试环境是否满足私有命令的测试需求,即判断是否存在与目标测试脚本相关的参数,如果存在,再执行后续操作,如果不存在,则判定测试环境不满足私有命令的测试需求,此时按照已知测试逻辑执行相关测试操作,已知测试逻辑即对应标准命令的测试逻辑。
50.可以理解,如果测试环境满足私有命令的测试需求,根据接收到的与私有命令对应的当前命令参数生成标准sq(submission queue,提交队列)结构体数据,调用目标测试脚本对标准sq结构体数据进行调整,将其调整为私有命令需要的目标sq结构体数据。在一些实施例中,目标测试脚本可以选用lua脚本实现,lua是一种轻量小巧的脚本语言,用标准
c语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。当然,目标测试脚本除了可以选用lua实现,还可以选择其他能够实现将标准sq结构体数据调整为满足私有命令需要的目标sq结构体数据的测试脚本,本实施例在此不作具体限定。
51.在一些实施例中,如果调用目标测试脚本失败,则提示与脚本有误相关的信息,并退出私有命令的测试。
52.在一些实施例中,调用目标测试脚本对标准提交队列结构体数据进行调整的过程包括:
53.预先存储与不同私有命令一一对应的目标测试脚本;
54.调用与当前私有命令对应的目标测试脚本对标准提交队列结构体数据进行调整。
55.本实施例中,基于测试工具的性能测试框架,嵌入目标测试脚本实现命令内容的替换,不同的私有命令通过编写不同的目标测试脚本来实现,避免每个私有命令都需要修改源程序,达到灵活高效实现性能测试的目的。
56.示例性地,以目标测试脚本为lua脚本为例,可实现替换通用sq命令到对应的私有命令的lua接口,从而实现快速测试各种私有命令的性能。
57.s103:根据目标提交队列结构体数据生成私有命令,并下发至硬盘,以便对硬盘进行与私有命令对应的性能测试。
58.可以理解,当接收到目标测试脚本返回的目标sq结构体数据,测试工具的主程序根据该目标sq结构体数据更新sq数据,然后基于目标sq结构体数据下发对应的私有命令至硬盘,完成对应的nvme私有命令的性能测试,即完成对硬盘进行与私有命令对应的性能测试。
59.可见,本实施例中,在通过测试工具对硬盘性能进行测试时,如果需要对私有命令进行测试,调用目标测试脚本将测试工具基于当前命令参数生成的标准提交队列结构体数据调整为满足私有命令的目标提交队列结构体数据,然后基于目标提交队列结构体数据生成私有命令,并下发至硬盘,实现对硬盘进行与私有命令对应的性能测试,以验证硬盘性能是否能够满足客户的特定需求,提高测试灵活性和全面性。
60.在上述实施例的基础上:
61.在一些实施例中,当测试环境满足私有命令的测试需求,确定与当前命令参数对应的标准提交队列结构体数据之前,硬盘性能测试方法还包括:
62.判断是否存在目标测试脚本名称;
63.若不存在目标测试脚本名称,判定测试环境不满足私有命令的测试需求;
64.若存在目标测试脚本名称,判断目标测试脚本名称对应的文件是否加载成功;
65.若加载成功,判定测试环境满足私有命令的测试需求;
66.若加载失败,判定测试环境不满足私有命令的测试需求。在一些实施例中,若存在目标测试脚本名称,判断目标测试脚本名称对应的文件是否加载成功的过程包括:
67.若存在目标测试脚本名称,确定目标测试脚本名称对应的路径;
68.按路径获取目标测试脚本名称对应的文件;
69.当文件的内容不为空,判定文件加载成功。
70.本实施例以目标测试脚本为lua脚本为例,对判断测试环境是否满足私有命令的
测试需求的过程进行说明,测试工具的主程序启动后,校验参数lua_script是否存在,lua_script,为定义调整sq命令的lua脚本名称。如果lua_script不存在,则直接按照已知测试逻辑进行后续处理,如果lua_script存在,校验lua_script指定的文件是否存在且能正确加载,如果文件不存在或者不能正确加载,则退出私有命令的测试。
71.在一些实施例中,根据目标提交队列结构体数据生成私有命令的过程包括:
72.确定目标提交队列结构体数据对应的命令类型;
73.基于命令类型确定目标函数;
74.调用目标函数根据目标提交队列结构体数据生成私有命令。
75.考虑到不同命令类型下的命令的相关数据不一致,因此,本实施例基于命令类型生成对应的私有命令,测试工具内置变量opcode_type,用于区分nvme中的管理员admin命令和输入/输出io命令,示例性地,如果opcode_type的值为a,则命令类型为admin命令,如果opcode_type的值为b,则命令类型为io命令。
76.本实施例中,如果目标提交队列结构体数据中的命令类型是admin命令,调用spdk_nvme_ctrlr_cmd_admin_raw函数下发对应类型的命令,完成对应nvme私有命令的性能测试,如果目标提交队列结构体数据中的命令类型是io命令,调用spdk_nvme_ctrlr_cmd_io_raw函数下发对应类型的命令,完成对应nvme私有命令的性能测试。
77.在一些实施例中,调用目标测试脚本对标准提交队列结构体数据进行调整,得到对应私有命令的目标提交队列结构体数据的过程包括:
78.调用目标测试脚本确定标准提交队列结构体数据对应的命令类型和命令码;
79.判断与标准提交队列结构体数据对应的命令类型和命令码对应的命令是否满足替换条件;
80.若满足替换条件,对标准提交队列结构体数据进行调整,得到对应私有命令的目标提交队列结构体数据。
81.在一些实施例中,对标准提交队列结构体数据进行调整,得到对应私有命令的目标提交队列结构体数据的过程包括:
82.将标准提交队列结构体数据中的参数替换为私有命令对应的参数,得到目标提交队列结构体数据,参数包括操作码。
83.本实施例中仍以lua脚本为例对sq结构体数据的调整进行说明,定义lua脚本函数sq_exchange,设置3个参数,分别为64个字节的sq、命令类型opcode_type、操作码opcode,可以理解,私有命令中也可能包括标准命令,标准命令无需进行结构体数据调整,若基于opcode_type、opcode确定命令为需要替换的命令,则对标准sq结构体数据进行修改,包括将标准opcode调整为私有命令对应的opcode,将sq其他数据调整成私有命令需要的数据等,并将修改后的sq结构体数据返回,如果不是需要替换的命令,则直接返回标准提交队列结构体数据。
84.在一些实施例中,请参照图2,图2为本技术所提供的另一种硬盘性能测试方法的步骤流程图,该硬盘性能测试方法包括:
85.s201:操作工具的主程序启动;
86.s202:对用于标准命令测试的参数进行校验;
87.s203:校验参数lua_script是否存在,若否,执行s204,若是,执行s205;
88.s204:按照原有逻辑处理;
89.s205:校验lua_script指定的文件是否存在且能够正确加载,若是,执行s207,若否,执行s206;
90.s206:异常退出;
91.s207:根据输入的当前命令参数确定需要下发的nvme命令的标准sq结构体数据;
92.s208:调用lua脚本对标准sq结构体数据进行调整;
93.s209:如果调用lua脚本失败,提示lua脚本有误,执行s206;
94.s210:lua脚本执行成功,返回更新的目标sq结构体数据,主程序根据该目标sq结构体数据更新sq数据;
95.s211:执行原有逻辑下发命令,包括按照命令类型opcode_type,如果是admin命令,调用spdk_nvme_ctrlr_cmd_admin_raw函数,如果是io命令,调用spdk_nvme_ctrlr_cmd_io_raw函数,下发对应类型的命令,完成对应nvme私有命令的性能测试,结束。
96.综上所述,本技术提出一种基于spdk测试框架,通过编写嵌入式的lua脚本,实现高效定制各种私有命令,达到快速验证nvme私有命令的性能。
97.第二方面,请参照图3,图3为本技术所提供的一种硬盘性能测试系统的结构示意图,该硬盘性能测试系统包括:
98.确定模块31,用于当测试环境满足私有命令的测试需求,确定与当前命令参数对应的标准提交队列结构体数据;
99.调整模块32,用于调用目标测试脚本对标准提交队列结构体数据进行调整,得到对应私有命令的目标提交队列结构体数据;
100.测试模块33,用于根据目标提交队列结构体数据生成私有命令,并下发至硬盘,以便对硬盘进行与私有命令对应的性能测试。
101.本技术通过测试工具下发对应的命令对硬盘进行性能测试,测试工具包括但不限于spdk测试工具、fio测试工具等。可以理解,由于测试工具的性能测试架构目前只能实现标准读写命令的测试,无法实现自定义的私有命令的测试,基于此,为了实现对私有命令的测试,本技术在测试工具的性能测试架构中增加了调用目标测试脚本的逻辑,以通过目标测试脚本辅助实现私有命令的测试。
102.本技术首先确定测试环境是否满足私有命令的测试需求,即判断是否存在与目标测试脚本相关的参数,如果存在,再执行后续操作,如果不存在,则判定测试环境不满足私有命令的测试需求,此时按照已知测试逻辑执行相关测试操作,已知测试逻辑即对应标准命令的测试逻辑。
103.可以理解,如果测试环境满足私有命令的测试需求,根据接收到的与私有命令对应的当前命令参数生成标准sq(submission queue,提交队列)结构体数据,调用目标测试脚本对标准sq结构体数据进行调整,将其调整为私有命令需要的目标sq结构体数据。在一些实施例中,目标测试脚本可以选用lua脚本实现,lua是一种轻量小巧的脚本语言,用标准c语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。当然,目标测试脚本除了可以选用lua实现,还可以选择其他能够实现将标准sq结构体数据调整为满足私有命令需要的目标sq结构体数据的测试脚本,本实施例在此不作具体限定。
104.在一些实施例中,如果调用目标测试脚本失败,则提示与脚本有误相关的信息,并退出私有命令的测试。
105.在一些实施例中,调用目标测试脚本对标准提交队列结构体数据进行调整的过程包括:
106.预先存储与不同私有命令一一对应的目标测试脚本;
107.调用与当前私有命令对应的目标测试脚本对标准提交队列结构体数据进行调整。
108.本实施例中,基于测试工具的性能测试框架,嵌入目标测试脚本实现命令内容的替换,不同的私有命令通过编写不同的目标测试脚本来实现,避免每个私有命令都需要修改源程序,达到灵活高效实现性能测试的目的。
109.示例性地,以目标测试脚本为lua脚本为例,可实现替换通用sq命令到对应的私有命令的lua接口,从而实现快速测试各种私有命令的性能。
110.可以理解,当接收到目标测试脚本返回的目标sq结构体数据,测试工具的主程序根据该目标sq结构体数据更新sq数据,然后基于目标sq结构体数据下发对应的私有命令至硬盘,完成对应的nvme私有命令的性能测试,即完成对硬盘进行与私有命令对应的性能测试。
111.可见,本实施例中,在通过测试工具对硬盘性能进行测试时,如果需要对私有命令进行测试,调用目标测试脚本将测试工具基于当前命令参数生成的标准提交队列结构体数据调整为满足私有命令的目标提交队列结构体数据,然后基于目标提交队列结构体数据生成私有命令,并下发至硬盘,实现对硬盘进行与私有命令对应的性能测试,以验证硬盘性能是否能够满足客户的特定需求,提高测试灵活性和全面性。
112.在一些实施例中,确定模块31,还用于:
113.判断是否存在目标测试脚本名称;
114.若不存在目标测试脚本名称,判定测试环境不满足私有命令的测试需求;
115.若存在目标测试脚本名称,判断目标测试脚本名称对应的文件是否加载成功;
116.若加载成功,判定测试环境满足私有命令的测试需求;
117.若加载失败,判定测试环境不满足私有命令的测试需求。
118.在一些实施例中,若存在目标测试脚本名称,判断目标测试脚本名称对应的文件是否加载成功的过程包括:
119.若存在目标测试脚本名称,确定目标测试脚本名称对应的路径;
120.按路径获取目标测试脚本名称对应的文件;
121.当文件的内容不为空,判定文件加载成功。
122.在一些实施例中,根据目标提交队列结构体数据生成私有命令的过程包括:
123.确定目标提交队列结构体数据对应的命令类型;
124.基于命令类型确定目标函数;
125.调用目标函数根据目标提交队列结构体数据生成私有命令。
126.在一些实施例中,命令类型包括管理员命令或输入/输出命令。
127.在一些实施例中,调用目标测试脚本对标准提交队列结构体数据进行调整,得到对应私有命令的目标提交队列结构体数据的过程包括:
128.调用目标测试脚本确定标准提交队列结构体数据对应的命令类型和命令码;
129.判断与标准提交队列结构体数据对应的命令类型和命令码对应的命令是否满足替换条件;
130.若满足替换条件,对标准提交队列结构体数据进行调整,得到对应私有命令的目标提交队列结构体数据。
131.在一些实施例中,对标准提交队列结构体数据进行调整,得到对应私有命令的目标提交队列结构体数据的过程包括:
132.将标准提交队列结构体数据中的参数替换为私有命令对应的参数,得到目标提交队列结构体数据,参数包括操作码。
133.第三方面,本技术还提供了一种电子设备,包括:
134.存储器,用于存储计算机程序;
135.处理器,用于执行计算机程序时实现如上文任意一个实施例所描述的硬盘性能测试方法的步骤。
136.具体的,存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器执行存储器中保存的计算机程序时,可以实现以下步骤:当测试环境满足私有命令的测试需求,确定与当前命令参数对应的标准提交队列结构体数据;调用目标测试脚本对标准提交队列结构体数据进行调整,得到对应私有命令的目标提交队列结构体数据;根据目标提交队列结构体数据生成私有命令,并下发至硬盘,以便对硬盘进行与私有命令对应的性能测试。
137.可见,本实施例中,在通过测试工具对硬盘性能进行测试时,如果需要对私有命令进行测试,调用目标测试脚本将测试工具基于当前命令参数生成的标准提交队列结构体数据调整为满足私有命令的目标提交队列结构体数据,然后基于目标提交队列结构体数据生成私有命令,并下发至硬盘,实现对硬盘进行与私有命令对应的性能测试,以验证硬盘性能是否能够满足客户的特定需求,提高测试灵活性和全面性。
138.在一些实施例中,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:判断是否存在目标测试脚本名称;若不存在目标测试脚本名称,判定测试环境不满足私有命令的测试需求;若存在目标测试脚本名称,判断目标测试脚本名称对应的文件是否加载成功;若加载成功,判定测试环境满足私有命令的测试需求;若加载失败,判定测试环境不满足私有命令的测试需求。
139.在一些实施例中,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:若存在目标测试脚本名称,确定目标测试脚本名称对应的路径;按路径获取目标测试脚本名称对应的文件;当文件的内容不为空,判定文件加载成功。
140.在一些实施例中,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:确定目标提交队列结构体数据对应的命令类型;基于命令类型确定目标函数;调用目标函数根据目标提交队列结构体数据生成私有命令。
141.在一些实施例中,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:确定目标提交队列结构体数据对应的命令类型;基于命令类型确定目标函数;调用目标函数根据目标提交队列结构体数据生成私有命令;命令类型包括管理员命令或输入/输出命令。
142.在一些实施例中,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:调用目标测试脚本确定标准提交队列结构体数据对应的命令类型和命令码;判断与标准提交队列结构体数据对应的命令类型和命令码对应的命令是否满足替换条件;若满足替换条件,对标准提交队列结构体数据进行调整,得到对应私有命令的目标提交队列结构体数据。
143.在一些实施例中,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:将标准提交队列结构体数据中的参数替换为私有命令对应的参数,得到目标提交队列结构体数据,参数包括操作码。
144.在上述实施例的基础上,该电子设备还包括:
145.输入接口,与处理器相连,用于获取外部导入的计算机程序、参数和指令,经处理器控制保存至存储器中。该输入接口可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板。
146.显示单元,与处理器相连,用于显示处理器发送的数据。该显示单元可以为液晶显示屏或者电子墨水显示屏等。
147.网络端口,与处理器相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(mhl)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术等。
148.第四方面,本技术还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上文任意一个实施例所描述的硬盘性能测试方法的步骤。
149.计算机可读存储介质可以包括但不限于:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:当测试环境满足私有命令的测试需求,确定与当前命令参数对应的标准提交队列结构体数据;调用目标测试脚本对标准提交队列结构体数据进行调整,得到对应私有命令的目标提交队列结构体数据;根据目标提交队列结构体数据生成私有命令,并下发至硬盘,以便对硬盘进行与私有命令对应的性能测试。
150.可见,本实施例中,在通过测试工具对硬盘性能进行测试时,如果需要对私有命令进行测试,调用目标测试脚本将测试工具基于当前命令参数生成的标准提交队列结构体数据调整为满足私有命令的目标提交队列结构体数据,然后基于目标提交队列结构体数据生成私有命令,并下发至硬盘,实现对硬盘进行与私有命令对应的性能测试,以验证硬盘性能是否能够满足客户的特定需求,提高测试灵活性和全面性。
151.在一些实施例中,计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:判断是否存在目标测试脚本名称;若不存在目标测试脚本名称,判定测试环境不满足私有命令的测试需求;若存在目标测试脚本名称,判断目标测试脚本名称对应的文件是否加载成功;若加载成功,判定测试环境满足私有命令的测试需求;若加载失败,判定测试环境不满足私有命令的测试需求。
152.在一些实施例中,计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:若存在目标测试脚本名称,确定目标测试脚本名称对应的路径;按路径获取目标测试脚本名称对应的文件;当文件的内容不为空,判定文件加载成功。
153.在一些实施例中,计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:确定目标提交队列结构体数据对应的命令类型;基于命令类型确定目标函数;调用目标函数根据目标提交队列结构体数据生成私有命令。
154.在一些实施例中,计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:确定目标提交队列结构体数据对应的命令类型;基于命令类型确定目标函数;调用目标函数根据目标提交队列结构体数据生成私有命令;命令类型包括管理员命令或输入/输出命令。
155.在一些实施例中,计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:调用目标测试脚本确定标准提交队列结构体数据对应的命令类型和命令码;判断与标准提交队列结构体数据对应的命令类型和命令码对应的命令是否满足替换条件;若满足替换条件,对标准提交队列结构体数据进行调整,得到对应私有命令的目标提交队列结构体数据。
156.在一些实施例中,计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:将标准提交队列结构体数据中的参数替换为私有命令对应的参数,得到目标提交队列结构体数据,参数包括操作码。
157.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
158.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其他实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种硬盘性能测试方法,其特征在于,所述硬盘性能测试方法包括:当测试环境满足私有命令的测试需求,确定与当前命令参数对应的标准提交队列结构体数据;调用目标测试脚本对所述标准提交队列结构体数据进行调整,得到对应所述私有命令的目标提交队列结构体数据;根据所述目标提交队列结构体数据生成私有命令,并下发至硬盘,以便对所述硬盘进行与所述私有命令对应的性能测试。2.根据权利要求1所述的硬盘性能测试方法,其特征在于,所述当测试环境满足私有命令的测试需求,确定与当前命令参数对应的标准提交队列结构体数据之前,所述硬盘性能测试方法还包括:判断是否存在目标测试脚本名称;若不存在所述目标测试脚本名称,判定所述测试环境不满足私有命令的测试需求;若存在所述目标测试脚本名称,判断所述目标测试脚本名称对应的文件是否加载成功;若加载成功,判定所述测试环境满足私有命令的测试需求;若加载失败,判定所述测试环境不满足私有命令的测试需求。3.根据权利要求2所述的硬盘性能测试方法,其特征在于,若存在所述目标测试脚本名称,判断所述目标测试脚本名称对应的文件是否加载成功的过程包括:若存在所述目标测试脚本名称,确定所述目标测试脚本名称对应的路径;按所述路径获取所述目标测试脚本名称对应的文件;当所述文件的内容不为空,判定所述文件加载成功。4.根据权利要求1所述的硬盘性能测试方法,其特征在于,根据所述目标提交队列结构体数据生成私有命令的过程包括:确定所述目标提交队列结构体数据对应的命令类型;基于所述命令类型确定目标函数;调用所述目标函数根据所述目标提交队列结构体数据生成私有命令。5.根据权利要求4所述的硬盘性能测试方法,其特征在于,所述命令类型包括管理员命令或输入/输出命令。6.根据权利要求1-5任意一项所述的硬盘性能测试方法,其特征在于,调用目标测试脚本对所述标准提交队列结构体数据进行调整,得到对应所述私有命令的目标提交队列结构体数据的过程包括:调用目标测试脚本确定所述标准提交队列结构体数据对应的命令类型和命令码;判断与所述标准提交队列结构体数据对应的命令类型和命令码对应的命令是否满足替换条件;若满足所述替换条件,对所述标准提交队列结构体数据进行调整,得到对应所述私有命令的目标提交队列结构体数据。7.根据权利要求1所述的硬盘性能测试方法,其特征在于,对所述标准提交队列结构体数据进行调整,得到对应所述私有命令的目标提交队列结构体数据的过程包括:将所述标准提交队列结构体数据中的参数替换为所述私有命令对应的参数,得到目标
提交队列结构体数据,所述参数包括操作码。8.一种硬盘性能测试系统,其特征在于,所述硬盘性能测试系统包括:确定模块,用于当测试环境满足私有命令的测试需求,确定与当前命令参数对应的标准提交队列结构体数据;调整模块,用于调用目标测试脚本对所述标准提交队列结构体数据进行调整,得到对应所述私有命令的目标提交队列结构体数据;测试模块,用于根据所述目标提交队列结构体数据生成私有命令,并下发至硬盘,以便对所述硬盘进行与所述私有命令对应的性能测试。9.一种电子设备,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1-7任意一项所述的硬盘性能测试方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7任意一项所述的硬盘性能测试方法的步骤。
技术总结
本申请公开了一种硬盘性能测试方法、系统、电子设备及可读存储介质,涉及硬盘设计领域,该硬盘性能测试方法包括当测试环境满足私有命令的测试需求,确定与当前命令参数对应的标准提交队列结构体数据;调用目标测试脚本对标准提交队列结构体数据进行调整,得到对应私有命令的目标提交队列结构体数据;根据目标提交队列结构体数据生成私有命令,并下发至硬盘,以便对硬盘进行与私有命令对应的性能测试。本申请能够实现对硬盘进行与私有命令对应的性能测试,以验证硬盘性能是否能够满足客户的特定需求,提高硬盘测试的灵活性和全面性。提高硬盘测试的灵活性和全面性。提高硬盘测试的灵活性和全面性。
技术研发人员:齐武波 许春 路明远 周春法 于建彬 王朋
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2023.06.30
技术公布日:2023/10/11
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
