缓存的测试方法及装置与流程

文档序号:19155175发布日期:2019-11-16 00:39阅读:356来源:国知局
缓存的测试方法及装置与流程

本发明实施例一般地涉及互联网技术领域,特别地是涉及一种缓存的测试方法及装置。



背景技术:

通常,基于用户输入的查询关键字在应用服务中搜索之后,应用服务会将用户搜索的结果进行缓存,在其他用户也进行类似搜索时,可直接从缓存中调取用户需要的搜索结果。这样可大大提高应用服务的响应速度,缓解调用数据库的压力。

在实际应用中,基于产生的缓存,都会设置缓存的有效时长。

目前,对缓存时效性的测试主要通过测试人员手动地测试来完成。测试人员手动地对缓存进行测试存在以下一些问题,例如当缓存的有效时长超过半个小时及以上时,测试缓存的有效性时,需要测试人员一直等待直到缓存的有效时长结束时,对缓存的有效性进行测试,这期间需要等待的时间比较长。或者当缓存的有效时长结束后,还没来得及验证该缓存的时效,新的缓存已经覆盖了之前的缓存,验证难度比较大。再或者针对在特定时间段比如凌晨对缓存进行测试时,测试人员在特定时间段测试缓存会很不方便。



技术实现要素:

为了解决现有技术中存在的上述问题,本发明实施例提供了缓存的测试方法及装置。

第一方面,本发明实施例提供一种缓存的测试方法,该缓存的测试方法包括:获取待测试缓存和所述待测试缓存的有效时长;基于所述有效时长生成定时任务并进行倒计时,在所述定时任务结束之际触发对所述待测试缓存的测试。

在一实施例中,所述方法还包括:获取预先构建的测试计划,所述测试计划中预设有所述待测试缓存的有效时长,所述测试计划中包括测试用例、需要测试的测试对象,和对所述测试对象发起查询请求的查询关键字。

在一实施例中,所述获取所述待测试缓存,包括:执行所述测试计划中的测试用例,产生针对所述测试对象的缓存;根据所述测试计划中的查询关键字发起查询请求,在查询到产生的缓存之际,将产生的缓存作为所述待测试缓存。

在一实施例中,所述获取所述待测试缓存的有效时长,包括:获取的待测试缓存为已有缓存,基于所述已有缓存的属性,得到所述已有缓存的有效时长。

在一实施例中,所述基于所述有效时长生成定时任务并进行倒计时之前,所述方法还包括:获取预设的测试时间;在所述当前时间达到所述预设的测试时间之际,触发获取待测试缓存。

在一实施例中,所述触发对所述待测试缓存进行测试包括:在所述定时任务结束之际,触发所述测试计划中的查询命令,查询所述待测试缓存,若所述待测试缓存不存在,则测试通过。

在一实施例中,所述测试计划包括异常场景的测试计划,所述测试计划中包括缓存的处理策略,获取待测试缓存包括:基于已有缓存模拟所述异常场景并在异常场景下生成异常缓存;触发所述测试计划中查询缓存存在与否的查询命令;在查询到所述异常缓存存在之际,根据所述测试计划中的处理策略,对所述异常缓存进行处理,并更新所述已有缓存,将更新后的所述已有缓存作为待测试缓存。

第二方面,本发明实施例提供一种缓存的测试装置,该缓存的测试装置包括:获取单元,用于获取待测试缓存和所述待测试缓存的有效时长;测试单元,基于所述有效时长生成定时任务并进行倒计时,在所述定时任务结束之际触发对所述待测试缓存的测试。

在一实施例中,所述获取单元还用于:获取预先构建的测试计划,所述测试计划中预设有所述待测试缓存的有效时长,所述测试计划中包括测试用例、需要测试的测试对象,和对所述测试对象发起查询请求的查询关键字。

在一实施例中,所述获取单元采用如下方式获取所述待测试缓存:执行所述测试计划中的测试用例,产生针对所述测试对象的缓存;根据所述测试计划中的查询关键字发起查询请求,在查询到产生的缓存之际,将产生的缓存作为所述待测试缓存。

