本发明涉及测试技术领域,特别是涉及一种连续测试方法、装置及存储介质。
背景技术:
在服务器测试过程中,通常需要进行多种测试以测试服务器的各个功能模块是否运行正常。一个通常的测试规划是,服务器顺序执行一个测试序列,在测试序列中包括多种测试,例如硬盘性能测试、电源测试和可靠性测试等。
然而,发明人通过研究发现,在执行服务器测试过程中,不同测试的测试时间长短不一,很难精确判断,这样导致的问题是:一种测试可能在凌晨等非工作时间完成,技术人员无法及时启动测试序列中的后续测试,而只有等到技术人员在工作时间内发现测试完成后,才进行启动后续测试,此时已经浪费了大量的测试时间,从而导致测试效率低下。
因此,如何提高测试效率是本领域技术人员亟需解决的技术问题。
技术实现要素:
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种连续测试方法、装置及存储介质,用于解决现有技术中测试效率低的问题。
为实现上述目的及其他相关目的,根据本发明的第一方面,本发明实施例提供一种连续测试方法,该方法包括以下步骤:
确定目标测试的测试类型;
当目标测试的测试状态与测试类型对应的判据一致时,判断目标测试结束;
如果目标测试结束,从备选测试集中选择出新的目标测试,并执行。
可选地,所述确定目标测试的测试类型,包括:
获取目标测试的测试标识;
通过匹配测试标识与测试类型的参考标识,确定目标测试的测试类型。
可选地,当目标测试的测试类型为持续类型时,所述持续类型用于描述目标测试在测试过程中测试进程常驻内存中,所述判断目标测试结束包括:
获取第一进程信息;
当目标测试的测试进程不存在于所述第一进程信息中时,判断目标测试结束。
可选地,当目标测试的测试类型为持续类型时,所述持续类型用于描述目标测试在测试过程中测试进程常驻内存中,所述判断目标测试结束包括:
获取第二进程信息;
当目标测试的测试进程不存在于所述第二进程信息中时,间隔第一时间获取第三进程信息;
当目标测试的测试进程不存在于所述第三进程信息中时,判断目标测试结束。
可选地,当目标测试的测试类型为循环类型时,所述循环类型用于描述目标测试在测试过程中循环占用内存,所述判断目标测试结束包括:
获取目标测试的循环次数;
当所述循环次数等于阈值时,判断目标测试结束。
可选地,当目标测试的测试类型为循环类型时,所述循环类型用于描述目标测试在测试过程中循环占用内存,所述判断目标测试结束包括:
获取自启动控制文件,所述自启动控制文件用于控制循环启动时执行的目标测试;
当目标测试不存在于所述自启动控制文件时,判断目标测试结束。
可选地,所述在判断目标测试结束后,从备选测试集中选择出新的目标测试,并执行,包括:
在所述判断目标测试结束后,间隔第二时间,从备选测试集中选择出新的目标测试,并执行。
根据本发明的第二方面,本发明实施例还提供一种连续测试装置,该装置包括:
类型确定模块,用于确定目标测试的测试类型;
判断模块,用于当目标测试的测试状态与测试类型对应的判据一致时,判断目标测试结束;
执行模块,用于在判断目标测试结束后,从备选测试集中选择出新的目标测试,并执行。
可选地,所述判断模块用于,
当目标测试的测试类型为持续类型时,所述持续类型用于描述目标测试在测试过程中测试进程常驻内存中,获取第一进程信息;当目标测试的测试进程不存在于所述第一进程信息中时,判断目标测试结束;
或者,
当目标测试的测试类型为持续类型时,所述持续类型用于描述目标测试在测试过程中测试进程常驻内存中,获取第二进程信息;当目标测试的测试进程不存在于所述第二进程信息中时,间隔第一时间获取第三进程信息;当目标测试的测试进程不存在于所述第三进程信息中时,判断目标测试结束;
或者,
当目标测试的测试类型为循环类型时,所述循环类型用于描述目标测试在测试过程中循环占用内存,获取目标测试的循环次数;当所述循环次数等于阈值时,判断目标测试结束;
或者,
当目标测试的测试类型为循环类型时,所述循环类型用于描述目标测试在测试过程中循环占用内存,获取自启动控制文件,所述自启动控制文件用于控制循环启动时执行的目标测试;当目标测试不存在于所述自启动控制文件时,判断目标测试结束。
根据本发明的第三方面,本发明实施例还提供一种存储介质,所述存储介质存储有可执行的指令,用于执行上述方法实施例所描述的连续测试方法。
如上所述,本发明实施例提供的一种连续测试方法、装置及存储介质,具有以下有益效果:通过确定目标测试的测试类型;当目标测试的测试状态与测试类型对应的判据一致时,判断目标测试结束;如果目标测试结束,从备选测试集中选择出新的目标测试,并执行。本发明实施例提供的方法能够准确判断目标测试是否结束,并在目标测试结束后,继续执行备选测试集中的其他测试,从而连续地完成整个测试项目,避免了测试人员的干预,有效提高了测试效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种连续测试方法的流程示意图;
图2是本发明实施例提供的一种测试类型确定方法的流程示意图;
图3是本发明实施例二提供的一种连续测试方法的流程示意图;
图4是本发明实施例三提供的一种连续测试方法的流程示意图;
图5是本发明实施例四提供的一种连续测试方法的流程示意图;
图6是本发明实施例五提供的一种连续测试方法的流程示意图;
图7是本发明实施例提供的一种连续测试装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
请参阅图1至图7。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
参见图1,是本发明实施例一提供的一种连续测试方法的流程示意图。如图1所示,所述连续测试方法包括以下步骤:
步骤s101:确定目标测试的测试类型。
为了实施连续测试,在本发明实施例中,可以建立备选测试集,所述备选测试集可以为数据库、数组或者列表的形式,在本发明实施例中不做限定。所述备选测试集中的元素可以为连续测试的脚本名称,或者为连续测试的测试名称,这样处理器可以读取和/或解析所述备选测试集,通过调用相应的脚本等程序执行相应的目标测试。而且,所述备选测试集中的元素可以按照固定的顺序排列,以表征目标测试的执行顺序。
在对服务器等计算机终端进行测试的过程中,可能需要连续地进行多种测试。在一示例性实施例中,目标测试的测试类型可以包括持续类型和循环类型。其中,所述持续类型的测试可以理解为,在测试进行时,测试进程常驻内存中的测试;通常的持续类型的测试可以为可靠性测试,即保持计算机长时间运行状态下测试功能或性能,还可以为硬盘等部件的性能测试,在一段时间内保持对硬盘等部件的读写操作进而测试部件性能。所述循环类型的测试可以理解为,在测试进行时,测试进程不是持续驻留在内存中,而是以循环的方式,占用和释放内存;通常的循环类型的测试可以为重启测试,通过对计算机多次的重新启动,测试其功能是否正常。
为了确定目标测试的测试类型,在具体实施时,参见图2,是本发明实施例提供的一种测试类型确定方法的流程示意图。如图2所示,本发明实施例示出了确定测试类型的过程:
步骤s1011:获取目标测试的测试标识。
在一示例性实施例中,所述测试标识可以理解为目标测试所需要执行的脚本名称。当目标测试为硬盘性能测试时,所述测试标识可以为“comptest”;或者,当目标测试为重启测试时,所述测试标识可以为“reboot”;或者,当目标测试为可靠性测试时,所述测试标识可以为“longtime”等。当然需要说明的是,上述实施例仅是一示例性实施例,本领域技术人员可以根据实际测试需要,定义相应的测试标识。
步骤s1012:通过匹配测试标识与测试类型的参考标识,确定目标测试的测试类型。
在具体实施时,可以建立测试类型与参考标识对应的列表,在该列表中可以描述测试类型,以及该测试类型对应的参考标识对应关系。在一示例性实施例中,所述列表可以为{持续类型:longtime,comptest;循环类型:reboot};这样持续类型对应的参考标识为“longtime”和“comptest”,循环类型的参考标识为“reboot”。
根据步骤s1011得到的测试标识,通过一一比对所述测试标识与所述参考标识,可以确定相应的测试类型。在一示例性实施例中,当测试标识为“longtime”,其对应的参考标识为“longtime”,进一步对应的测试类型为持续类型。
步骤s102:当目标测试的测试状态与测试类型对应的判据一致时,判断目标测试结束。
由于不同类型的目标测试的测试过程的差异,在判断目标测试是否完成时,使用不同的判据。在一示例性实施例中,当目标测试的测试类型为持续类型性,则判断该持续类型的测试是否结束的判据可以为判断内存中是否还驻留有该目标测试的进程;当目标测试的测试类型为循环类型时,则可以通过检测是否达到循环次数的方式,判断目标测试是否结束。
步骤s103:如果目标测试结束,从备选测试集中选择出新的目标测试,并执行。
根据步骤s102的判断,当目标测试结束时,从备选测试集中选出新的目标测试,并通过调用相应的脚本程序和/或子函数的继续执行测试,直到完成所有的测试。
在具体实施时,由于目标测试可能需要计算时间进行数据的收集和处理,因此,在一示例性实施例中,可以在判断目标测试结束后,间隔第二时间,从备选测试集中选择出新的目标测试,并执行。
由上述实施例的描述可见,本发明实施例提供的一种连续测试方法,通过确定目标测试的测试类型;当目标测试的测试状态与测试类型对应的判据一致时,判断目标测试结束;如果目标测试结束,从备选测试集中选择出新的目标测试,并执行。本发明实施例提供的方法能够准确判断目标测试是否结束,并在目标测试结束后,继续执行备选测试集中的其他测试,从而连续地完成整个测试项目,避免了测试人员的干预,有效提高了测试效率。
参见图3,是本发明实施例二提供的一种连续测试方法的流程示意图。如图3所示,该方法包括以下步骤:
步骤s201:确定目标测试的测试类型。
步骤s202:当目标测试的测试类型为持续类型时,获取第一进程信息。
当确定目标测试的测试类型为持续类型时,这样需要判断目标测试的测试进程是否存在于系统进程中,进而确定该目标测试是否结束。
在一示例性实施中,可以通过调用“top”或“ps”等系统命令获取系统的第一进程信息,该第一进程信息可以描述正在占用系统内存、并执行的所有应用程序的进程信息;进一步,如果当前正在执行的目标测试为可靠性测试,该可靠性测试调用测试标识为“longtime”的脚本或子程序,则该第一进程信息中可以包括测试标识“longtime”,从而描述可靠性测试当前占用系统内存且正在执行。
步骤s203:当目标测试的测试进程不存在于所述第一进程信息中时,判断目标测试结束。
根据步骤s202的描述,当目标测试为可靠性测试,而在获取到的第一进程信息中包括相应的测试标识“longtime”时,则判断目标测试正在执行;当遍历第一进程信息,无法在第一进程信息中匹配检索出测试标识“longtime”时,则判断目标测试结束。
步骤s204:如果目标测试结束,从备选测试集中选择出新的目标测试,并执行。
本发明实施例与上述实施例相同之处,可参见上述实施例的描述,在此不再赘述。
由上述实施例的描述可见,本发明实施例提供的一种连续测试方法,在目标测试持续类型测试的情况下,通过系统进程信息的判断,从而可以精确判断目标测试的结束时间,并在目标测试结束后,迅速执行下一测试项目,有效缩短了两个测试项目之间的时间间隔,从而提高测试效率。
参见图4,是本发明实施例三提供的一种连续测试方法的流程示意图。如图4所示,该方法包括以下步骤:
步骤s301:确定目标测试的测试类型。
步骤s302:当目标测试的测试类型为持续类型时,获取第二进程信息。
所述第二进程信息同样可以为描述正在占用系统内存、并执行的所有应用程序的进程信息。
步骤s303:当目标测试的测试进程不存在于所述第二进程信息中时,间隔第一时间间隔获取第三进程信息。
所述第一时间间隔可以根据测试的需求配置为任意数值,在本发明实施例中不做限定。在一示例性实施例中,所述第一时间间隔可以为1至10分钟。所述第三进程信息也同样可以为描述正在占用系统内存、并执行的所有应用程序的进程信息。
步骤s304:当目标测试的测试进程不存在于所述第三进程信息中时,判断目标测试结束。
步骤s305:如果目标测试结束,从备选测试集中选择出新的目标测试,并执行。
本发明实施例与上述实施例相同之处,可参见上述实施例的描述,在此不再赘述。
由上述实施例的描述可见,本发明实施例提供的一种连续测试方法,由于执行目标测试的脚本程序在运行过程中,可能由于硬件或者系统资源分配的原因被暂时中断,在这种应用场景下,通过第二进程信息,以及与第二进程信息具有时间间隔的第三进程信息的结合,判断目标测试是否结束,能够有效提高测试精度,并保证连续测试的顺利执行。
参见图5,是本发明实施例四提供的一种连续测试方法的流程示意图。如图5所示,该方法包括以下步骤:
步骤s401:确定目标测试的测试类型。
步骤s402:当目标测试的测试类型为循环类型时,获取目标测试的循环次数。
在一示例性实施例中,当目标测试为重启测试时,重启测试可以通过输出日志文件的方式记录循环次数。这样,进一步,可以从日志文件读取到循环类型的目标测试的循环次数。
步骤s403:当所述循环次数等于阈值时,判断目标测试结束。
步骤s404:如果目标测试结束,从备选测试集中选择出新的目标测试,并执行。
本发明实施例与上述实例的相同之处,可参见上述实施例的描述,在此不再赘述。
由上述实施例的描述可见,本发明实施例提供的一种连续测试方法,根据循环次数判断循环类型的目标测试是否结束,从而能够准确判断目标测试的结束时机,并缩短两个测试项目之间的时间间隔,从而提高测试效率。
参见图6,是本发明实施例五提供的一种连续测试方法的流程示意图。如图6所示,该方法包括以下步骤:
步骤s501:确定目标测试的测试类型。
步骤s502:当目标测试的测试类型为循环类型时,获取自启动控制文件,所述自启动控制文件用于控制循环启动时执行的目标测试。
在一示例性实施例中,当目标测试为重启测试时,可以将重启测试需要使用的测试脚本写入自启动控制文件中,这样每次系统启动后,可以自动读取自启动控制文件,并执行自启动控制文件中描述的程序,通过这种配置可以对服务器等计算机终端进行多次重启的测试。当最后一次循环结束后,目标测试脚本可以从自启动控制文件中删除目标测试所对应的项目,从而使得系统在下次重启后,不会在执行该目标测试,即该目标测试结束。
步骤s503:当目标测试不存在于所述自启动控制文件时,判断目标测试结束。
根据步骤s502的描述,可以读取自启动控制文件,如果自启控制文件中依然包括目标测试对应的测试标识,表示该测试标识对应的目标测试,还会在下次系统重启后执行,可以判断目标测试未结束;如果自启控制文件中不存在测试标识时,表示该测试标识对应的目标测试,不会在下次系统重启后执行,可以判断目标测试结束。
步骤s504:如果目标测试结束,从备选测试集中选择出新的目标测试,并执行。
本发明实施例与上述实施例相同之处,可参见上述实施例的描述,在此不再赘述。
由上述实施例的描述可见,本发明实施例提供的一种连续测试方法,根据自启控制文件判断目标测试的状态,能够有效提高判断精度,进而减少两次测试之间的间隔时间,提高测试效率。
通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(rom)、随机存取存储器(ram)、磁碟或者光盘等各种可以存储程序代码的介质。
与本发明提供的网络服务的控制方法实施例相对应,本发明还提供了一种网络服务的控制装置。
参见图7,是本发明实施例提供的一种连续测试装置的结构示意图,如图7所示,该装置包括:
类型确定模块11,用于确定目标测试的测试类型;
判断模块12,用于当目标测试的测试状态与测试类型对应的判据一致时,判断目标测试结束;
执行模块13,用于在判断目标测试结束后,从备选测试集中选择出新的目标测试,并执行。
在第一种实施情况下,当目标测试的测试类型为持续类型时,所述持续类型用于描述目标测试在测试过程中测试进程常驻内存中,所述判断模块12用于,
获取第一进程信息;
当目标测试的测试进程不存在于所述第一进程信息中时,判断目标测试结束。
在第二种实施情况下,当目标测试的测试类型为持续类型时,所述判断模块12用于,
获取第二进程信息;
当目标测试的测试进程不存在于所述第二进程信息中时,间隔第一时间获取第三进程信息;
当目标测试的测试进程不存在于所述第三进程信息中时,判断目标测试结束。
在第三种实施情况下,当目标测试的测试类型为循环类型时,所述循环类型用于描述目标测试在测试过程中循环占用内存,所述判断模块12用于,
获取目标测试的循环次数;
当所述循环次数等于阈值时,判断目标测试结束。
在第四种实施情况下,当目标测试的测试类型为循环类型时,所述判断模块12用于,
获取自启动控制文件,所述自启动控制文件用于控制循环启动时执行的目标测试;
当目标测试不存在于所述自启动控制文件时,判断目标测试结束。
在一示例性实施例中,所述执行模块13还可以用于,在所述判断目标测试结束后,间隔第二时间,从备选测试集中选择出新的目标测试,并执行。
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。