CN110289043A - 存储设备测试方法、装置、电子设备 - Google Patents
存储设备测试方法、装置、电子设备 Download PDFInfo
- Publication number
- CN110289043A CN110289043A CN201910563043.3A CN201910563043A CN110289043A CN 110289043 A CN110289043 A CN 110289043A CN 201910563043 A CN201910563043 A CN 201910563043A CN 110289043 A CN110289043 A CN 110289043A
- Authority
- CN
- China
- Prior art keywords
- test
- multithreading
- equipment
- serializing
- several
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C29/56016—Apparatus features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请提供一种存储设备测试方法、装置、电子设备及机器可读存储介质。在本申请中,接收用户针对所述存储设备的启动测试指令;其中,所述启动测试指令至少包括所述存储设备的产品型号;响应于所述启动测试指令,生成与所述产品型号匹配对应的序列化调度策略;其中,所述序列化调度策略至少包括存在依赖关系的若干测试项;创建与所述若干测试项对应的多线程测试任务并执行对应测试。基于序列化调度策略,异步有序创建多线程测试任务及调度其并发执行,避免了多线程测试任务死锁,提高了系统稳定性以及测试效率。
Description
技术领域
本申请涉及存储技术领域,尤其涉及存储设备测试方法、装置、电子设备及机器可读存储介质。
背景技术
多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-level multithreading)或同时多线程(Simultaneous multithreading)处理器。在一个程序中,使用多线程进行编程,被简称为“多线程编程”。
发明内容
本申请提供一种存储设备测试方法,所述方法应用于与存储设备相连通信的测试设备,所述方法包括:
接收用户针对所述存储设备的启动测试指令;其中,所述启动测试指令至少包括所述存储设备的产品型号;
响应于所述启动测试指令,生成与所述产品型号匹配对应的序列化调度策略;其中,所述序列化调度策略至少包括存在依赖关系的若干测试项;
创建与所述若干测试项对应的多线程测试任务并执行对应测试。
可选的,在所述序列化调度策略生成之前,还包括:
检查与所述若干测试项对应的测试脚本是否已准备好;若否,则给出脚本异常的提示,中止测试执行。
可选的,所述创建与所述若干测试项对应的多线程测试任务并执行对应测试,包括:
通过异步调用机制,创建与所述若干测试项对应的多线程测试任务;
基于所述若干测试项之间的依赖关系,生成与所述多线程测试任务执行顺序对应的线程状态树;
基于所述线程状态树,调度所述多线程测试任务执行对应测试。
可选的,所述序列化调度策略为基于XML的配置文件。
可选的,所述线程状态树为二叉树。
可选的,还包括:
返回与所述若干测试项对应的所述多线程测试任务的测试结果。
本申请还提供一种存储设备测试装置,所述装置应用于与存储设备相连通信的测试设备,所述装置包括:
接收模块,接收用户针对所述存储设备的启动测试指令;其中,所述启动测试指令至少包括所述存储设备的产品型号;
创建模块,响应于所述启动测试指令,生成与所述产品型号匹配对应的序列化调度策略;其中,所述序列化调度策略至少包括存在依赖关系的若干测试项;
测试模块,创建与所述若干测试项对应的多线程测试任务并执行对应测试。
可选的,在所述序列化调度策略生成之前,所述创建模块进一步:
检查与所述若干测试项对应的测试脚本是否已准备好;若否,则给出脚本异常的提示,中止测试执行。
可选的,所述测试模块进一步:
通过异步调用机制,创建与所述若干测试项对应的多线程测试任务;
基于所述若干测试项之间的依赖关系,生成与所述多线程测试任务执行顺序对应的线程状态树;
基于所述线程状态树,调度所述多线程测试任务执行对应测试。
可选的,所述序列化调度策略为基于XML的配置文件。
可选的,所述线程状态树为二叉树。
可选的,所述测试模块进一步:
返回与所述若干测试项对应的所述多线程测试任务的测试结果。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
通过以上实施例,基于序列化调度策略,异步有序创建多线程测试任务及调度其并发执行,避免了多线程测试任务死锁,提高了系统稳定性以及测试效率。
附图说明
图1是一示例性实施例提供的一种针对存储设备的测试组网图;
图2是一示例性实施例提供的一种存储设备测试方法的流程图;
图3是一示例性实施例提供的一种电子设备的硬件结构图;
图4是一示例性实施例提供的一种存储设备测试装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面先对本申请实施例涉及的存储设备测试的相关技术,进行简要说明。
为了方便理解,介绍下测试存储设备的过程。请参见图1,图1是本申请一实施例提供的一种针对存储设备的测试组网图。
如图1所示的测试组网包括:测试设备和存储设备;
其中,测试设备与存储设备可以通过网络或各种协议硬件接口相连通信。
例如,测试设备可以通过网口或者串口、并口等硬件接口,与存储设备相连通信。
在基于如图1所示的测试组网,测试设备可以针对存储设备进行各种测试,比如:针对存储设备的硬件进行装备测试。又比如:针对存储设备的存储软件进行功能或性能测试。
在一些场景下,由于存储设备的测试项很多;以及,测试设备需要对多台存储设备进行批量测试,所以,在现有的技术方案中,通常由测试设备创建多个线程用于完成针对存储设备的若干测试项的测试;当多个线程向存储设备并发访问执行测试时,通常使用锁机制对多个线程间的共享资源进行保护,用以防止由于使用多线程而导致的资源竞争;然而,由于锁机制的引入,一方面提升了编程难度,另一方面,当锁机制被误用时会导致多线程死锁,从而导致测试失败。
基于如图1所示的测试组网,而本申请旨在提出一种,基于序列化调度策略,异步创建多线程测试任务及调度其并发测试执行的技术方案。
在实现时,测试设备接收用户针对所述存储设备的启动测试指令;其中,所述启动测试指令至少包括所述存储设备的产品型号;响应于所述启动测试指令,生成与所述产品型号匹配对应的序列化调度策略;其中,所述序列化调度策略至少包括存在依赖关系的若干测试项;创建与所述若干测试项对应的多线程测试任务并执行对应测试。
在以上方案中,基于序列化调度策略,异步有序创建多线程测试任务及调度其并发执行,避免了多线程测试任务死锁,提高了系统稳定性以及测试效率。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图2,图2是本申请一实施例提供的一种存储设备测试方法的流程图,所述方法应用于与存储设备相连通信的测试设备,上述方法执行以下步骤:
步骤202、接收用户针对所述存储设备的启动测试指令;其中,所述启动测试指令至少包括所述存储设备的产品型号。
步骤204、响应于所述启动测试指令,生成与所述产品型号匹配对应的序列化调度策略;其中,所述序列化调度策略至少包括存在依赖关系的若干测试项。
步骤206、创建与所述若干测试项对应的多线程测试任务并执行对应测试。
在本说明书中,上述存储设备可以包括集成有存储控制器的任意形式的设备。例如,在实际应用中,上述存储设备具体可以包括集成有单存储控制器的单磁盘柜的设备,也可以包括集成有多存储控制器的多磁盘柜的设备。
在本说明书中,上述测试设备,可以包括针对上述存储设备执行测试程序的任意形式的设备。例如,在实际应用中,上述测试设备具体可以包括PC、服务器等。
在本说明书中,上述测试设备与上述存储设备相连通信。例如,在实际应用中,上述测试设备具体可以通过网口、串口、JTAG(Joint Test Action Group,联合测试工作组)接口、SAS(Serial Attached SCSI、Serial Attached SCSI))接口等接口协议,与上述存储设备相连通信。
在本说明书中,上述启动测试指令,是指上述测试设备针对上述存储设备执行包括若干测试项的测试套的启动指令。
在实现时,基于上述测试设备提供的人机界面,用户可以选择与上述存储设备对应的测试套;其中,该测试套包括若干测试项。
例如,上述存储设备对应的测试套可以包括针对上述存储设备的各种硬件接口及存储介质的若干硬件测试项,还可以包括针对上述存储设备的RAID(Redundant Arrays ofIndependent Drives,磁盘阵列)、LUN(存储卷)的增、删、改、查等操作的若干软件测试项。
在本说明书中,在选择好与上述存储设备对应的测试套后,用户通过上述测试设备提供的人机交互界面,可以启动上述存储设备对应的测试套的测试执行。
在本本说明书中,上述产品型号,是指用于区分上述存储产品类型的产品标识。
例如,上述产品型号可以为MS3000或MS5000;其中,产品型号为MS3000的存储设备与产品型号为MS5000的存储设备在软硬件功能存在差别。
需要说明的是,上述测试设备可以通过上述存储设备的产品型号,来区分上述存储设备对应的测试套。
在本说明书中,进一步地,当用户启动上述存储设备对应的测试套的测试执行后,上述测试设备接收用户针对上述存储设备的启动测试指令;其中,上述启动测试指令至少包括上述产品型号。
例如,上述测试设备为产品型号为MS3000的存储设备选择的是与MS3000软硬件功能匹配的MS3000测试套;上述测试设备为产品型号为MS5000的存储设备选择的是与MS5000软硬件功能匹配的MS5000测试套。
在本说明书中,上述多线程测试任务,是指与上述产品型号匹配对应测试套的若干测试项对应的多个测试线程。
接着以上示例继续举例,上述产品型号例如为MS3000,与上述产品型匹配对应测试套为MS3000测试套;MS3000测试套中包括100个测试项,该100个测试项的编号分别为1、2、3...100,则上述测试设备将会为该100个测试项分别创建对应100个测试线程,用于完成该100个测试项的测试任务,也即一个测试项对应一个测试线程。
在本说明书中,上述序列化调度策略,是指上述测试设备在上述多线程测试任务并发执行过程中,控制不同线程执行先后顺序的策略配置文件;上述序列化调度策略至少包括存在依赖关系的若干测试项。
接着以上示例继续举例,与MS3000测试套对应的MS3000序列化调度策略,保存有MS3000测试套中的编号分别为1、2、3...100的100个测试项;其中,该100个测试项对应线程执行先后顺序(也即依赖关系)在MS3000序列化调度策略中保存。
在示出的一种实施方式中,上述序列化调度策略为基于XML的配置文件。
接着以上示例继续举例,在实现时,上述序列化调度策略,请参见如下配置1说明:
<RunStrategy sp="-1"ep="0"/>
<RunStrategy sp="0"ep="63"/>
<RunStrategy sp="63"ep="20"/>
<RunStrategy sp="20"ep="3"/>
...
<RunStrategy sp="66"ep="100"/>
<RunStrategy sp="100"ep="50"/>
<RunStrategy sp="50"ep="51"/>
配置1
如配置1所示例的上述序列化调度策略,sp的对应值,代表运行顺序在先的线程对应的“测试项”;ep的对应值,代表运行顺序在后的线程对应的“测试项”,也即ep代表的“测试项”依赖于sp代表的“测试项”。比如:MS3000测试套中的编号为20的测试项对应执行RAID创建,MS3000测试套中的编号为3的测试项对应执行在RAID上的卷创建,则编号为20的测试项依赖于编号为3的测试项。上述序列化调度策略存在若干条类似以上依赖关系的测试项对,被称为“存在依赖关系的若干测试项”。
当然,上述序列化调度策略除基于XML配置实现外,还可以基于其它方式实现,在本说明书中,不作限定。
在本说明书中,上述若干测试项,是指上述序列化调度策略存在若干条类似以上依赖关系的测试项。
接着以上示例继续举例,上述若干测试项例如为如以上“配置1”中所示的若干测试项。
在示出的一种实施方式中,在上述序列化调度策略生成之前,上述测试设备检查与上述若干测试项对应的测试脚本是否已准备好;若否,则给出脚本异常的提示,中止测试执行。
接着以上示例继续举例,在生成与产品型号为MS3000匹配的上述存储设备的对应的如以上“配置1”所示内容的上述序列化调度策略前,上述测试设备检查与“配置1”中所示的若干测试项(上述若干测试项)对应的测试脚本是否已准备好。需要说明的是,上述若干测试项分别对应若干测试脚本,每个测试脚本都包含对应测试项的相关脚本程序、测试输入数据以及测试结果检查数据等。通常上述若干测试脚本都保存在公共的测试文件夹中,可以通过文件共享方式被上述测试设备访问。如果上述若干测试项中的一测试项对应测试脚本未被拷贝或拷贝错误,也即,该测试项对测试脚本未准备好,则上述测试设备给出与该测试项对应脚本异常的提示,中止该测试项的测试执行。
在本说明书中,在接收到上述启动测试指令后,响应于上述启动测试指令,上述测试设备生成与上述产品型号匹配对应的序列化调度策略;
接着以上示例继续举例,在接收到上述产品型号为MS3000的上述启动测试指令后,上述测试设备生成与产品型号为MS3000匹配的上述存储设备的对应的上述序列化调度策略。
在本说明书中,在生成与上述产品型号匹配对应的上述序列化调度策略后,上述测试设备创建与上述若干测试项对应的多线程测试任务并执行对应测试。
接着以上示例继续举例,在生成与产品型号为MS3000匹配的上述存储设备的对应的如以上“配置1”所示内容的上述序列化调度策略后,上述测试设备创建与如以上“配置1”中所示的若干测试项(上述若干测试项)对应的多线程测试任务并执行对应测试,也即上述测试设备创建100个线程,该100个线程分别与上述序列化调度策略中的编号分别为1、2、3...100的100个测试项一一对应。在实现时,一个测试项对应一个线程,每个线程对应一个线程的RUN函数。
在示出的一种实施方式中,上述测试设备通过异步调用机制,创建与上述若干测试项对应的多线程测试任务。
接着以上示例继续举例,上述测试设备通过异步调用机制创建上述序列化调度策略对应的100个线程。为了方便理解,这里介绍下异步调用机制,异步是相对同步而言,在异步调用机制实现中,主线程不需要同步等待子线程的运行结果后,再执行下一步程序动作,也即主线程异步调用另一个子线程执行业务处理后,而与此同时主线程继续处理自己的业务。
在本说明书中,进一步地,上述测试设备基于上述若干测试项之间的依赖关系,生成与上述多线程测试任务执行顺序对应的线程状态树。
接着以上示例继续举例,上述测试设备基于如以上“配置1”所示的上述序列化调度策略中的100个测试项之间的依赖关系,生成与上述多线程测试任务执行顺序对应的线程状态树。如“配置1”所示,编号为“sp=-1”代表为初始值,100个测试项对应100个线程执行顺序(线程状态树)依次为:0(对应线程句柄1)、63(对应线程句柄2)、20(对应线程句柄3)、3(对应线程句柄4)、...66(对应线程句柄97)、100(对应线程句柄98)、50(对应线程句柄99)、51(对应线程句柄100)。
在示出的一种实施方式,上述线程状态树为二叉树。当然,在实现时,上述线程状态树也可以基于多叉树或图计算中的图(一种重要的数据结构,它能充分表达自然界中事物的联系和依赖属性)来实现,当使用二叉树或多叉树时,可以按照树的层次进行遍历快速查找上述若干测试项对应上述多线程的执行顺序。
在本说明,进一步地,上述测试设备基于上述线程状态树,调度上述多线程测试任务执行对应测试。
接着以上示例继续举例,基于上述线程状态树,上述测试设备在调度与上述若干测试项对应的上述多线程测试任务执行对应测试项的测试时,上述测试设备先创建编号为0的测试项对应的线程,并获取其对应线程句柄为“线程句柄1”;接着是编号为63的测试项的线程,并获取其对应线程句柄为“线程句柄2”、编号为20的测试项的线程,并获取其对应线程句柄为“线程句柄3”、编号为3的测试项的线程,并获取其对应线程句柄为“线程句柄4”、...编号为66的测试项的线程,并获取其对应线程句柄为“线程句柄97”、编号为100的测试项的线程,并获取其对应线程句柄为“线程句柄98”、编号为50的测试项的线程,并获取其对应线程句柄为“线程句柄99”、编号为51的测试项的线程,并获取其对应线程句柄为“线程句柄100”。当以上100个线程在执行对应测试过程中,由于其执行前后具有先后顺序,基于上述线程状态树,避免了原有的无序的多线程并发状态,避免了多线程测试任务死锁。
在本说明书中,在与上述若干测试项对应的上述多线程测试任务完成对应测试后,上述测试设备返回与上述若干测试项对应的上述多线程测试任务的测试结果。
接着以上示例继续举例,上述测试设备检查100个线程(上述多线程测试任务)执行情况,当其中一个测试项对应线程测试任务完成后,上述测试设备基于人机交互界面,将该测试项对应测试结果展现给用户,比如:针对该测试项,可以存在以下三种情况:“测试成功”使用绿色指示、“测试失败”使用红色指示、“测试终止”使用橙色指示。
在以上技术方案中,基于序列化调度策略,异步有序创建多线程测试任务及调度其并发执行,避免了多线程测试任务死锁,提高了系统稳定性以及测试效率。
与上述方法实施例相对应,本申请还提供了存储设备测试装置的实施例。
与上述方法实施例相对应,本说明书还提供了一种存储设备测试装置的实施例。本说明书的存储设备测试装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本说明书的存储设备测试装置所在电子设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图4是本说明书一实施例示出的一种存储设备测试装置的框图。
请参考图4,所述存储设备测试装置40可以应用在前述图4所示的电子设备中,所述装置应用于与存储设备相连通信的测试设备,所述装置包括:
接收模块401,接收用户针对所述存储设备的启动测试指令;其中,所述启动测试指令至少包括所述存储设备的产品型号;
创建模块402,响应于所述启动测试指令,生成与所述产品型号匹配对应的序列化调度策略;其中,所述序列化调度策略至少包括存在依赖关系的若干测试项;
测试模块403,创建与所述若干测试项对应的多线程测试任务并执行对应测试。
在本实施例中,在所述序列化调度策略生成之前,所述创建模块402进一步:
检查与所述若干测试项对应的测试脚本是否已准备好;若否,则给出脚本异常的提示,中止测试执行。
在本实施例中,所述测试模块403进一步:
通过异步调用机制,创建与所述若干测试项对应的多线程测试任务;
基于所述若干测试项之间的依赖关系,生成与所述多线程测试任务执行顺序对应的线程状态树;
基于所述线程状态树,调度所述多线程测试任务执行对应测试。
在本实施例中,所述序列化调度策略为基于XML的配置文件。
在本实施例中,所述线程状态树为二叉树。
在本实施例中,所述测试模块403进一步:
返回与所述若干测试项对应的所述多线程测试任务的测试结果。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。所述电子设备可以应用于存储设备相连通信的测试设备;该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与存储设备测试逻辑对应的机器可执行指令,所述处理器被促使:
接收用户针对所述存储设备的启动测试指令;其中,所述启动测试指令至少包括所述存储设备的产品型号;
响应于所述启动测试指令,生成与所述产品型号匹配对应的序列化调度策略;其中,所述序列化调度策略至少包括存在依赖关系的若干测试项;
创建与所述若干测试项对应的多线程测试任务并执行对应测试。
在本实施例中,在所述序列化调度策略生成之前,通过读取并执行所述存储器存储的与存储设备测试逻辑对应的机器可执行指令,所述处理器被促使:
检查与所述若干测试项对应的测试脚本是否已准备好;若否,则给出脚本异常的提示,中止测试执行。
在本实施例中,通过读取并执行所述存储器存储的与存储设备测试逻辑对应的机器可执行指令,所述处理器被促使:
通过异步调用机制,创建与所述若干测试项对应的多线程测试任务;
基于所述若干测试项之间的依赖关系,生成与所述多线程测试任务执行顺序对应的线程状态树;
基于所述线程状态树,调度所述多线程测试任务执行对应测试。
在本实施例中,通过读取并执行所述存储器存储的与存储设备测试逻辑对应的机器可执行指令,所述处理器被促使:
返回与所述若干测试项对应的所述多线程测试任务的测试结果。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (14)
1.一种存储设备测试方法,其特征在于,所述方法应用于与存储设备相连通信的测试设备,所述方法包括:
接收用户针对所述存储设备的启动测试指令;其中,所述启动测试指令至少包括所述存储设备的产品型号;
响应于所述启动测试指令,生成与所述产品型号匹配对应的序列化调度策略;其中,所述序列化调度策略至少包括存在依赖关系的若干测试项;
创建与所述若干测试项对应的多线程测试任务并执行对应测试。
2.根据权利要求1所述的方法,其特征在于,在所述序列化调度策略生成之前,还包括:
检查与所述若干测试项对应的测试脚本是否已准备好;若否,则给出脚本异常的提示,中止测试执行。
3.根据权利要求1所述的方法,其特征在于,所述创建与所述若干测试项对应的多线程测试任务并执行对应测试,包括:
通过异步调用机制,创建与所述若干测试项对应的多线程测试任务;
基于所述若干测试项之间的依赖关系,生成与所述多线程测试任务执行顺序对应的线程状态树;
基于所述线程状态树,调度所述多线程测试任务执行对应测试。
4.根据权利要求1所述的方法,其特征在于,所述序列化调度策略为基于XML的配置文件。
5.根据权利要求3所述的方法,其特征在于,所述线程状态树为二叉树。
6.根据权利要求1所述的方法,其特征在于,还包括:
返回与所述若干测试项对应的所述多线程测试任务的测试结果。
7.一种存储设备测试装置,其特征在于,所述装置应用于与存储设备相连通信的测试设备,所述装置包括:
接收模块,接收用户针对所述存储设备的启动测试指令;其中,所述启动测试指令至少包括所述存储设备的产品型号;
创建模块,响应于所述启动测试指令,生成与所述产品型号匹配对应的序列化调度策略;其中,所述序列化调度策略至少包括存在依赖关系的若干测试项;
测试模块,创建与所述若干测试项对应的多线程测试任务并执行对应测试。
8.根据权利要求7所述的装置,其特征在于,在所述序列化调度策略生成之前,所述创建模块进一步:
检查与所述若干测试项对应的测试脚本是否已准备好;若否,则给出脚本异常的提示,中止测试执行。
9.根据权利要求7所述的装置,其特征在于,所述测试模块进一步:
通过异步调用机制,创建与所述若干测试项对应的多线程测试任务;
基于所述若干测试项之间的依赖关系,生成与所述多线程测试任务执行顺序对应的线程状态树;
基于所述线程状态树,调度所述多线程测试任务执行对应测试。
10.根据权利要求7所述的装置,其特征在于,所述序列化调度策略为基于XML的配置文件。
11.根据权利要求9所述的装置,其特征在于,所述线程状态树为二叉树。
12.根据权利要求7所述的装置,其特征在于,所述测试模块进一步:
返回与所述若干测试项对应的所述多线程测试任务的测试结果。
13.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行如权利要求1至6任一项所述的方法。
14.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910563043.3A CN110289043B (zh) | 2019-06-26 | 2019-06-26 | 存储设备测试方法、装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910563043.3A CN110289043B (zh) | 2019-06-26 | 2019-06-26 | 存储设备测试方法、装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110289043A true CN110289043A (zh) | 2019-09-27 |
CN110289043B CN110289043B (zh) | 2021-04-27 |
Family
ID=68006196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910563043.3A Active CN110289043B (zh) | 2019-06-26 | 2019-06-26 | 存储设备测试方法、装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110289043B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114339831A (zh) * | 2021-12-17 | 2022-04-12 | 太仓市同维电子有限公司 | 一种无线套装设备的生产配对测试方法 |
CN114812695A (zh) * | 2022-06-27 | 2022-07-29 | 芯耀辉科技有限公司 | 一种产品测试方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833498A (zh) * | 2009-07-31 | 2010-09-15 | 北京伟晨豪嘉科技有限责任公司 | 一种基于测试脚本技术的嵌入式系统自动化检测系统 |
US7814378B2 (en) * | 2007-05-18 | 2010-10-12 | Oracle America, Inc. | Verification of memory consistency and transactional memory |
CN103077135A (zh) * | 2012-12-31 | 2013-05-01 | 中国电子科技集团公司第四十一研究所 | 一种支持并行测试的测试资源管理方法 |
CN106021100A (zh) * | 2016-05-12 | 2016-10-12 | 中国电子科技集团公司第四十研究所 | 一种支持并行测试的测试任务运行调度方法 |
CN107315665A (zh) * | 2017-06-07 | 2017-11-03 | 深圳市鼎盛光电有限公司 | 一种多媒体板卡的检测方法及其装置 |
CN109581106A (zh) * | 2018-11-28 | 2019-04-05 | Oppo(重庆)智能科技有限公司 | 测试设备控制方法、装置、系统和电子设备 |
-
2019
- 2019-06-26 CN CN201910563043.3A patent/CN110289043B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7814378B2 (en) * | 2007-05-18 | 2010-10-12 | Oracle America, Inc. | Verification of memory consistency and transactional memory |
CN101833498A (zh) * | 2009-07-31 | 2010-09-15 | 北京伟晨豪嘉科技有限责任公司 | 一种基于测试脚本技术的嵌入式系统自动化检测系统 |
CN103077135A (zh) * | 2012-12-31 | 2013-05-01 | 中国电子科技集团公司第四十一研究所 | 一种支持并行测试的测试资源管理方法 |
CN106021100A (zh) * | 2016-05-12 | 2016-10-12 | 中国电子科技集团公司第四十研究所 | 一种支持并行测试的测试任务运行调度方法 |
CN107315665A (zh) * | 2017-06-07 | 2017-11-03 | 深圳市鼎盛光电有限公司 | 一种多媒体板卡的检测方法及其装置 |
CN109581106A (zh) * | 2018-11-28 | 2019-04-05 | Oppo(重庆)智能科技有限公司 | 测试设备控制方法、装置、系统和电子设备 |
Non-Patent Citations (1)
Title |
---|
曹倩: "《异构多核任务模型优化技术》", 31 May 2013, 国防工业出版社 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114339831A (zh) * | 2021-12-17 | 2022-04-12 | 太仓市同维电子有限公司 | 一种无线套装设备的生产配对测试方法 |
CN114339831B (zh) * | 2021-12-17 | 2024-03-22 | 太仓市同维电子有限公司 | 一种无线套装设备的生产配对测试方法 |
CN114812695A (zh) * | 2022-06-27 | 2022-07-29 | 芯耀辉科技有限公司 | 一种产品测试方法、装置、计算机设备和存储介质 |
CN114812695B (zh) * | 2022-06-27 | 2022-10-28 | 芯耀辉科技有限公司 | 一种产品测试方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110289043B (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106649084B (zh) | 函数调用信息的获取方法及装置、测试设备 | |
US7779016B2 (en) | Parallel execution of operations for a partitioned binary radix tree on a parallel computer | |
Alur et al. | Model-checking of correctness conditions for concurrent objects | |
KR101758670B1 (ko) | 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템 | |
US8863096B1 (en) | Parallel symbolic execution on cluster of commodity hardware | |
Buttlar et al. | Pthreads programming: A POSIX standard for better multiprocessing | |
US7277827B2 (en) | Device testing framework for creating device-centric scenario-based automated tests | |
US20090260011A1 (en) | Command line transactions | |
JP7394211B2 (ja) | スマートコントラクトの並行実行の方法、装置、機器、及び媒体 | |
EP2854094A1 (en) | System and method for a high-performance graph analytics engine | |
CN109791492B (zh) | 流水线相关树查询优化器和调度器 | |
US20040024863A1 (en) | Method, system, and program for discovering components within a network | |
CN108459961A (zh) | 一种测试用例测试失败后重测试的方法、客户端及服务器 | |
CN110289043A (zh) | 存储设备测试方法、装置、电子设备 | |
EP2176753A1 (en) | Concurrent exception handling | |
US11467946B1 (en) | Breakpoints in neural network accelerator | |
US20080320275A1 (en) | Concurrent exception handling | |
US20140067904A1 (en) | Selection of transaction managers based on runtime data | |
CN110347735A (zh) | 配置化的数据转发异常补处理方法、装置及可读存储介质 | |
US20230097765A1 (en) | Pseudorandom Thread Generation | |
CN106991116A (zh) | 数据库执行计划的优化方法和装置 | |
US9038077B1 (en) | Data transfer protection in a multi-tasking modeling environment | |
US20120159247A1 (en) | Automatically changing parts in response to tests | |
CN109388390A (zh) | 一种小程序预览码生成方法、设备及存储介质 | |
CN101937387B (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 |