在一实施例中,所述获取单元采用如下方式获取所述待测试缓存的有效时长:获取的待测试缓存为已有缓存,基于所述已有缓存的属性,得到所述已有缓存的有效时长。

在一实施例中,所述获取单元还用于:基于所述有效时长生成定时任务并进行倒计时之前,获取预设的测试时间;在所述当前时间达到所述预设的测试时间之际,触发获取待测试缓存。

在一实施例中,所述测试单元采用如下方式触发对所述待测试缓存进行测试:在所述定时任务结束之际,触发所述测试计划中的查询命令,查询所述待测试缓存,若所述待测试缓存不存在,则测试通过。

在一实施例中,所述测试计划包括异常场景的测试计划,所述测试计划中包括缓存的处理策略,所述获取单元采用如下方式获取待测试缓存:基于已有缓存模拟所述异常场景并在异常场景下生成异常缓存;触发所述测试计划中查询缓存存在与否的查询命令;在查询到所述异常缓存存在之际,根据所述测试计划中的处理策略,对所述异常缓存进行处理,并更新所述已有缓存,将更新后的所述已有缓存作为待测试缓存。

第三方面,本发明实施例提供一种电子设备,电子设备包括:存储器,用于存储指令;以及处理器,用于调用存储器存储的指令执行上述任何方法。

第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在计算机上运行时,执行上述任何方法。

本发明实施例提供的缓存的测试方法及装置,根据测试计划中预设的待测试缓存的有效时长,生成定时任务并进行倒计时,在定时任务结束之际触发对待测试缓存的测试,可实现针对缓存的自动化测试,提高测试效率。

附图说明

通过参考附图阅读下文的详细描述,本发明实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1是本发明实施例提供的缓存的测试方法实施流程图;

图2是本发明实施例提供的缓存的测试方法另一实施流程图;

图3是本发明实施例提供的缓存的测试装置示意图。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。

需要注意,虽然本文中使用“第一”、“第二”等表述来描述本发明的实施方式的不同模块、步骤和数据等,但是“第一”、“第二”等表述仅是为了在不同的模块、步骤和数据等之间进行区分,而并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。

本发明实施例提供的缓存的测试方法及装置,可以应用于针对缓存的时效性的测试和验证对缓存的处理是否正确的应用场景。在该场景下,缓存的测试方法的执行主体可以是缓存的测试装置,该缓存的测试装置可以是计算机,移动终端等终端,本发明实施例不做限定。

图1为本发明实施例提供的缓存的测试方法实施流程图。如图1所示,该方法包括:

s101:获取待测试缓存和所述待测试缓存的有效时长。

s101a:本发明实施例中的待测试缓存可以是基于用户行为产生的,已被存储的缓存,即已有缓存。该已有缓存的有效时长可以通过该已有缓存的属性或者基于测试计划中预设有该已有缓存的有效时长获得。

其中,已有缓存的属性中,可包括该缓存的有效时长、该缓存的创建时间和失效时间。该已有缓存例如可存储在redis中,为了从大量存储的已有缓存中快速筛选查询到待测试缓存,可以利用待测试缓存的查询关键字在存储器中进行搜索,进而快速获取待测试缓存。

s101b:本发明实施例中的待测试缓存也可以是基于预先构建的测试计划产生的缓存,该测试计划中预设有待测试缓存的有效时长。该测试计划中包括测试用例、需要测试的测试对象,和对测试对象发起查询请求的查询关键字。其中,预先构建的测试计划中还可以包括测试场景和测试策略。本发明实施例中例如可以将测试计划以测试场景模块、测试策略模块和测试用例模块进行构建并管理。

