本发明涉及物联网技术领域,尤其涉及一种基于物联网定时任务的自动化测试方法及系统。
背景技术:
物联网系统在许多功能方面需要与运营商之间的数据进行同步,同时,物联网卡需要计算计费周期以及对卡进行扣费,出账单,这些功能都需要使用定时任务去执行。所以测试人员需要从各种方面测试定时任务。
定时任务是指在固定时间或固定间隔执行程序,由于测试的时间太长,测试人员在测试的时候需要花费很长时间,如果测试过程中出现问题,而没有及时处理,可能会导致整个测试过程的失败,需要重新测试。现有技术中的另一种测试方法是通过修改服务器时间,即跳跃性的测试,通过修改服务器时间,默认跳过去的时间也进行了测试,从而加快测试进度。但是这种方法是有弊端的,例如测试计费周期功能,修改服务器时间只能保证它在那个时间点符合条件会同步修改计费周期,却无法保证它是否在其他时间中也会同步,修改时间跳过月末临界点的话,无法保证它的正确性。并且,这样的测试方法也只负责在指定的时间点执行,没有考虑到其他时间点是否会有影响。这对于物联网计费周期的测试来讲有很大的弊端,就是无法保证它进入到下一个计费周期的时间是否正确,尤其是月末这种临界值。
技术实现要素:
(一)要解决的技术问题
本发明的目的是提供一种基于物联网定时任务的自动化测试方法,解决了现有技术中的测试方法耗时长和不能保证计费周期的准确性的技术问题。
(二)技术方案
为了解决上述技术问题,一方面,本发明提供一种基于物联网定时任务的自动化测试方法,包括:
获取源时间、基准时间点和时间倍率因子,获取待测试定时任务的路径、开始时间点和结束时间点;
根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间;
根据所述待测试定时任务的路径、开始时间点和结束时间点按照所述虚拟时间执行所述待测试定时任务;
其中,所述源时间为虚拟时间服务器从公有时间服务器同步得到的时间,所述基准时间点为所述虚拟时间服务器开始进入所述虚拟时间的时刻。
进一步地,所述根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间具体为:t=t1+(t0-t1)*k,其中,t为所述虚拟时间,t0为所述源时间,t1为所述基准时间点,k为时间倍率因子,k为大于1的常数。
进一步地,若所述待测试定时任务为重复待测试定时任务,还包括:
获取重复测试所述待测试定时任务的时间间隔和重复次数;
相应的,根据所述待测试定时任务的路径、开始时间点、结束时间点和所述时间间隔按照所述虚拟时间执行所述待测试定时任务。
进一步地,所述开始时间点等于或者晚于所述基准时间点,以确保开始执行所述待测试定时任务时按照所述虚拟时间执行。
另一方面,本发明提供一种基于物联网定时任务的自动化测试系统,包括测试服务器和虚拟时间服务器,所述测试服务器和所述虚拟时间服务器相连;
所述虚拟时间服务器用于获取源时间、基准时间点和时间倍率因子,根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间;
所述测试服务器用于获取待测试定时任务的路径、开始时间点和结束时间点,根据所述待测试定时任务的路径、开始时间点和结束时间点按照所述虚拟时间执行所述待测试定时任务;
其中,所述源时间为所述虚拟时间服务器从公有时间服务器同步得到的时间,所述基准时间点为所述虚拟时间服务器开始进入所述虚拟时间的时刻。
进一步地,所述虚拟时间服务器具体用于按照以下公式根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间:t=t1+(t0-t1)*k,其中,t为所述虚拟时间,t0为所述源时间,t1为所述基准时间点,k为时间倍率因子,k为大于1的常数。
进一步地,若所述待测试定时任务为重复待测试定时任务,所述测试服务器还用于:
获取重复测试所述待测试定时任务的时间间隔和重复次数;
根据所述待测试定时任务的路径、开始时间点、结束时间点和所述时间间隔按照所述虚拟时间执行所述待测试定时任务。
再一方面,本发明提供一种用于基于物联网定时任务的自动化测试的电子设备,包括:
存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述方法。
又一方面,本发明提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述方法。
又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法。
(三)有益效果
本发明提供的基于物联网定时任务的自动化测试方法及系统,通过根据源时间、基准时间点和时间倍率因子计算虚拟时间,待测试定时任务按照虚拟时间进行执行,从而加快了测试进度,并且待测试定时任务执行时虚拟化地经过每个时刻,保证计费周期的准确性。
附图说明
图1为依照本发明实施例的基于物联网定时任务的自动化测试方法的示意图;
图2为依照本发明另一实施例的基于物联网定时任务的自动化测试方法的示意图;
图3为依照本发明实施例的基于物联网定时任务的自动化测试系统的示意图;
图4为本发明实施例提供的用于基于物联网定时任务的自动化测试的电子设备的结构示意图。
具体实施方式
为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
图1为依照本发明实施例的基于物联网定时任务的自动化测试方法的示意图,如图1所示,本发明实施例提供一种基于物联网定时任务的自动化测试方法,包括:
步骤s10、获取源时间、基准时间点和时间倍率因子,获取待测试定时任务的路径、开始时间点和结束时间点;
步骤s20、根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间;
步骤s30、根据所述待测试定时任务的路径、开始时间点和结束时间点按照所述虚拟时间执行所述待测试定时任务;
其中,所述源时间为虚拟时间服务器从公有时间服务器同步得到的时间,所述基准时间点为所述虚拟时间服务器开始进入所述虚拟时间的时刻。
具体的,首先需要获取源时间、基准时间点和时间倍率因子,源时间为虚拟时间服务器从公有时间服务器同步得到的时间,源时间即为标准时间,采用的是网络时间协议(networktimeprotocol,简称ntp),是全球统一的。基准时间点为虚拟时间服务器开始进入虚拟时间的时刻,在设置好基准时间点以后,可以预留一定的时间做其他测试准备,当源时间到达基准时间点时,虚拟时间服务器开始进入虚拟时间,按照设定的虚拟时间进行计时。时间倍率因子是虚拟时间服务器计算虚拟时间的重要参数,通过调节时间倍率因子的大小即可调节虚拟时间计时的快慢。
同时,获取待测试定时任务的路径、开始时间点和结束时间点,待测试定时任务通常是以计算机程序的形式表现出来,待测试定时任务的路径即为与该待测试定时任务对应的计算机程序的保存路径。待测试定时任务的开始时间点即为该待测试定时任务开始执行的时间点,设置好开始时间点后,到达该开始时间点时待测试定时任务将开始执行,待测试定时任务的结束时间点即为该待测试定时任务结束执行的时间点,到达该结束时间点时待测试定时任务将停止执行。
然后,根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间。通过计算,将源时间转换成虚拟时间,并且在基准时间点时按照该虚拟时间计时,时间倍率因子是决定转换后的虚拟时间快慢的参数,时间倍率因子越大,虚拟时间走的也就越快,时间倍率因子越小,虚拟时间走的也就越慢。
最后,根据所述待测试定时任务的路径、开始时间点和结束时间点按照所述虚拟时间执行所述待测试定时任务。到达待测试定时任务的开始时间点时,系统将根据待测试定时任务的路径调取其对应的计算机程序,执行待测试定时任务,并计时,当到达待测试定时任务的结束时间点时将停止待测试定时任务的执行。测试任务完成。
进一步地,所述根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间具体为:t=t1+(t0-t1)*k,其中,t为所述虚拟时间,t0为所述源时间,t1为所述基准时间点,k为时间倍率因子,k为大于1的常数。
具体的,虚拟时间的计算方法根据以下公式进行计算:t=t1+(t0-t1)*k,其中,t为所述虚拟时间,t0为所述源时间,t1为所述基准时间点,k为时间倍率因子,k为大于1的常数。举例来说,获取的基准时间点为10点,时间倍率因子k为10,则系统将根据获取的源时间、基准时间为10点和时间倍率因子k为10在到达10点时刻时进入虚拟时间并开始计时,当前的源时间为10点,通过计算当前的虚拟时间也为10点,当获取到下一个源时间为10点零1秒时,根据所述公式计算出的下一个虚拟时间为10点零10秒。即计算出的虚拟时间走的速度是源时间的10倍,在执行待测试定时任务时所需要的时间为按照源时间进行测试时的1/10,从而缩短了测试时间,并且待测试定时任务执行时虚拟化地经过每个时刻,时间倍率因子是决定转换后的虚拟时间快慢的参数,时间倍率因子越大,虚拟时间走的也就越快,时间倍率因子越小,虚拟时间走的也就越慢。需要说明的是:上述举例中的10点、10点零1秒是日常生活中的表示方式,在系统计算时采用的是网络时间协议规定的时间表示方式,日常生活中的时间表示方式是经过网络时间协议规定的时间表示方式转换得到的。
进一步地,所述开始时间点等于或者晚于所述基准时间点,以确保开始执行所述待测试定时任务时按照所述虚拟时间执行。
具体的,通常我们设置基准时间点等于或早于开始时间点,即当待测试定时任务开始执行的时候就是按照虚拟时间计时的。当然,也可以设置基准时间点晚于开始时间点,这种情况下,待测试定时任务将按照源时间进行执行一段时间,到达基准时间时,再按照虚拟时间执行。
本发明实施例提供的基于物联网定时任务的自动化测试方法,通过根据源时间、基准时间点和时间倍率因子计算虚拟时间,待测试定时任务按照虚拟时间进行执行,从而加快了测试进度,并且待测试定时任务执行时虚拟化地经过每个时刻,保证计费周期的准确性。
实施例2:
本实施例与实施例1基本相同,为了描述的简要,在本实施例的描述过程中,不再描述与实施例1相同的技术特征,仅说明本实施例与实施例1不同之处:
若所述待测试定时任务为重复待测试定时任务,还包括:
获取重复测试所述待测试定时任务的时间间隔和重复次数;
相应的,根据所述待测试定时任务的路径、开始时间点、结束时间点和所述时间间隔按照所述虚拟时间执行所述待测试定时任务。
图2为依照本发明另一实施例的基于物联网定时任务的自动化测试方法的示意图,如图2所示,若所述待测试定时任务为重复待测试定时任务时该方法包括:
步骤s10、获取源时间、基准时间点和时间倍率因子,获取重复待测试定时任务的路径、开始时间点和结束时间点,以及获取重复测试所述待测试定时任务的时间间隔和重复次数;
步骤s20、根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间;
步骤s30、根据所述待测试定时任务的路径、开始时间点和结束时间点按照所述虚拟时间执行所述待测试定时任务;
其中,所述源时间为虚拟时间服务器从公有时间服务器同步得到的时间,所述基准时间点为所述虚拟时间服务器开始进入所述虚拟时间的时刻。
具体的,首先需要获取源时间、基准时间点和时间倍率因子。
同时,获取待测试定时任务的路径、开始时间点和结束时间点,以及获取重复测试所述待测试定时任务的时间间隔和重复次数,待测试定时任务的时间间隔是指两次测试所述待测试定时任务之间的时间间隔,当一次测试结束后,经过所述时间间隔的时间后将进入下一次的测试周期。
然后,根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间。
最后,根据所述待测试定时任务的路径、开始时间点、结束时间点、时间间隔和重复次数按照所述虚拟时间执行所述待测试定时任务。到达待测试定时任务的开始时间点时,系统将根据待测试定时任务的路径调取其对应的计算机程序,执行待测试定时任务,并计时,当到达待测试定时任务的结束时间点时将停止该次待测试定时任务的执行,然后经过所述时间间隔的时间后,将进入下一次的测试周期,直到达到预设的重复次数后停止。测试任务完成。
本发明实施例提供的基于物联网定时任务的自动化测试方法,通过根据源时间、基准时间点和时间倍率因子计算虚拟时间,待测试定时任务按照虚拟时间进行执行,从而加快了测试进度,并且待测试定时任务执行时虚拟化地经过每个时刻,保证计费周期的准确性。
实施例3:
图3为依照本发明实施例的基于物联网定时任务的自动化测试系统的示意图,如图3所示,本发明实施例提供一种基于物联网定时任务的自动化测试系统,包括测试服务器10和虚拟时间服务器20,所述测试服务器10和所述虚拟时间服务器20相连;
所述虚拟时间服务器20用于获取源时间、基准时间点和时间倍率因子,根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间;
所述测试服务器10用于获取待测试定时任务的路径、开始时间点和结束时间点,根据所述待测试定时任务的路径、开始时间点和结束时间点按照所述虚拟时间执行所述待测试定时任务;
其中,所述源时间为所述虚拟时间服务器20从公有时间服务器同步得到的时间,所述基准时间点为所述虚拟时间服务器20开始进入所述虚拟时间的时刻。
具体的,首先虚拟时间服务器20需要获取源时间、基准时间点和时间倍率因子,源时间为虚拟时间服务器20从公有时间服务器同步得到的时间,源时间即为标准时间,采用的是网络时间协议(networktimeprotocol,简称ntp),是全球统一的。基准时间点为虚拟时间服务器20开始进入虚拟时间的时刻,在设置好基准时间点以后,可以预留一定的时间做其他测试准备,当到达基准时间点时,虚拟时间服务器20开始进入虚拟时间,按照设定的虚拟时间进行计时。时间倍率因子是虚拟时间服务器20计算虚拟时间的重要参数,通过调节时间倍率因子的大小即可调节虚拟时间计时的快慢。
同时,测试服务器10获取待测试定时任务的路径、开始时间点和结束时间点,待测试定时任务通常是以计算机程序的形式表现出来,待测试定时任务的路径即为与该待测试定时任务对应的计算机程序的保存路径。待测试定时任务的开始时间点即为该待测试定时任务开始执行的时间点,设置好开始时间点后,到达该开始时间点时待测试定时任务将开始执行,待测试定时任务的结束时间点即为该待测试定时任务结束执行的时间点,到达该结束时间点时待测试定时任务将停止执行。
然后,虚拟时间服务器20根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间。通过计算,将源时间转换成虚拟时间,并且在基准时间点时按照该虚拟时间计时,时间倍率因子是决定转换后的虚拟时间快慢的参数,时间倍率因子越大,虚拟时间走的也就越快,时间倍率因子越小,虚拟时间走的也就越慢。
最后,测试服务器10根据所述待测试定时任务的路径、开始时间点和结束时间点按照所述虚拟时间执行所述待测试定时任务。通常我们设置基准时间点等于或早于开始时间点,即当待测试定时任务开始执行的时候就是按照虚拟时间计时的。当然,也可以设置基准时间点晚于开始时间点,这种情况下,待测试定时任务将按照源时间进行执行一段时间,到达基准时间时,再按照虚拟时间执行。到达待测试定时任务的开始时间点时,测试服务器10将根据待测试定时任务的路径调取其对应的计算机程序,执行待测试定时任务,并计时,当到达待测试定时任务的结束时间点时将停止待测试定时任务的执行。测试任务完成。
进一步地,所述虚拟时间服务器具体用于按照以下公式根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间:t=t1+(t0-t1)*k,其中,t为所述虚拟时间,t0为所述源时间,t1为所述基准时间点,k为时间倍率因子,k为大于1的常数。
本发明实施例提供的基于物联网定时任务的自动化测试系统,通过根据源时间、基准时间点和时间倍率因子计算虚拟时间,待测试定时任务按照虚拟时间进行执行,从而加快了测试进度,并且待测试定时任务执行时虚拟化地经过每个时刻,保证计费周期的准确性。
实施例4:
本实施例与实施例3基本相同,为了描述的简要,在本实施例的描述过程中,不再描述与实施例3相同的技术特征,仅说明本实施例与实施例3不同之处:
进一步地,若所述待测试定时任务为重复待测试定时任务,所述测试服务器还用于:
获取重复测试所述待测试定时任务的时间间隔和重复次数;
根据所述待测试定时任务的路径、开始时间点、结束时间点和所述时间间隔按照所述虚拟时间执行所述待测试定时任务。
具体的,首先需要虚拟时间服务器20获取源时间、基准时间点和时间倍率因子。
同时,测试服务器10获取待测试定时任务的路径、开始时间点和结束时间点,以及获取重复测试所述待测试定时任务的时间间隔和重复次数,待测试定时任务的时间间隔是指两次测试所述待测试定时任务之间的时间间隔,当一次测试结束后,经过所述时间间隔的时间后将进入下一次的测试周期。
然后,虚拟时间服务器20根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间。
最后,测试服务器10根据所述待测试定时任务的路径、开始时间点、结束时间点、时间间隔和重复次数按照所述虚拟时间执行所述待测试定时任务。到达待测试定时任务的开始时间点时,测试服务器10将根据待测试定时任务的路径调取其对应的计算机程序,执行待测试定时任务,并计时,当到达待测试定时任务的结束时间点时将停止该次待测试定时任务的执行,然后经过所述时间间隔的时间后,将进入下一次的测试周期,直到达到预设的重复次数后停止。测试任务完成。
本发明实施例提供的基于物联网定时任务的自动化测试系统,通过根据源时间、基准时间点和时间倍率因子计算虚拟时间,待测试定时任务按照虚拟时间进行执行,从而加快了测试进度,并且待测试定时任务执行时虚拟化地经过每个时刻,保证计费周期的准确性。
实施例5:
图4为本发明实施例提供的用于基于物联网定时任务的自动化测试的电子设备的结构示意图,如图4所示,所述设备包括:处理器(processor)801、存储器(memory)802和总线803;
其中,处理器801和存储器802通过所述总线803完成相互间的通信;
处理器801用于调用存储器802中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:
获取源时间、基准时间点和时间倍率因子,获取待测试定时任务的路径、开始时间点和结束时间点;
根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间;
根据所述待测试定时任务的路径、开始时间点和结束时间点按照所述虚拟时间执行所述待测试定时任务;
其中,所述源时间为虚拟时间服务器从公有时间服务器同步得到的时间,所述基准时间点为所述虚拟时间服务器开始进入所述虚拟时间的时刻。
实施例6:
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
获取源时间、基准时间点和时间倍率因子,获取待测试定时任务的路径、开始时间点和结束时间点;
根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间;
根据所述待测试定时任务的路径、开始时间点和结束时间点按照所述虚拟时间执行所述待测试定时任务;
其中,所述源时间为虚拟时间服务器从公有时间服务器同步得到的时间,所述基准时间点为所述虚拟时间服务器开始进入所述虚拟时间的时刻。
实施例7:
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:
获取源时间、基准时间点和时间倍率因子,获取待测试定时任务的路径、开始时间点和结束时间点;
根据所述源时间、所述基准时间点和所述时间倍率因子计算虚拟时间;
根据所述待测试定时任务的路径、开始时间点和结束时间点按照所述虚拟时间执行所述待测试定时任务;
其中,所述源时间为虚拟时间服务器从公有时间服务器同步得到的时间,所述基准时间点为所述虚拟时间服务器开始进入所述虚拟时间的时刻。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置及设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。