本地缓存工具类测试方法、装置、存储介质及计算机设备与流程

文档序号:32799393发布日期:2023-01-03 23:14阅读:25来源:国知局
本地缓存工具类测试方法、装置、存储介质及计算机设备与流程

1.本技术涉及自动测试技术领域,尤其涉及一种本地缓存工具类测试方法、装置、存储介质及计算机设备。


背景技术:

2.目前,本地缓存(loading cache)技术被广泛应用在数据存储领域中。对于一个应用程序而言,若其需要调用大量的下游服务或者对数据获取效率要求较高,则需要大量地调用本地缓存工具类,以通过本地缓存技术在内存中存储数据,使得应用程序在后续过程中可以直接从内存中读取数据。
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.图1为一个实施例中本地缓存工具类测试方法的流程示意图;
32.图2为一个实施例中本地缓存工具类测试装置的结构示意图;
33.图3为一个实施例中计算机设备的结构示意图。
具体实施方式
34.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
35.在一个实施例中,本技术提供了一种本地缓存工具类测试方法。下述实施例以该方法应用于计算机设备为例进行说明,可以理解,该计算机设备可以是任意具备运算及处理功能的设备,可以但不限于是服务器或个人笔记本电脑等。在其中一个实施例中,该计算机设备可以是应用服务器,该应用服务器可以是用于运行待测应用程序的服务器。
36.如图1所示,本技术的本地缓存工具类测试方法具体可包括如下步骤:
37.s102:在监听到待测应用程序调用本地缓存工具类的情况下,确定目标类名,所述目标类名为被调用的本地缓存工具类的类名,所述本地缓存工具类用于将待缓存数据写入至本地缓存中。
38.其中,本地缓存工具类是指用于将数据写入本地缓存中的工具类,本地缓存是指从本地物理内存空间中划分出的缓存空间,本地是指用于运行待测应用程序的计算机设备。可以理解,本地缓存工具类的具体执行逻辑可以依据实际情况来确定,本技术对此不作具体限制,只需能实现前述功能即可。在一个示例中,本地缓存工具类包括但不局限于memcache工具类、guave工具类和caffeine工具类。
39.具体而言,计算机设备可以监听待测应用程序是否调用本地缓存工具类。例如,计算机设备可以预先配置各个本地缓存工具类的类名,每当监听到待测应用调用工具类时,获取被调用的工具类的类名,并将被调用的工具类的类名与预先配置的各个本地缓存工具类的类名进行匹配,进而判断待测应用程序当前调用的是否为本地缓存工具类。
40.在监听到待测应用程序调用本地缓存工具类时,计算机设备可以确定被调用的本地缓存工具类的类名,所确定的类名即为目标类名。
41.s104:判断所述目标类名是否满足预设类名规则。
42.其中,预设类名规则可用于判断本地缓存工具类是否被支持,计算机设备可以依
据目标类名,判断被调用的本地缓存工具类是否被支持。如,计算机设备是否能够执行被调用的本地缓存工具类所对应的代码。
43.在其中一个实施例中,由于不同的本地缓存工具类的执行逻辑不同,因此,针对不同的本地缓存工具类,运行在计算机设备上的本地缓存工具类测试代码需要执行不同的代码来实现本地缓存的数据查询和/或数据清除。例如,在guave工具类被调用的情况下,通过测试代码段a来实现数据查询、数据清除;在caffeine工具类被调用的情况下,通过测试代码段b来实现数据查询、数据清除。为避免测试代码配置影响本地缓存工具类测试,计算机设备可通过判断目标类名是否满足预设类名规则,进而判断测试代码是否能够针对当前被调用的本地缓存工具类实现数据查询和/或数据清除。进一步地,计算机设备可以将目标类名与预先配置的本地缓存工具类类名进行匹配,并判断目标类名是否与任一预先配置的本地缓存工具类类名相同,若是,则确认目标类名满足预设类名规则,否则,确认目标类名不满足预设类名规则。
44.s106:若所述目标类名满足预设类名规则,则在执行所述被调用的本地缓存工具类所对应的代码之前,对所述本地缓存中的已缓存数据进行数据查询和/或数据清除,以使所述本地缓存中未缓存有所述待缓存数据。
45.具体而言,在调用本地缓存工具类后,且在执行本地缓存工具类所对应的代码之前,计算机设备可对本地缓存中存储的已缓存数据进行数据查询和/或数据清除。例如,计算机设备可以对本地缓存进行数据清除。或者,计算机设备可以对本地缓存进行数据查询,并依据查询结果判断是否需要进行数据清除。
46.在执行数据查询和/或数据清除后,计算机设备可以确定本地缓存中未存储有本地缓存工具类所要缓存的待缓存数据。而后再执行被调用的本地缓存工具类所对应的代码。在执行本地缓存工具类所对应的代码后,若本地缓存中存储有该待缓存数据,则表明本地缓存工具类成功将待缓存数据写入到本地缓存中,本地缓存工具类的功能正常。否则,表明本地缓存工具类存在缺陷。
47.在其中一个实施例中,计算机设备可以通过程序插桩技术,在本地缓存工具类的函数入口处插入对应的数据查询代码和/或数据清除代码,使得计算机设备可以在执行本地缓存工具来所对应的代码之前,对已缓存数据进行数据查询和/或数据清除。
48.在其中一个实施例中,若所述目标类名不满足预设类名规则,则计算机设备可以生成提示消息并显示。具体而言,当目标类名不满足预设类名规则时,表明被调用的本地缓存工具类不被支持,如运行待测应用程序的计算机设备未配置有该本地缓存工具类所对应的代码,或者测试代码缺少针对该本地缓存工具类的代码片段。在此情况下,计算机设备可以生成提示消息并显示,以提醒技术人员,避免技术人员错误判断测试结果。
49.本实施例中,计算机设备可以监听待测应用程序是否调用本地缓存工具类,并在待测应用程序调用本地缓存工具类的情况下,确定被调用的本地缓存工具类的目标类型。若目标类名满足预设类名规则,则计算机设备可以在执行本地缓存工作类所对应的代码之前,对本地缓存中的已缓存数据进行数据查询和/或数据清除,从而可确保在执行本地缓存工具类所对应的代码时,本地缓存中未存储有本地缓存工具类所要缓存的待缓存数据,进而测试本地缓存工具类是否能够将待缓存数据写入至本地缓存中。如此,可减少本地缓存测试过程中的人工干预程度,进而提高测试效率。
50.在一个实施例中,,所述对所述本地缓存中的已缓存数据进行数据查询和/或数据清除的步骤,包括:
51.确定本次缓存清除模式;
52.若所述本次缓存清除模式为指定数据清除模式,则获取目标数据标识,并根据所述目标数据标识对所述已缓存数据进行数据查询,以从所述已缓存数据中确定对应于所述目标数据标识的目标已缓存数据,且清除所述目标已缓存数据。
53.具体而言,在执行被调用的本地缓存工具类所对应的代码之前,计算机设备可确定本次缓存清除模式。在其中一个实施例中,计算机设备可以通过对应的测试函数来实现本文实施例所述的本地缓存测试方法,在此情况下,计算机设备可以根据测试函数的入参确定本次缓存清除模式。例如,当入参为空时,则确定本次缓存清除模式为全部数据清除模式;当入参不为空时,则确定本次缓存清除模式为指定数据清除模式。
54.若本次缓存清除模式为指定数据清除模式,则计算机设备可以获取需要清除的数据所对应的数据标识,该数据标识即为目标数据标识。计算机设备可根据目标数据标识,查询本地缓存中的已缓存数据,以确定本地缓存中与该目标数据标识相对应的已缓存数据,也即确定目标已缓存数据。
55.在本地缓存中存在目标已缓存数据的情况下,表明本地缓存中存储有需要清除的数据,因此,计算机设备可将该数据从本地缓存中清除,使得清除后的本地缓存未存储有任何目标已缓存数据,进而实现指定数据的查询与清除。如此,无需在本地缓存工具类的每次调用中都清除全部已缓存数据,从而可进一步提高测试效率。
56.在一个实施例中,所述目标数据标识为所述待测应用程序中待测功能所对应的数据标识。具体而言,待测应用程序中每个功能点可配置有唯一的数据标识。若计算机设备在执行某功能点所对应的代码片段时,将数据写入到本地缓存中,则该数据会具备该功能点所对应的数据标识。例如,计算机设备在执行第一功能点所对应的代码时,将第一数据写入本地缓存中,则第一数据包括了第一功能点所对应的数据标识。基于此,计算机设备可以根据待测功能所对应的数据标识,选择性地清除本地缓存中对应于该待测功能的缓存数据。如此,可更为精准地清除本地缓存中的指定数据,以提高测试结果的可靠性及测试效率。
57.在一个实施例中,所述对所述本地缓存中的已缓存数据进行数据查询和/或数据清除的步骤,还包括:若所述本次缓存清除模式为全部数据清除模式,则清除全部所述已缓存数据。具体而言,若本次缓存清除模式为全部数据清除模式,则对本地缓存中的全部缓存数据进行清楚,使得清除后的本地缓存中未缓存有任何数据。如此,可确保待缓存数据不存在于本地缓存中,以提高测试结果的可靠性。
58.在一个实施例中,所述方法还包括:在执行所述被调用的本地缓存工具类所对应的代码之后,获取所述本地缓存中的已缓存数据并显示。具体而言,在执行本地缓存工具类后,若本地缓存中存储有待缓存数据,则表明本地缓存工具类成功将待缓存数据写入到本地缓存中,本地缓存工具类的功能正常。否则,表明本地缓存工具类存在缺陷。因此,计算机设备可以在执行本地缓存工具类后,获取并显示本地缓存中的已缓存数据,以便于技术人员据此确定本地缓存工具类是否能实现预期功能。
59.在一个实施例中,执行本技术所述本地缓存工具类测试方法的测试代码可以被封装为插件服务包,以便于方便快捷地执行本技术所述的方法。进一步地,该插件服务包可以
以可插拔的方式注入到应用服务器上。
60.下面对本技术实施例提供的本地缓存工具类测试装置进行描述,下文描述的本地缓存工具类测试装置与上文描述的本地缓存工具类测试方法可相互对应参照。
61.在一个实施例中,本技术提供了一种本地缓存工具类测试装置200。如图2所示,该装置200包括类名获取模块210、规则判断模块220和缓存数据处理模块230。其中:
62.类名获取模块210,用于在监听到待测应用程序调用本地缓存工具类的情况下,确定目标类名,所述目标类名为被调用的本地缓存工具类的类名,所述本地缓存工具类用于将待缓存数据写入至本地缓存中;
63.规则判断模块220,用于判断所述目标类名是否满足预设类名规则;
64.缓存数据处理模块230,用于在所述目标类名满足预设类名规则的情况下,在执行所述被调用的本地缓存工具类所对应的代码之前,对所述本地缓存中的已缓存数据进行数据查询和/或数据清除,以使所述本地缓存中未缓存有所述待缓存数据。
65.在一个实施例中,所述缓存数据处理模块230包括模式确定单元和查询清除单元。其中,模式确定单元用于确定本次缓存清除模式;查询清除单元用于在所述本次缓存清除模式为指定数据清除模式的情况下,获取目标数据标识,并根据所述目标数据标识对所述已缓存数据进行数据查询,以从所述已缓存数据中确定对应于所述目标数据标识的目标已缓存数据,在所述目标已缓存数据不为空的情况下,清除所述目标已缓存数据。
66.在一个实施例中,所述缓存数据处理模块230还包括全部清除单元。该全部清除单元用于在所述本次缓存清除模式为全部数据清除模式的情况下,清除全部所述已缓存数据。
67.在一个实施例中,所述目标数据标识为所述待测应用程序中待测功能所对应的数据标识。
68.在一个实施例中,所述装置200还包括缓存数据显示模块。该缓存数据显示模块用于在执行所述被调用的本地缓存工具类所对应的代码之后,获取所述本地缓存中的已缓存数据并显示。
69.在一个实施例中,所述装置200还包括提示消息显示模块。该提示消息显示模块用于在所述目标类名不满足预设类名规则的情况下,生成提示消息并显示。
70.在一个实施例中,本技术还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任意实施例所述本地缓存工具类测试方法的步骤。
71.在一个实施例中,本技术还提供了一种计算机设备。所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任意实施例中所述本地缓存工具类测试方法的步骤。
72.示意性地,图3为本技术实施例提供的一种计算机设备的内部结构示意图,在一个示例中,该计算机设备可以为服务器。参照图3,计算机设备900包括处理组件902,其进一步包括一个或多个处理器,以及由存储器901所代表的存储器资源,用于存储可由处理组件902的执行的指令,例如应用程序。存储器901中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件902被配置为执行指令,以执行上述任意实施例所述本地缓存工具类测试方法的步骤。
73.计算机设备900还可以包括一个电源组件903被配置为执行计算机设备900的电源管理,一个有线或无线网络接口904被配置为将计算机设备900连接到网络,和一个输入输出(i/o)接口905。计算机设备900可以操作基于存储在存储器901的操作系统,例如windows server tm、mac os xtm、unix tm、linux tm、free bsdtm或类似。
74.本领域技术人员可以理解,本技术示出的计算机设备的内部结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
75.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本文中,“一”、“一个”、“所述”、“该”和“其”也可以包括复数形式,除非上下文清楚指出另外的方式。多个是指至少两个的情况,如2个、3个、5个或8个等。“和/或”包括相关所列项目的任何及所有组合。
76.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
77.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1