待测试缓存的测试场景是待测试缓存应用的实际场景。例如:针对购票软件的测试中,测试场景可以是针对搜索国际头等舱机票的测试场景,或者也可以是针对机票预定失败的测试场景。该测试场景例如可由预设的待测试缓存测试场景模块进行管理,通过待测试缓存测试场景模块可以对测试场景进行编辑、添加、删除和查看等操作。例如,选取测试场景为机票预定失败的场景,缓存策略为机票预订失败时主动删除缓存,重新更新缓存,更新后的缓存有效时长为15分钟。测试用例期望机票预定失败的场景下缓存删除成功,重新更新缓存成功,更新后的缓存有效时长精确。通过获取预订机票的缓存,针对该缓存,利用缓存策略中的命令执行测试用例,对机票进行搜索、预订,根据缓存策略使得机票预订失败,此时对机票搜索和机票预订中产生的缓存做删除处理,并重新更新缓存,定时任务模块根据更新后的缓存的有效时长,开启定时任务,到达15分钟后,由缓存命令去查询缓存,验证缓存是否失效。

待测试缓存的测试策略是缓存测试的基本要素,该测试策略例如可由预设的测试策略模块进行管理。在测试策略管理中,需要从测试场景模块中选择待测试缓存的测试场景,并针对待测试缓存的测试场景,设置待测试缓存测试策略的优先级,待测试缓存的有效时长,测试策略生效时间,测试策略失效时间,对待测试缓存的处理策略。其中,通过设置测试策略的优先级可以得出针对该缓存的测试策略中哪些是主要的测试策略,例如可将优先级高的测试策略设置为较小的数值,例如将优先级最高的测试策略设置为0,将优先级低的测试策略设置为较高的数值,例如将优先级低的测试策略设置为10000。同时为了避免对缓存的测试中命中不了任何缓存策略的情况,可以设置一个默认的缓存策略,作为保底的缓存策略,比如,设置所有缓存的有效时长为15分钟,缓存优先级为10000,让所有的缓存都能命中这个策略。

测试策略中对待测试缓存的处理策略可以包括对缓存的删除和/或更新处理。对待测试缓存的处理策略根据预设的操作命令执行。在缓存管理中可对缓存策略进行添加,失效,查看缓存策略列表等功能性操作。例如,测试场景为机票预定失败的测试场景,当机票预定失败后,缓存策略的处理策略要针对此场景进行缓存的删除,再重新更新缓存,此时,触发预设的缓存命令,执行缓存策略中处理策略,对机票预订失败场景产生的缓存进行删除,并更新缓存,此后,再对缓存进行验证,验证缓存是否删除成功,更新的缓存是否更新成功。

待测试缓存的测试用例可以理解为针对测试对象的具体操作步骤,比如针对机票电商的测试,需打开被测对象,即打开该机票电商,进入机票搜索模块,填写搜索关键字,点击搜索,针对产生的缓存根据查询关键字进行缓存查询等一系列的具体操作步骤。其中,待测试缓存的测试用例可以是直接创建的测试用例,也可以导入外部文件到测试计划中生成该测试计划的测试用例。测试用例可以包括用例编号,功能模块,用例等级,前置条件,用例步骤描述,期望结果,执行结果,创建时间,创建人,执行人,测试负责人等信息。

本发明实施例中,通过执行测试计划中的测试用例,模拟用户行为,产生针对测试对象的缓存。在产生缓存的同时,根据测试计划中的查询关键字发起查询请求,若通过查询关键字查询到产生的缓存之际,可确定缓存存在,并将产生的该缓存作为待测试缓存。例如,对购票软件测试中,测试场景为搜索国际头等舱机票的测试场景,缓存策略中预设的国际头等舱机票缓存的有效时长是60分钟,创建一个搜索国际头等舱机票的测试用例,并输入缓存的查询关键字,生成测试计划,执行测试计划中的测试用例,产生针对测试对象的缓存。同时触发测试计划中的查询请求,若通过查询关键字查询到产生的缓存之际,将产生的缓存作为待测试缓存。

