日志处理方法、装置、设备、介质和程序产品与流程

文档序号:29853701发布日期:2022-04-30 08:42阅读:92来源:国知局
日志处理方法、装置、设备、介质和程序产品与流程

1.本公开涉及信息安全领域或金融领域,更具体地涉及一种日志处理方法、装置、设备、介质和程序产品。


背景技术:

2.出于对产品的正确性、完整性、安全性和稳定性等方面的考虑,在产品投产之前可以进行测试验证,以确定是否满足预期要求。以银行的交易处理系统为例,可以通过自动化脚本执行多笔交易来进行自动化测试。对于一些复杂的交易,若无法通过自动化脚本实现,可以通过人工进行测试。在测试过程中,自动化测试和人工测试可以同时进行,并输出测试日志。
3.在实现本公开构思的过程中,发明人发现相关技术中至少存在以下问题:由于自动化测试和人工测试所输出的日志混杂在一起,但是自动化测试和人工测试的交易数量可能不一致,从而输出的日志内容量也不一致。对于测试交易数量少的一方,某笔交易出错时,难以准确定位到该笔交易的日志内容,导致不能及时排查出问题,测试效率较低。


技术实现要素:

4.鉴于上述问题,本公开提供了提高测试效率的日志处理方法、装置、设备、介质和程序产品。
5.本公开实施例的一个方面,提供了一种日志处理方法,包括:获得响应于测试操作而生成的第一日志,其中,所述测试操作包括自动化测试操作和人工测试操作;基于所述第一日志的内容,获得n个第二日志,其中,每个所述第二日志包括测试第一业务场景所生成的日志信息,所述第一业务场景为m个业务场景中的任一个业务场景,n、m分别为大于或等于1的整数;获得每个所述第二日志与日志模板的相似度,其中,所述日志模板根据自动化测试操作或人工测试操作生成的日志获得;对于每个所述第二日志,在所述相似度符合第一预设条件的情况下,确认该第二日志与所述日志模板的类别相同,其中,所述日志模板的类别包括自动化类别或人工类别。
6.根据本公开的实施例,所述基于所述第一日志的内容,获得n个第二日志包括:复写所述第一日志的内容,获得第三日志簇,其中,所述第三日志簇包括s个第三日志,s为大于或等于1的整数;根据所述第三日志簇的内容,获得n个所述第二日志。
7.根据本公开的实施例,所述根据所述第三日志簇的内容,获得n个所述第二日志包括获得每个所述第二日志,具体包括:在所述第三日志中获得第一起始标识,其中,所述第一起始标识为所述第三日志中任一个起始标识;根据所述第一起始标识获得第一线程符,其中,所述第一起始标识与所述第一线程符在所述第三日志内的第一日志信息中;自所述第一日志信息开始,依次获取包含所述第一线程符的至少一条日志信息;将所述至少一条日志信息写入所述第二日志,其中,所述至少一条日志信息中最后一条日志信息包括第一结束标识。
8.根据本公开的实施例,还包括:对于每个所述第二日志,若与所述日志模板的类别相同,则写入第四日志;若与所述日志模板的类别不相同,则写入第五日志。
9.根据本公开的实施例,还包括:将所述第四日志与所述第一日志进行匹配;从所述第一日志中删除与所述第四日志相同的内容,获得第六日志。
10.根据本公开的实施例,所述复写所述第一日志的内容,获得第三日志簇包括:监测所述第一日志的数据量;在所述数据量的增长速度符合第二预设条件的情况下,复写所述第一日志的内容,其中,所述第二预设条件包括所述数据量的增长速度大于或等于第一预设阈值。
11.根据本公开的实施例,所述复写所述第一日志的内容,获得第三日志簇还包括:基于所述数据量的增长速度符合第二预设条件时的时间戳,将所述时间戳以后生成的日志信息写入第i个第三日志,其中,i为大于或等于1的整数,i小于或等于s;在所述第i个第三日志的数据量大于或等于第二预设阈值的情况下,将所述时间戳以后生成的,且未复写的日志信息写入第i+1个第三日志。
12.根据本公开的实施例,还包括:监测所述第三日志簇中第三日志的数量;在所述数量的增长速度符合第三预设条件的情况下,停止复写所述第一日志的内容,其中,所述第二预设条件包括所述数量的增长速度小于第二预设阈值。
13.根据本公开的实施例,所述获得每个所述第二日志与日志模板的相似度包括:将每个所述第二日志中的埋点信息与所述日志模板的预设埋点信息进行匹配;基于匹配成功数量获得所述相似度。
14.根据本公开的实施例,在获得每个所述第二日志与日志模板的相似度之前,还包括获得所述日志模板,具体包括:单独执行所述自动化测试操作,或单独执行所述人工测试操作,来生成第七日志;在所述第七日志中写入至少一个所述预设埋点信息,以获得所述日志模板。
15.根据本公开的实施例,包括:存储至少一个第一地址信息,以及每个所述第一地址信息的类别,其中,所述第一地址信息用于标记执行所述测试操作的客户端地址;在获得每个所述第二日志与日志模板的相似度之前,所述方法还包括:对于每个所述第二日志,在存在第二地址信息的情况下,若所述第二地址信息与任一个所述第一地址信息匹配,确认该第二日志与所匹配到的第一地址信息的类别相同。
16.本公开实施例的另一方面提供了一种日志处理装置,包括:第一获得模块,用于获得响应于测试操作而生成的第一日志,其中,所述测试操作包括自动化测试操作和人工测试操作;第二获得模块,用于基于所述第一日志的内容,获得n个第二日志,其中,每个所述第二日志包括测试第一业务场景所生成的日志信息,所述第一业务场景为m个业务场景中的任一个业务场景,n、m分别为大于或等于1的整数;日志清洗模块,用于获得每个所述第二日志与日志模板的相似度,其中,所述日志模板根据自动化测试操作或人工测试操作生成的日志获得;日志分类模块,用于对于每个所述第二日志,在所述相似度符合第一预设条件的情况下,确认该第二日志与所述日志模板的类别相同,其中,所述日志模板的类别包括自动化类别或人工类别。
17.本公开实施例的另一方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行
时,使得一个或多个处理器执行如上所述的方法。
18.本公开实施例的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
19.本公开实施例的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。
20.上述一个或多个实施例具有如下有益效果:基于业务场景的维度,从第一日志中获得n个第二日志,并对每个第二日志进行分类。通过每个第二日志与日志模板的相似度作为分类依据,在相似度符合第一预设条件的情况下,确认该第二日志与日志模板的类别相同。能够准确地将第一日志中的内容进行分类,无论是自动化测试还是人工测试中的交易出现问题,可以通过对应类别的日志准确定位到该笔交易的日志内容,提高测试效率。
附图说明
21.通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
22.图1示意性示出了根据本公开实施例的日志处理方法的应用场景图;
23.图2示意性示出了根据本公开实施例的日志处理方法的流程图;
24.图3示意性示出了根据本公开实施例的获得第二日志的流程图;
25.图4示意性示出了根据本公开另一实施例的获得第二日志的流程图;
26.图5示意性示出了根据本公开实施例的获得第六日志的流程图;
27.图6示意性示出了根据本公开另一实施例的日志处理方法的流程图;
28.图7示意性示出了根据本公开实施例的获得第三日志簇的流程图;
29.图8示意性示出了根据本公开另一实施例的获得第三日志簇的流程图;
30.图9示意性示出了根据本公开实施例的停止复写第一日志的流程图;
31.图10示意性示出了根据本公开实施例的获得相似度的流程图;
32.图11示意性示出了根据本公开实施例的获得日志模板的流程图;
33.图12示意性示出了根据本公开的另一实施例的日志处理方法的流程图;
34.图13示意性示出了根据本公开实施例的日志处理装置的结构框图;
35.图14示意性示出了根据本公开实施例的适于实现日志处理方法的电子设备的方框图。
具体实施方式
36.以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
37.在企业日常测试工作中,自动化测试占比越来越多,当机器模拟人进行自动化测试的同时,人工测试也在进行,后台会产生大量的交易日志,自动化测试的日志和人工测试的日志混杂在一起。
38.以自动化测试的交易数量多于人工测试的交易数量为例,当人工测试时的联机业务交易出错时,技术人员很难迅速准确的定位日志内容。因为自动化测试日志产生量级大,刷新速度快,无法快速在大量日志中定位人工的联机交易日志。另外,测试日志的总体存储容量是有限的,短时间内大量自动化测试日志的叠加也易触发容量超限,前置时间的人工联机交易日志可能会被彻底清除。
39.尤其是在某些涉账类交易中,很多业务交易还具有前期数据准备周期长,交易不可逆等特点,再次人工操作同笔业务交易也很难复现同样的问题,故问题无法分析解决,存在较大影响。
40.本公开的实施例提供了一种日志处理方法,该方法包括:获得响应于测试操作而生成的第一日志,其中,测试操作包括自动化测试操作和人工测试操作。基于第一日志的内容,获得n个第二日志,其中,每个第二日志包括测试第一业务场景所生成的日志信息,第一业务场景为m个业务场景中的任一个业务场景,n、m分别为大于或等于1的整数。获得每个第二日志与日志模板的相似度,其中,日志模板包括由自动化测试操作或人工测试操作生成的日志。对于每个第二日志,在相似度符合第一预设条件的情况下,确认该第二日志与日志模板的类别相同,其中,日志模板的类别包括自动化类别或人工类别。
41.根据本公开的实施例,基于业务场景的维度,从第一日志中获得n个第二日志,并对每个第二日志进行分类。通过每个第二日志与日志模板的相似度作为分类依据,在相似度符合第一预设条件的情况下,确认该第二日志与日志模板的类别相同。能够准确地将第一日志中的内容进行分类,无论是自动化测试还是人工测试中的交易出现问题,可以通过对应类别的日志准确定位到该笔交易的日志内容,提高测试效率。
42.需要说明的是,本公开涉及的一种日志处理方法、装置、设备、介质和程序产品可以用于金融领域中对于产品测试的日志处理相关方面,也可以用于金融领域或其他领域中的测试场景。本公开对应用领域不做限定。
43.图1示意性示出了根据本公开实施例的日志处理方法的应用场景图。
44.如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
45.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
46.终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
47.服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
48.根据本公开的实施例,测试操作可以通过b/s架构(浏览器/服务器架构)实现,具体地,可以在b/s架构的基础上设置中间件,来实现测试日志的输出和存储。中间件例如可以是was(websphere application server)架构。
49.需要说明的是,本公开实施例所提供的日志处理方法一般可以由服务器105执行。相应地,本公开实施例所提供的日志处理装置一般可以设置于服务器105中。本公开实施例所提供的日志处理方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的日志处理装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
50.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
51.以下将基于图1描述的场景,通过图2~图12对本公开实施例的日志处理方法进行详细描述。
52.图2示意性示出了根据本公开实施例的日志处理方法的流程图。
53.如图2所示,该实施例的日志处理方法包括操作s210~操作s240。
54.在操作s210,获得响应于测试操作而生成的第一日志,其中,测试操作包括自动化测试操作和人工测试操作。
55.测试操作可以是对软件测试,使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。人工测试操作是指由人工执行测试过程中的部分或全部流程,自动化测试操作是指在启动自动化脚本后,即可执行大部分流程,几乎不再需要人工参与。
56.第一日志可以包括,was架构应用的输出的应用日志,名字可为systemout.log(仅为示例),每一条日志信息都带有用于标记线程的由8个字符形成的十六进制值,日志信息记录着应用活动信息。其中,每条日志信息可以是第一日志中每一段日志内容。
57.在操作s220,基于第一日志的内容,获得n个第二日志,其中,每个第二日志包括测试第一业务场景所生成的日志信息,第一业务场景为m个业务场景中的任一个业务场景,n、m分别为大于或等于1的整数。
58.第一日志中可以包括在测试操作的过程中,被测对象在处理每笔交易的各个流程的应用活动信息,可以将第一日志的内容进行拆分获得n个第二日志。m个业务场景可以包括测试操作过程中执行的m笔测试交易,每个业务场景对应每笔交易,并对应有日志信息。第二日志中可以包括一笔交易的日志信息。
59.在操作s230,获得每个第二日志与日志模板的相似度,其中,日志模板根据自动化测试操作或人工测试操作生成的日志获得。
60.自动化测试操作中的交易所输出的日志信息中包含的用户名、ip地址、业务名称、自动化标识、段落格式等信息,与人工测试操作中的交易所输出的日志信息有所差别。因此,在日志模板由自动化测试操作或人工测试操作中其中任一方生成的日志获得的情况下,可以利用日志模板中的参数匹配出其中任一方所输出的日志。
61.根据本公开的实施例,获得相似度可以通过机器学习模型,计算第二日志与日志模板中的语义相似度。例如使用dssm(deep structured semantic models)、cnn(convolutional latent semantic model)-dssm、lstm(long-short-term memory)-dssm等深度学习模型计算语义相似度。
62.在操作s240,对于每个第二日志,在相似度符合第一预设条件的情况下,确认该第
二日志与日志模板的类别相同,其中,日志模板的类别包括自动化类别或人工类别。
63.自动化类别用于确定自动化测试操作所输出的日志。人工类别用于确定人工操作所输出的日志。从而在不影响应用功能正常运行的前提下,实现自动化日志与人工联机交易日志分离,方便后续进行交易信息的排查。
64.根据本公开的实施例,基于业务场景的维度,从第一日志中获得n个第二日志,并对每个第二日志进行分类。通过每个第二日志与日志模板的相似度作为分类依据,在相似度符合第一预设条件的情况下,确认该第二日志与日志模板的类别相同。能够准确地将第一日志中的内容进行分类,无论是自动化测试还是人工测试中的交易出现问题,可以通过对应类别的日志准确定位到该笔交易的日志内容,提高测试效率。
65.图3示意性示出了根据本公开实施例的操作s220中获得第二日志的流程图。
66.如图3所示,操作s220中基于第一日志的内容,获得n个第二日志可以包括操作s310~操作s320。
67.在操作s310,复写第一日志的内容,获得第三日志簇,其中,第三日志簇包括s个第三日志,s为大于或等于1的整数。
68.复写是指将第一日志的内容进行复制并写入到第三日志中。为了便于日志管理,可以写入到一个或多个第三日志,形成第三日志簇。该第三日志簇中包括第一日志的内容。
69.在操作s320,根据第三日志簇的内容,获得n个第二日志。
70.根据本公开的实施例,第三日志簇的作用是相对于第一日志的备份,在第三日志簇的基础上进行获取第二日志的操作,可以避免因直接对第一日志进行操作可能造成损坏的情况发生。
71.图4示意性示出了根据本公开的另一实施例的操作s320中获得第二日志的流程图。
72.如图4所示,操作s320中根据第三日志簇的内容,获得n个第二日志包括获得每个第二日志,可以包括操作s410~操作s440。
73.在操作s410,在第三日志中获得第一起始标识,其中,第一起始标识可以是第三日志中任一个起始标识。
74.在操作s420,根据第一起始标识获得第一线程符,其中,第一起始标识与第一线程符在第三日志内的第一日志信息中。
75.根据本公开的实施例,以每个第三日志为单位获得第二日志,每个第三日志中可能包括多笔交易的日志信息。每一笔交易的触发都会在日志里先输出起始标识、ip地址等日志信息,可以通过起始标识(如begin)来判断一笔交易的日志信息的开始。每当遇到begin开始符后,可以获取该条日志信息的预定顺序的字段,得到第一线程符,如“000000c0”这8个字段。
76.在操作s430,自第一日志信息开始,依次获取包含第一线程符的至少一条日志信息。
77.每条日志信息会包括线程符字段。从第一日志信息开始,按照时间排序依次向后获取每条日志信息中的线程符。其中,由于启动不同的线程会按照时间排序,可能两条相邻的日志信息中包括有不同的线程符。因此,若该条日志信息中包括第一线程符,则直接获取,若不包括,则放弃该条日志信息。
78.在操作s440,将至少一条日志信息写入第二日志,其中,至少一条日志信息中最后一条日志信息包括第一结束标识。
79.因为同时多线程会记录日志,如“000000de”可能与“000000c0”的日志信息相邻,往后搜索出该线程符“000000c0”的每一条日志信息记录到第二日志里,可以用线程符命名。直到遇到一条日志信息中同时包括第一线程符和第一结束标识(如end)。在一些实施例中,在确定出end之后,还可以确定后面10条(仅为示例)日志信息的线程符均与第一线程符不一致,那么确定根据第一线程符提取出来的第二日志即对应一笔业务交易。
80.根据本公开的实施例,以每笔交易的粒度获得第二日志,能够准确地对自动化测试或人工测试中的交易日志进行分类。并且,通过第一起始标识和第一结束标识来确定一笔交易的日志信息,可实现全面获取,避免在定位到该笔交易的日志信息时,因出现遗漏而无法及时排查出问题的情况发生。
81.根据本公开的实施例,对于每个第二日志,若与日志模板的类别相同,则写入第四日志。若与日志模板的类别不相同,则写入第五日志。
82.第四日志可以称为例行化日志,其从第三日志拆分出来,记录着自动化测试执行产生的应用日志信息,或人工测试执行产生的应用日志信息。第五日志可以成为新业务日志,该日志中的内容与第四日志中日志类别相反。第四日志和第五日志的内容即为第三日志簇的全部内容。在一些实施例中,第四日志和第五日志也可以日志簇的形式生成,即分别包括一个或多个第四日志和第五日志。
83.根据本公开的实施例,第四日志和第五日志为不同类别的日志信息,其中的内容按照线程符的顺序排列。在按照线程符定位某笔交易的日志信息时,可以方便利用第四日志和第五日志实现。
84.图5示意性示出了根据本公开的实施例的获得第六日志的流程图。
85.如图5所示,该实施例的日志处理方法还可以包括操作s510~操作s520。
86.在操作s510,将第四日志与第一日志进行匹配。
87.在操作s520,从第一日志中删除与第四日志相同的内容,获得第六日志。
88.根据本公开的实施例,第六日志可以称为“新应用日志”,其包括第一日志筛选去除第四日志
‑‑“
例行化日志”后的内容,若例行化日志”中为自动化测试日志信息,则第六日志记录着自动化案例执行期间,人工业务交易及其他模块产生的应用日志信息,此日志中内容按自然时间顺序排布,可为人工联机业务交易提供查询日志。
89.需要说明的是,可以对n个第二日志全部分类完成后,再获得第六日志。还可以对每个第二日志分类完成后,再获得第六日志。若写入第六日志,则可以删除第一日志中的对应内容。
90.为了更加容易理解在第一日志的基础上,获得第二日志~第六日志的流程,下面通过图6再次说明。
91.图6示意性示出了根据本公开的另一实施例的日志处理方法的流程图。
92.如图6所示,该实施例的日志处理方法可以包括操作s610~操作s680。
93.在操作s610,获取第一日志。
94.在操作s620,获取第三日志,可以参照操作s310。
95.在操作s630,基于第三日志获得第二日志,可以参照操作s320,操作s410~操作
s420。
96.在操作s640,将第二日志与日志模板进行匹配,获得每个第二日志与日志模板的相似度,对第二日志进行分类,可以参照操作s230,操作s240。
97.在操作s650,若与日志模板的类别相同,则写入第四日志。
98.在操作s660,若与日志模板的类别不相同,则写入第五日志。
99.在操作s670,根据第四日志和第一日志获得第六日志,可以参照操作s510~操作s520。
100.图7示意性示出了根据本公开的实施例的操作s310中获得第三日志簇的流程图。
101.如图7所示,操作s310中复写第一日志的内容,获得第三日志簇可以包括操作s710~操作s720。
102.在操作s710,监测第一日志的数据量。
103.在操作s720,在数据量的增长速度符合第二预设条件的情况下,复写第一日志的内容,其中,第二预设条件包括数据量的增长速度大于或等于第一预设阈值。
104.第一日志的数据量可以是第一日志的文件大小,可以通过检测第一日志文件大小,当日志增长速度超过第一预设阈值(例如100kb/秒)后,开始复写。例如自动化测试的交易数量远大于人工测试的交易数量,在启动自动化测试后,可通过数据量的增长速度实现自动监控。
105.图8示意性示出了根据本公开的另一实施例的操作s310中获得第三日志簇的流程图。
106.该实施例在包括s710~操作s720的基础上,如图8所示,还可以包括操作s810~操作s820。
107.在操作s810,基于数据量的增长速度符合第二预设条件时的时间戳,将该时间戳以后生成的日志信息写入第i个第三日志,其中,i为大于或等于1的整数,i小于或等于s。
108.示例性地,将获取当前时间节点为时间戳记录下来,同时生成自动化日志簇,实时将写入应用日志的内容复写到第三日志中。
109.在操作s820,在第i个第三日志的数据量大于或等于第二预设阈值的情况下,将时间戳以后生成的,且未复写的日志信息写入第i+1个第三日志。
110.示例性地,将“应用日志”产生的每条新日志实时复写一遍,第三日志,命名规则为automation_yyyymmddhhmmss_x.log(仅为示例)。yyyymmddhhmmss即为上述时间戳,其中,yyyy代表年,mm代表月,dd代表日,hh代表时,mm代表分,ss代表秒,x表示序号。具体地,从1开始计数,日期复用前面的,序号需要递增,默认自动化日志每超过2m(即第二预设阈值,仅为示例)就会增加一个新的第三日志出来,本身不会对“应用日志”做操作。举例,在同一个自动化案例执行期间,时间戳并不会改变,序号会递增,“第三日志簇”包括同一个时间戳,不同的序号组成的第三日志汇总,如以下形式:
111.automation_20210920164005_1.log;
112.automation_20210920164005_2.log;
113.automation_20210920164005_3.log;
114.......
115.automation_20210920164005_n.log。
116.图9示意性示出了根据本公开实施例的停止复写第一日志的流程图。
117.如图9所示,停止复写第一日志可以包括操作s910~操作s920。
118.在操作s910,监测第三日志簇中第三日志的数量。
119.在操作s920,在数量的增长速度符合第三预设条件的情况下,停止复写第一日志的内容,其中,第二预设条件包括数量的增长速度小于第二预设阈值。
120.示例性地,在进行日常业务测试过程中,开启自动化案例测试后,当检测出第一日志的数量超过第一预设阈值时,开始复写。并于10秒(仅为示例)后暂停检测数据量大小,转为检测第三日志的数量的增长速度。
121.示例性地,如关闭自动化案例测试后,检测出第三日志的数量的增长速度小于第二预设阈值。10秒(仅为示例)后,停止复写并暂停检测第三日志的数量的增长速度,还原为检测第一日志的文件大小。
122.根据本公开的实施例,第一日志可以有多个,因此当一个第一日志文件到达容量上限时,可能会生成新的第一日志。该情况下再检测原来的第一日志的文件大小增长速度就无意义,因此,通过检测第三日志的数量的增长速度实现对自动化案例测试的启停监控。应知的是,在人工测试的交易数量远大于自动化测试的情况下,也适用于对人工测试的监控。
123.图10示意性示出了根据本公开实施例的操作s230中获得相似度的流程图。
124.如图10所示,操作s230中获得每个第二日志与日志模板的相似度可以包括操作s1010~操作s1020。
125.在操作s1010,将每个第二日志中的埋点信息与日志模板的预设埋点信息进行匹配。
126.在操作s1020,基于匹配成功数量获得相似度。
127.示例性地,由于日志信息为规范格式输出,故可以基于字符串模式匹配算法(kmp算法,仅为示例),将第二日志中的埋点信息与日志模板的预设埋点信息进行匹配。kmp算法可以考虑第二日志与日志模板中的段落格式,以及字符串信息进行匹配。
128.埋点信息可以包括日志信息中的一个或多个关键词,例如客户端ip值(如“83.25.209.23”)、产品信息(如“如意人生iii-d款”)等关键词信息,若第二日志中与日志模板中的至少一个关键词匹配,则认为内容相似度高。匹配成功数量可以根据实际情况设置,本公开不进行限制。
129.图11示意性示出了根据本公开实施例的获得日志模板的流程图。
130.如图11所示,在执行操作s230之前,该实施例的获得日志模板可以包括操作s1110~操作s1120。
131.在操作s1110,单独执行自动化测试操作,或单独执行人工测试操作,来生成第七日志。
132.在操作s1120,在第七日志中写入至少一个预设埋点信息,以获得日志模板。
133.以单独执行自动化测试操作为例,在无人工测试的干预下,执行部分自动化测试案例,生成第七日志。其作用在于,可以获得自动化测试输出的日志格式。并在此基础上,根据用户源地址ip(客户端)、使用用户的标识、被测产品信息等关键词设置埋点,从而获得日志模板。日志模板可以根据需求动态更新关键词,来灵活准确地进行分类。单独执行人工测
试操作获得日志模板的步骤与上述相同,在此不做赘述。
134.图12示意性示出了根据本公开的另一实施例的日志处理方法的流程图。
135.如图12所示,该实施例的日志处理方法可以包括s210~操作s240,在获得每个第二日志与日志模板的相似度之前,还可以包括操作s1210~操作s1240。
136.在操作s1210,存储至少一个第一地址信息,以及每个第一地址信息的类别,其中,第一地址信息用于标记执行测试操作的客户端地址。
137.示例性地,可以预先存储ip列表(即至少一个第一地址信息),每个ip的类别与该客户端执行自动化测试还是人工测试对应。例如,ip列表中皆为执行自动化测试的客户端地址,则皆为自动化类别。在第一日志中检测到其中的ip时,也可作为触发复写第一日志的条件。
138.在操作s210,获得响应于测试操作而生成的第一日志,其中,测试操作包括自动化测试操作和人工测试操作。
139.在操作s220,基于第一日志的内容,获得n个第二日志,其中,每个第二日志包括测试第一业务场景所生成的日志信息,第一业务场景为m个业务场景中的任一个业务场景,n、m分别为大于或等于1的整数。
140.在操作s1220,判断第i个第二日志中是否存在第二地址信息,即判断在某条日志信息里是否存在ip地址。若是,则执行操作s1230。若否,则执行操作s230。第i个第二日志可以是任一个第二日志,i为大于或等于1的整数。
141.在操作s1230,判断第二地址信息与任一个第一地址信息匹配。若是,则执行操作s1240。若否,则执行操作s230。
142.例如以第二地址信息为检索词,在预先存储的ip列表中进行检索,若检索出匹配的ip地址,则认为判断结果为是。
143.在操作s1240,对于每个第二日志,在存在第二地址信息的情况下,若第二地址信息与任一个第一地址信息匹配,确认该第二日志与所匹配到的第一地址信息的类别相同。
144.由于在预先存储的ip列表中标记了每个ip地址的类别,若出现该ip地址,则表明日志类别与该ip地址的类别相同。
145.在操作s230,获得每个第二日志与日志模板的相似度,其中,日志模板包括由自动化测试操作或人工测试操作生成的日志。
146.在操作s240,对于每个第二日志,在相似度符合第一预设条件的情况下,确认该第二日志与日志模板的类别相同,其中,日志模板的类别包括自动化类别或人工类别。
147.需要说明的是,操作s1210可以与操作s210或s220中的任一条同时执行,也可以在任一条操作之前执行,本公开不对其具体执行顺序进行限制。
148.根据本公开的实施例,通过判断第二地址信息与第一地址信息是否匹配,来对第二日志进行分类,可以提高分类速度。
149.基于上述日志处理方法,本公开还提供了一种日志处理装置。以下将结合图13对该装置进行详细描述。
150.图13示意性示出了根据本公开实施例的日志处理装置1300的结构框图。
151.如图13所示,该实施例的日志处理装置1300包括第一获得模块1310、第二获得模块1320、日志清洗模块1330和日志分类模块1340。
152.第一获得模块1310可以执行操作s210,用于获得响应于测试操作而生成的第一日志,其中,测试操作包括自动化测试操作和人工测试操作。
153.第二获得模块1320可以执行操作s220,用于基于第一日志的内容,获得n个第二日志,其中,每个第二日志包括测试第一业务场景所生成的日志信息,第一业务场景为m个业务场景中的任一个业务场景,n、m分别为大于或等于1的整数。
154.日志清洗模块1330可以执行操作s230,用于获得每个第二日志与日志模板的相似度,其中,日志模板根据自动化测试操作或人工测试操作生成的日志获得。
155.日志分类模块1340可以执行操作s240,用于对于每个第二日志,在相似度符合第一预设条件的情况下,确认该第二日志与日志模板的类别相同,其中,日志模板的类别包括自动化类别或人工类别。
156.日志处理装置1300还可以包括自动化访问启动模块。一方面,自动化访问启动模块可以用于执行操作s1210,储存白名单ip信息。另一方面,自动化访问启动模块可以执行操作s710~操作s720。再一方面,自动化访问启动模块可以执行操作s910~操作s920。
157.第二获得模块1320还可以包括日志复写模块。日志复写模块可以响应于自动化访问启动模块发送的启动指令,执行操作s310,操作s810~操作s820。还可以响应于自动化访问启动模块发送的停止指令,停止复写操作,
158.日志清洗模块1330还可以执行操作s320,操作s410~操作s440,操作s1010~操作s1020还可以用于对于每个第二日志,若与日志模板的类别相同,则写入第四日志。若与日志模板的类别不相同,则写入第五日志。
159.日志处理装置1300还可以包括日志模板模块。日志模板模块可以用于执行操作s1110~操作s1120。
160.日志处理装置1300还可以包括日志重写模块。日志重写模块可以用于执行操作s510~操作s520。
161.日志处理装置1300还可以包括信息展示模块。信息展示模块用于前台展示,同时具备输入输出功能。可以输入:自动化访问启动模块的白名单信息。自动化访问启动模块的阀值信息。自动化访问启动模块的启动或者停止指令。日志模板模块的预设埋点信息等。可以输出:自动化访问启动模块的白名单信息,日志模板模块的日志模板,日志清洗模块的新业务日志下载,例行化日志簇下载,自动化日志簇下载等。
162.根据本公开的实施例,日志处理装置1300可以适用人工联机交易日志和自动化日志混杂场景,实现了企业级自动化案例测试期间的日志分类重写,可适配多种中间件系统。一方面,自动化测试产生的日志与正常人工联机业务交易产生日志进行分离,方便业务实施人员快速准确的查询联机交易日志。另一方面,避免因全量日志过多而导致数量少的日志,如正常人工交易日志被刷掉无法找回的场景。另一方面,支持个性化设定相关字符作为预设埋点信息,使筛选的条件更加完备,适用场景更广。最后,支持多次更新日志模版,使筛选的条件不断补充更新,实用时效性更强。
163.需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
164.根据本公开的实施例,第一获得模块1310、第二获得模块1320、日志清洗模块1330
和日志分类模块1340中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。
165.根据本公开的实施例,第一获得模块1310、第二获得模块1320、日志清洗模块1330和日志分类模块1340中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获得模块1310、第二获得模块1320、日志清洗模块1330和日志分类模块1340中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
166.图14示意性示出了根据本公开实施例的适于实现日志处理方法的电子设备的方框图。
167.如图14所示,根据本公开实施例的电子设备1400包括处理器1401,其可以根据存储在只读存储器(rom)1402中的程序或者从存储部分1408加载到随机访问存储器(ram)1403中的程序而执行各种适当的动作和处理。处理器1401例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic))等等。处理器1401还可以包括用于缓存用途的板载存储器。处理器1401可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
168.在ram 1403中,存储有电子设备1400操作所需的各种程序和数据。处理器1401、rom 1402以及ram 1403通过总线1404彼此相连。处理器1401通过执行rom 1402和/或ram 1403中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom 1402和ram 1403以外的一个或多个存储器中。处理器1401也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
169.根据本公开的实施例,电子设备1400还可以包括输入/输出(i/o)接口1405,输入/输出(i/o)接口1405也连接至总线1404。电子设备1400还可以包括连接至i/o接口1405的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1406;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1407;包括硬盘等的存储部分1408;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1409。通信部分1409经由诸如因特网的网络执行通信处理。驱动器1410也根据需要连接至i/o接口1405。可拆卸介质1411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1410上,以便于从其上读出的计算机程序根据需要被安装入存储部分1408。
170.本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
171.根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光
存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom 1402和/或ram 1403和/或rom 1402和ram 1403以外的一个或多个存储器。
172.本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的方法。
173.在该计算机程序被处理器1401执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
174.在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1409被下载和安装,和/或从可拆卸介质1411被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
175.在这样的实施例中,该计算机程序可以通过通信部分1409从网络上被下载和安装,和/或从可拆卸介质1411被安装。在该计算机程序被处理器1401执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
176.根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如java,c++,python,“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
177.以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1