s101c:针对异常场景的测试计划,获取的待测试缓存可以采用如下方式得到:获取缓存,利用该缓存模拟异常场景进行操作,使得产生异常场景的缓存,并返回提示发生异常场景的异常返回值,根据该异常返回值,触发测试计划中的查询命令,查询异常场景的缓存,若查询到异常场景的缓存存在,则根据测试计划中的处理策略进行处理,例如对异常场景的缓存进行删除,并更新已有缓存,将更新后的缓存作为待测试缓存。例如针对支付前校验失败的测试场景,设置的缓存策略为删除缓存并重新更新,设置的缓存时效为10分钟,导入测试用例,生成测试计划。执行该测试计划,搜索出机票后,得到搜索该机票的缓存,获取该缓存,利用该缓存模拟订单失败的异常场景,进行机票的预定、提交订单,在提交订单时,订单失败,产生订单失败的缓存,拦截该失败的订单,并返回提示发生异常的异常返回值,根据该异常返回值,触发测试计划中的查询命令,查询到该订单失败产生的所有缓存,删除命令被触发,将与该订单相关的所有缓存删除,重新更新搜索该机票的缓存,将更新后的搜索该机票的缓存作为待测试缓存。

s102:基于所述有效时长生成定时任务并进行倒计时,在定时任务结束之际触发对所述待测试缓存的测试。

本发明实施例可基于生成的定时任务对待测试缓存实时进行测试。本发明实施例中待测试缓存的有效时长可以理解为待测试缓存生效期间的时长,例如待测试缓存的生效时长可以是60分钟,或者120分钟等。基于待测试缓存的有效时长,生成定时任务并进行倒计时例如可以采用如下方式确定:

若获取的待测试缓存为已有缓存,则基于获取的待测试缓存的创建时间、当前时间和待测试缓存的有效时长,确定待测试缓存的剩余有效时长,基于剩余有效时长生成定时任务并进行倒计时,在定时任务结束之际,即待测试缓存的剩余有效时长缩减到零之际,触发对待测试缓存进行测试。本发明实施例中,对已有缓存进行测试可采用如下方式进行:在定时任务结束之际,触发测试计划中的查询命令,基于查询关键字例如在redis中查询待测试缓存是否存在,若待测试缓存不存在,测试通过,若待测试缓存存在,测试不通过。例如对测试对象为电商a,测试场景为电商a的国际头等舱机票的测试场景,获取基于用户行为产生的国际头等舱机票的缓存,根据该缓存的属性例如可得到该缓存的有效时长120分钟,该缓存的创建时间是9:20分,获取该缓存的当前时间是9:40分,可确定出该缓存的剩余有效时长为100分钟,基于该缓存的剩余有效时长100分钟生成定时任务并进行倒计时,在定时任务结束时,查询命令触发,根据该缓存的查询关键字进行查询,如果该缓存不存在,则测试通过,如果缓存还存在,则测试不通过。

若获取的待测试缓存为执行测试计划中的测试用例,产生针对测试对象的缓存,则在产生针对测试对象的缓存之后,触发测试计划中的查询命令,利用查询关键字查找待测试缓存,确定待测试缓存存在后,基于待测试缓存的有效时长,生成定时任务并倒计时,在定时任务结束之际,即待测试缓存的有效时长缩减到零之际,触发对待测试缓存进行测试。本发明实施例中,对待测试缓存进行测试可采用如下方式进行:在定时任务结束之际,根据测试策略中的处理策略,可对产生的缓存进行处理,例如对产生的缓存进行删除处理,同时触发测试计划中的查询命令,基于查询关键字在存储器中查询待测试缓存是否存在,若待测试缓存不存在,测试通过,若待测试缓存存在,测试不通过。例如:对购票软件测试中,测试场景为搜索国际头等舱机票的测试场景,缓存策略中预设的国际头等舱机票缓存的有效时长时间是60分钟,创建一个搜索国际头等舱机票的测试用例,并输入缓存查询关键字,生成测试计划,执行测试计划后,模拟用户行为获取到搜索的国际头等舱机票的缓存,根据测试策略中预设的国际头等舱机票缓存的有效时长时长60分钟,自动生成一个有效时长为60分钟的定时任务,并立刻开始倒计时,60分钟后,定时任务结束,触发对国际头等舱机票的缓存的测试,即触发测试策略中的查询命令,再次根据缓存关键字进行查询,如果该缓存不存在,则测试通过,如果缓存还存在,则测试不通过。

针对异常场景的测试计划,获取的待测试缓存为基于已有缓存模拟所述异常场景并在异常场景下生成异常缓存,根据测试计划中的处理策略,对异常缓存进行处理后,更新的缓存。基于更新后的待测试缓存的有效时长,生成定时任务并进行倒计时,在定时任务结束之际,即待测试缓存的有效时长缩减到零之际,触发对更新后的待测试缓存的测试。本发明实施例中,对待测试缓存进行测试可采用如下方式进行:基于已有缓存模拟异常场景生成异常缓存时,根据测试计划中的处理策略,对产生的异常缓存进行处理,例如对异常缓存进行删除并更新已有缓存,基于更新后已有缓存进行有效时长,生成定时任务并倒计时,在定时任务结束之际,即待测试缓存的有效时长缩减到零之际,触发测试计划中的查询命令,基于更新后已有缓存的查询关键字在存储器中查询待测试缓存是否存在,若待测试缓存不存在,测试通过,若待测试缓存存在,测试不通过。例如针对支付前校验失败的测试场景,设置的缓存策略为删除缓存并重新更新,设置的缓存时效为10分钟,导入测试用例,生成测试计划。执行该测试计划,搜索出机票后,得到搜索该机票的缓存,获取该缓存,利用该缓存模拟订单失败的异常场景,基于人工操作点击预定,填写信息后提交订单,提交订单时,订单失败,产生订单失败的缓存,并返回提示发生异常场景的异常返回值,根据该异常返回值,触发测试计划中的查询命令,查询到订单失败的缓存,删除命令被触发,将与该订单相关的所有缓存删除,重新更新搜索该机票的缓存,更新成功后,基于更新后的缓存的有效时间10分钟,生成定时任务并进行倒计时,10分钟后,触发对更新后的待测试缓存的测试即触发缓存查询命令,如果更新后的待测试缓存不存在,测试通过,如果更新后的待测试缓存存在,测试不通过。

本发明实施例中,执行完测试用例后,会生成与该测试用例对应的测试结果,将测试结果进行分析整理后,可以以报表的形式进行展示。并且,可以将展示的内容通过邮件或者短信的方式发送到配置对象。

图2为本发明实施例提供的缓存的测试方法的另一实施流程图。如图2所示,该缓存的测试方法中,包括步骤s201至步骤s203。其中,步骤s202和步骤s203分别与图1中的步骤s101和步骤s102执行步骤相类似,在此不再赘述。该方法包括:

s201:获取预设的测试时间,在当前时间达到所述预设的测试时间之际,触发获取待测试缓存。

本发明实施例可基于预设的测试时间对待测试缓存进行预约测试。本发明实施例中,可以预设测试时间,在当前时间达到预设的测试时间时,自动触发测试计划,触发获取待测试缓存。

例如在测试计划的测试策略中预设凌晨2点对缓存进行测试,根据测试计划的测试策略中预设的时间和当前时间进行匹配,在当前时间达到预设时间时,触发测试计划开始执行,即触发获取待测试缓存。例如针对电商a国际头等舱机票的测试场景,针对国际头等舱机票的缓存在凌晨2点开始测试,该缓存有效时长为120分钟,则在测试策略有效时长设置为120分钟,此时创建一个搜索国际头等舱机票的测试用例,并输入该缓存的查询关键字,生成测试计划,根据测试计划自动创建一个凌晨2点触发的定时任务,当凌晨2点到达后,测试计划自动触发,执行测试计划,按照测试用例中的步骤,自动化的操作被测对象电商a,进行头等舱机票搜索,产生缓存,此时触发缓存查询命令,根据查询关键字去查找缓存,确定缓存存在后,自动生成一个时间为120分钟的定时任务,并立刻开始倒计时,120分钟后,定时任务结束,查询命令触发,再次根据该缓存的查询关键字进行查询,如果该缓存不存在,则测试通过,如果缓存存在,则测试不通过。

通过本发明实施例,可实现在预设的时间自动触发对缓存的测试,解决了特殊时段测试难的问题。

本发明实施例提供的缓存测试的方法,通过获取预设的测试时间,在当前时间达到预设的测试时间之际,触发对待测试缓存进行测试,可实现在特定时间段对缓存的测试,通过测试计划中预设的待测试缓存的有效时长,生成定时任务并进行倒计时,在定时任务结束之际触发对待测试缓存的测试,实现了可在待测试缓存有效时长结束的时间点,精确的验证缓存的时效性,避免了因手工操作慢导致的对缓存的时效性还没开始验证,旧缓存就被新的缓存替换的问题,提高了测试效率。

基于相同的发明构思,本发明实施例还提供了一种缓存的测试装置。

如图3所示,本发明实施例提供的缓存的测试装置300,该装置300包括:获取单元301,用于获取待测试缓存和所述待测试缓存的有效时长;测试单元302,基于所述有效时长生成定时任务并进行倒计时,在所述定时任务结束之际触发对所述待测试缓存的测试。

在一实施例中,所述获取单元301还用于:获取预先构建的测试计划,所述测试计划中预设有所述待测试缓存的有效时长,所述测试计划中包括测试用例、需要测试的测试对象,和对所述测试对象发起查询请求的查询关键字。

在一实施例中,所述获取单元301采用如下方式获取所述待测试缓存:

执行所述测试计划中的测试用例,产生针对所述测试对象的缓存;

根据所述测试计划中的查询关键字发起查询请求,在查询到产生的缓存之际,将产生的缓存作为所述待测试缓存。

在一实施例中,所述获取单元301采用如下方式获取所述待测试缓存的有效时长:

获取的待测试缓存为已有缓存,基于所述已有缓存的属性,得到所述已有缓存的有效时长。

在一实施例中,所述获取单元301还用于:基于所述有效时长生成定时任务并进行倒计时之前,获取预设的测试时间;在所述当前时间达到所述预设的测试时间之际,触发获取待测试缓存。

在一实施例中,所述测试单元302采用如下方式触发对所述待测试缓存进行测试:

在所述定时任务结束之际,触发所述测试计划中的查询命令,查询所述待测试缓存,若所述待测试缓存不存在,则测试通过。

在一实施例中,所述测试计划包括异常场景的测试计划,所述测试计划中包括缓存的处理策略,所述获取单元301采用如下方式获取待测试缓存:

基于已有缓存模拟所述异常场景并在异常场景下生成异常缓存;触发所述测试计划中查询缓存存在与否的查询命令;在查询到所述异常缓存存在之际,根据所述测试计划中的处理策略,对所述异常缓存进行处理,并更新所述已有缓存,将更新后的所述已有缓存作为待测试缓存。

本发明实施例还提供一种电子设备,电子设备包括:存储器,用于存储指令;以及处理器,用于调用存储器存储的指令执行上述可能的实施方式中任一所述的方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在由处理器执行时,执行上述可能的实施方式中任一所述的方法。

可以理解的是,本发明实施例中尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。

本发明实施例涉及的方法和装置能够利用标准编程技术来完成,利用基于规则的逻辑或者其他逻辑来实现各种方法步骤。还应当注意的是,此处以及权利要求书中使用的词语“装置”和“模块”意在包括使用一行或者多行软件代码的实现和/或硬件实现和/或用于接收输入的设备。

此处描述的任何步骤、操作或程序可以使用单独的或与其他设备组合的一个或多个硬件或软件模块来执行或实现。在一个实施方式中,软件模块使用包括包含计算机程序代码的计算机可读介质的计算机程序产品实现,其能够由计算机处理器执行用于执行任何或全部的所描述的步骤、操作或程序。

出于示例和描述的目的,已经给出了本发明实施的前述说明。前述说明并非是穷举性的也并非要将本发明限制到所公开的确切形式,根据上述教导还可能存在各种变形和修改,或者是可能从本发明的实践中得到各种变形和修改。选择和描述这些实施例是为了说明本发明的原理及其实际应用,以使得本领域的技术人员能够以适合于构思的特定用途来以各种实施方式和各种修改而利用本发明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1