CN111309585A - 日志数据测试方法及装置、系统、电子设备、存储介质 - Google Patents
日志数据测试方法及装置、系统、电子设备、存储介质 Download PDFInfo
- Publication number
- CN111309585A CN111309585A CN201811519316.6A CN201811519316A CN111309585A CN 111309585 A CN111309585 A CN 111309585A CN 201811519316 A CN201811519316 A CN 201811519316A CN 111309585 A CN111309585 A CN 111309585A
- Authority
- CN
- China
- Prior art keywords
- log data
- white list
- data
- test
- testing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开是关于一种日志数据测试方法及装置、系统、电子设备、存储介质,涉及软件测试技术领域,该方法包括:根据测试模式对应的预设日志数据生成与测试模式关联的白名单数据;通过所述白名单数据对所述测试模式关联的目标日志数据进行测试,以确定所述目标日志数据是否正常。本公开能够提高日志数据检查的效率和准确率。
Description
技术领域
本公开涉及软件测试技术领域,具体而言,涉及一种日志数据测试方法、日志数据测试装置、电子设备以及计算机可读存储介质。
背景技术
目前对于上线产品进行测试时,以性能测试、功能测试等端到端的测试为主。然而,模块上线时的日志中可能存在潜在风险。
相关技术中,一般都通过人工打开日志进行观察,日志是否异常完全取决于测试人员的认知。在存在大量日志的情况下,无法关注到每一条日志,可能造成日志遗漏问题;日志检查完全依靠测试人员认知,因此可能造成日志检查的效率和准确率较低,从而降低系统稳定性。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种日志数据测试方法、装置、系统、电子设备、存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的快速准确进行日志测试的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种日志数据测试方法,包括:根据测试模式对应的预设日志数据生成与测试模式关联的白名单数据;通过所述白名单数据对所述测试模式关联的目标日志数据进行测试,以确定所述目标日志数据是否正常。
在本公开的一种示例性实施例中,根据测试模式对应的预设日志数据生成与测试模式关联的白名单数据包括:对属于第一标签的预设日志数据进行预处理;确定预处理后的部分日志数据中每类日志数据的出现频率;根据所述出现频率确定所述白名单数据。
在本公开的一种示例性实施例中,确定预处理后的部分日志数据中每类日志数据的出现频率包括:通过聚类算法对预处理后的部分日志数据进行分类,得到多类日志数据;根据每类日志数据的出现次数的最大值确定每类日志数据的出现频率。
在本公开的一种示例性实施例中,所述方法还包括:通过所述白名单数据对属于第一标签和/或属于第二标签的除所述部分日志数据之外的预设日志数据进行测试,以确定是否更新所述白名单数据。
在本公开的一种示例性实施例中,通过所述白名单数据对属于第一标签和/或属于第二标签的除所述部分日志数据之外的预设日志数据进行测试,以确定是否更新所述白名单数据包括:若属于所述第一标签和属于所述第二标签的除所述部分日志数据之外的预设日志数据均通过所述白名单数据的测试,则不更新所述白名单数据;若属于所述第一标签或属于所述第二标签的除所述部分日志数据之外的预设日志数据未通过所述白名单数据的测试,则对所述聚类算法进行调整,以更新所述白名单数据。
在本公开的一种示例性实施例中,所述测试模式包括回归测试以及线上测试,根据测试模式对应的预设日志数据生成与测试模式关联的白名单数据包括:采用离线方式,根据历史日志数据生成与所述回归测试对应的白名单数据;或采用实时方式,根据稳定版本的线上日志数据生成与所述线上测试对应的白名单数据。
在本公开的一种示例性实施例中,通过所述白名单数据对所述测试模式关联的目标日志数据进行测试,以确定所述目标日志数据是否正常包括:通过聚类算法对所述测试模式关联的所述目标日志数据进行聚类,得到多类目标日志数据;通过所述白名单数据对每类目标日志数据进行测试,以确定每类目标日志数据是否正常。
在本公开的一种示例性实施例中,通过所述白名单数据对每类目标日志数据进行测试,以确定每类目标日志数据是否正常包括:若每类目标日志数据的出现频率满足所述白名单数据,则确定每类目标日志数据正常;若所述每类目标日志数据的所述出现频率不满足所述白名单数据,则生成提醒信息并将所述提醒信息发送至客户端。
在本公开的一种示例性实施例中,若所述测试模式为线上测试,所述目标日志数据为上线版本的线上日志数据。
根据本公开的一个方面,提供一种日志数据测试装置,包括:白名单数据生成模块,用于根据测试模式对应的预设日志数据生成与测试模式关联的白名单数据;日志测试模块,用于通过所述白名单数据对所述测试模式关联的目标日志数据进行测试,以确定所述目标日志数据是否正常。
根据本公开的一个方面,提供一种日志数据测试系统,包括:服务器,用于根据测试模式对应的预设日志数据生成测试模式关联的白名单数据,并根据所述白名单数据对所述测试模式的目标日志数据进行测试,并将测试结果发送至客户端;客户端,用于接收由所述服务器返回的所述测试结果,并展示所述测试结果。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的日志数据测试方法。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的日志数据测试方法。
本公开示例性实施例中提供的一种日志数据测试方法、装置、系统、电子设备以及计算机可读存储介质中,一方面,根据测试模式对应的预设日志数据生成的白名单数据对测试模式关联的目标日志数据进行自动测试,且可以实现日志数据纵向对比,相比于人工测试而言,提高了测试日志数据的准确率和效率;另一方面,由于可通过白名单数据自动对目标日志数据进行测试,能够测试到每一条日志数据,因此能够避免人工测试造成的遗漏问题,提高了系统稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本公开示例性实施例中一种实现日志数据测试方法的系统架构示意图。
图2示意性示出本公开示例性实施例中一种日志数据测试方法的流程图。
图3示意性示出本公开示例性实施例中生成白名单数据的流程图。
图4示意性示出本公开示例性实施例中生成白名单数据的具体流程图。
图5示意性示出本公开示例性实施例中更新白名单数据的流程图。
图6示意性示出本公开示例性实施例中离线方式产生白名单数据的流程图。
图7示意性示出本公开示例性实施例中实时方式生成白名单数据的流程图。
图8示意性示出本公开示例性实施例中分析目标日志数据的流程图。
图9示意性示出本公开示例性实施例中一种日志数据测试装置的框图。
图10示意性示出本公开示例性实施例中一种日志数据测试系统的框图。
图11示意性示出本公开示例性实施例中一种电子设备的框图。
图12示意性示出本公开示例性实施例中一种程序产品。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本示例实施方式中首先提供了一种用于实现日志数据测试的系统架构,参考图1所示,该系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送请求指令等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如图片处理应用、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本申请实施例所提供的日志数据测试方法一般由服务器105执行,相应地,日志数据测试装置一般设置于终端设备101中。
基于图1中的系统架构,本示例实施方式中提供了一种日志数据测试方法,可以应用于对模块上线或者是产品上线过程中的日志数据进行处理,以判断日志数据是否异常的场景。接下来,参考图2所示,对本示例性实施例中的日志数据测试方法进行具体说明。
在步骤S210中,根据测试模式对应的预设日志数据生成与测试模式关联的白名单数据。
本示例性实施例中,测试模式可以包括回归测试和线上测试两种模式。回归测试指的是检验软件原有功能在修改后是否保持完整。回归测试并不减少对系统新功能和特征的测试需求,回归测试包应包括新功能和特征的测试。回归测试并不是只在需求变更时进行,回归测试可以发生在软件生命周期的任意一个部分,从单元测试、功能测试、集成测试、甚至到发布测试。测试模式还可以包括线上测试,线上测试指的是对上线新版本或者是上线新产品的测试,以通过线上测试提高产品的质量。
对于回归测试而言,预设日志数据指的是历史回归测试后的历史日志数据,即每次回归测试后统计的用于回归测试的日志数据。对于线上测试而言,预设日志数据指的是线上日志数据,一般为线上环境的代码是稳定版本的日志数据。预设日志数据一般可以用LOG集合的方式来表示,LOG集合中可包括用户信息、测试信息等。
白名单数据指的是用于对目标日志数据进行测试的数据,通过白名单数据可以确定目标日志数据是否满足要求。本示例性实施例中,针对不同的测试模式生成白名单数据的方式也不同,以应对不同的测试场景。例如,在回归测试中,通过离线方式生成与回归测试对应的白名单数据。离线方式中,主要是对历史日志数据进行爬取。在测试过程中通过和历史日志数据集合的对比,从历史日志数据里发现一切可疑点,进行上报,降低代码出问题的概率。再例如,线上测试中,通过实时方式生成与线上测试对应的白名单数据。实时方式中,主要是对线上稳定版本的集群日志进行实时爬取,生成白名单数据。任何一种方式生成的白名单数据中均可以包括用于记录某些日志出现的频率,以通过记录的频率进行后续日志分析。
具体地,可通过对所述测试模式对应的所述预设日志数据进行学习,生成与所述测试模式关联的所述白名单数据。也就是说,通过对回归测试的历史日志数据进行学习,通过离线方式生成与回归测试对应的白名单数据。通过对线上测试的线上日志数据进行学习,通过实时方式生成与线上测试对应的白名单数据。通过不同方式以及不同的预设日志数据生成不同测试模式关联的白名单数据,能够使得到的白名单数据更准确,更符合测试模式,从而能够实现精准地日志测试。
参考图3所示,通过对所述测试模式对应的所述预设日志数据进行分析,生成与所述测试模式关联的所述白名单数据的具体步骤包括步骤S301和步骤S302。其中:
在步骤S301中,获取所述预设日志数据对应的第一标签或第二标签。
在本步骤中,第一标签和第二标签可以为手动标记的,也可以为通过算法进行标记的,此处不作特殊限定。第一标签可以为表示预设日志数据通过测试的标签,例如可以用PASS或者是数字1等标识来表示。第二标签可以为表示预设日志数据未通过测试的标签,例如可以用FAIL或者是数字0等标识来表示。具体的表现形式此处不作特殊限定,只要能够分别表示通过测试和未通过测试即可。以回归测试中生成白名单数据的过程为例进行说明。在初始阶段日常的回归测试中,会自动收集历史日志数据并存储。根据人员确认及上线的最终结果(即是否上线),对收集的历史日志数据进行检测和打标签,将回归测试的预设日志数据分为PASS和FAIL两种标签的日志数据。
在步骤S302中,通过对属于所述第一标签的预设日志数据中的部分日志数据进行分析,生成所述白名单数据。
本示例性实施例中,属于所述第一标签的预设日志数据中的部分日志数据指的是PASS日志数据集合,此处的部分日志数据可作为训练样本,部分日志数据可以为预设日志数据中的一半以上的数据,数据量越多,得到的白名单数据越准确。对属于所述第一标签的预设日志数据的部分日志数据进行分析可以理解为对部分PASS的历史日志数据集合进行训练或者是学习。参考图4中所示,步骤S302的具体过程包括步骤S401至步骤S403。其中:
在步骤S401中,对属于第一标签的预设日志数据进行预处理。
本示例性实施例中,预处理包括但不限于切词、数据过滤以及统计等操作,具体地,可对标签为PASS的历史日志数据形成的集合进行切词,去除无意义词或者是去除一些特定的单词,留下具有通用性并且有意义的句子,例如去除LOG中的用户信息等。还可以分词分句频率统计,对出现次数排列在前N位的错误语句进行分析,N可以根据实际需求进行设置。与此同时,还可以将已知不严重的错误或者正常日志数据,以及频率没有超过一定阈值的语句进行忽略。通过进行预处理,可以避免无意义词或者是特定词的影响,能够更准确地进行日志数据分析,同时由于预处理过程,可避免无关的或者是影响较小的预设日志数据的干扰,减少了要分析的数据量,提高了日志数据分析效率。
在步骤S402中,确定预处理后的部分日志数据中每类日志数据的出现频率。
本示例性实施例中,可对预处理后的部分日志数据进行分类得到多类日志数据,例如第一类、第二类、第三类等等。具体地,在对PASS的历史日志数据进行预处理之后,可以通过聚类算法对预处理后的部分日志数据进行分类,聚类算法例如可以包括K-means聚类算法、均值漂移聚类、基于密度的聚类方法(DBSCAN)、层次聚类等等。通过聚类算法可将具有相同特点的日志语句聚合为一类,从而得到多类日志数据。通过聚类算法,能够准确地对预处理后的部分日志数据进行分类,得到准确的分类结果,即多类日志数据。
在对部分日志数据进行分类之后,可根据每次回归测试时每类日志语句的出现次数确定每类日志数据的出现频率。具体地,为了提高准确性,可将每类日志数的出现次数的最大值作为每类日志数据的出现频率。例如,第一类日志数据的出现次数分别为10次、20次、30次,则其出现频率为30次。
在步骤S403中,根据所述出现频率确定所述白名单数据。
在本示例性实施例中,若每次回归测试时都会出现该类日志数据,则将该类日志数据出现的最大次数确定的出现频率作为白名单数据中的频率,生成回归测试阶段针对该类日志数据的白名单数据。例如,第一类日志数据的出现次数分别为10次、20次、30次等,则对于第一类日志数据而言,回归测试阶段的白名单数据中包括第一类日志数据30次。同样的方法,可以根据所有类日志数据出现的最大次数生成回归测试阶段的白名单数据,以通过白名单数据的方式,展示存在的错误语句等等。
在生成回归测试对应的白名单数据之后,由于并不知道白名单数据是否准确,因此需要对生成的白名单数据进行测试,以检验白名单数据测试日志数据是否错误的准确率。具体地,在测试白名单数据时,可通过所述白名单数据对属于第一标签和/或属于第二标签的除部分日志数据之外的预设日志数据进行测试,以确定是否更新所述白名单数据。也就是说,测试数据虽然属于预设日志数据的一部分,但是不能与训练数据相同。通过确定白名单数据是否需要更新,可提高白名单数据的准确性和实时性,从而避免由于漏掉对某一类日志的测试而导致的系统不稳定的问题。
参考图5中所示,通过所述白名单数据对属于第一标签和/或属于第二标签的除部分日志数据之外的预设日志数据进行测试,以确定是否更新所述白名单数据的具体步骤包括步骤S501和步骤S502。
在步骤S501中,若属于所述第一标签和属于所述第二标签的除部分日志数据之外的预设日志数据均通过所述白名单数据测试,则不更新所述白名单数据。
在本步骤中,在对进行白名单数据测试时,可将步骤S401至步骤S403中使用的部分日志数据之外的预设日志数据作为测试数据,也就是说,可将属于第一标签的剩余日志数据和属于第二标签的全部的预设日志数据作为测试数据,对生成的白名单数据进行测试。具体地,用全部FAIL的历史日志数据和部分PASS的历史日志数据作为测试数据,如果日志数据1的标签为PASS,经过白名单数据进行测试后的结果仍为PASS。如果日志数据2的标签为FAIL,经过白名单数据进行测试后的结果仍为FAIL。通过同样的方法,经过白名单数据对所有PASS的历史日志数据进行测试仍为PASS,且经过白名单数据对所有FAIL的历史日志数据进行测试仍为FAIL,则可以认为白名单数据判定无误,不需要对白名单数据进行调整。
在步骤S502中,若属于所述第一标签或属于所述第二标签的除部分日志数据之外的预设日志数据未通过所述白名单数据测试,则对所述聚类算法进行调整,以更新所述白名单数据。具体地,用全部FAIL的历史日志数据和部分PASS的历史日志数据作为测试数据,如果日志数据1的标签为PASS,经过白名单数据进行测试后的结果仍为PASS。如果日志数据2的标签为FAIL,经过白名单数据进行测试后的结果为PASS。如果经过白名单数据对所有历史日志数据进行测试得到的结果与原本确定的标签PASS或FAIL不同,则可以认为白名单数据判定有误,需要对白名单数据进行调整。
由于白名单是根据对预设日志数据进行聚类,然后得到每类日志数据的出现频率而确定的,因此在对白名单数据进行调整时,需要对聚类算法的参数进行调节,从而继续通过图4和图5中的步骤进行训练和测试,得到准确的白名单数据。另外,也可以收集更多的历史日志数据进行训练,得到更准确的白名单数据。本示例性实施例中,通过白名单数据对第一标签的剩余历史日志数据和第二标签的所有历史日志数据进行分析验证,若分析结果得到的标签与初始标定的标签不同,则认为白名单数据判定结果有问题,以调整聚类算法的参数或者收集更多的日志,继续强化学习历史日志数据,升级和更新白名单数据,直至白名单数据测试出来的标签与初始标定的标签一致为止。
图6中示出了离线方式产生的白名单数据的应用过程,具体包括:
在步骤S601中,获取历史日志数据LOG。
在步骤S602中,对历史日志数据LOG进行测试,以根据测试是否通过确定历史日志数据的标签。若否,则通过步骤S603确定历史日志数据的标签为FAIL。
在步骤S604中,若历史日志数据LOG通过测试,则确定历史日志数据的标签为PASS。
在步骤S605中,对标签为PASS的历史日志数据进行学习。
在步骤S606中,通过对标签为PASS的历史日志数据进行学习得到针对回归测试的白名单数据。
在步骤S607中,通过白名单数据检验回归测试中的日志数据。
通过离线方式以及历史日志数据,能够生成针对回归测试的白名单数据,得到更符合回归测试模式的白名单数据。
对于线上测试而言,可通过线上日志数据以及实时方式生成针对线上测试的白名单数据。实时方式生成的白名单数据主要用于上线过程中的日志数据判别,保证上线过程中不会产生新的未知错误。需要说明的是,实时方式生成白名单数据的具体过程与离线方式相同,即图3和图4中的步骤。只是实时方式中的预设日志数据指的是线上日志数据,而不是历史日志数据,因此用于生成白名单数据的属于第一标签的PASS LOG也来源于线上日志数据。
图7中示出了实时方式产生的白名单数据的应用过程,具体包括:
在步骤S701中,使用FileBeat工具获取线上日志数据LOG,并根据是否上线确定线上日志数据的标签为FAIL还是为PASS。
在步骤S702中,将标签为PASS的线上日志数据LOG进行划分为稳定版本和上线版本两个主题Topic,并存储到Kafka集群。其中,FileBeat是一个日志文件托运工具,在服务器上安装客户端后,Filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件内容。
在步骤S703中,实时消费Kafka集群,对两个主题的线上日志数据进行分析,判断是否存在异常未知错误。其中,Kafka是一种高吞吐量的分布式发布订阅消息系统,用于生产和消费数据。
在步骤S704中,从Kafka集群获取稳定版本LOG。
在步骤S705中,获取由稳定版本的线上日志数据生成的白名单数据。
在步骤S706中,实时迭代白名单数据,检验上线版本机器的线上日志数据,判断上线过程中新版本是否出现问题。
具体地,在服务器上安装客户端后,可使用日志文件托运工具FileBeat监控日志目录或者指定的日志文件,追踪读取这些文件内容。进一步地,可将线上日志数据存储至用于生产和消费数据的高吞吐量的分布式发布订阅消息系统Kafka,且可以分别存储为稳定版本和上线版本。默认情况下,可认为线上环境的代码是稳定版本。也就是说,在线上测试中,根据稳定版本的线上日志数据生成白名单数据,以使得生成的白名单数据更符合线上测试的要求,提高准确性。除此之外,也可以对线上测试的白名单数据进行验证更新,直至白名单数据测试出来的标签与初始标定的标签一致为止,以提高通过白名单数据测试日志数据的准确率。
除了生成白名单数据之外,还可以设置一个预设规则。预设规则指的是针对具体类型的日志数据进行设置的规则。例如逻辑类的错误将不能设置白名单数据。针对超时类的错误,设置可忽略的出现次数,避免日志分析大面积报警。另外,可以设置比率控制高出白名单频率多少进行报警。通过设置预设规则,可减少白名单数据,也可以避免从而使得白名单数据更准确。
接下来,在步骤S220中,通过所述白名单数据对所述测试模式关联的目标日志数据进行测试,以确定所述目标日志数据是否正常。
本示例性实施例中,目标日志数据指的是最终要测试的日志数据,针对回归测试或线上测试的目标日志数据可不同。例如,针对回归测试的目标日志数据可以为预设时间内的日志数据,针对线上测试的目标日志数据可以为存储在分布式发布订阅消息系统Kafka中上线版本的线上日志数据。根据白名单数据测试的过程,主要是上线新版本后的机器与未上线新版本的机器进行日志比较,以保证上线的代码版本对线上业务无影响。
具体地,通过所述白名单数据对所述测试模式关联的目标日志数据进行测试,以确定所述目标日志数据是否正常的步骤包括:第一步,通过聚类算法对所述测试模式关联的所述目标日志数据进行聚类,得到多类目标日志数据。其中,聚类算法可以与上述步骤S402中的聚类算法相同,可通过聚类算法分别对回归测试或线上测试的目标日志数据进行聚类,聚类的具体过程也可以相同,此处不再赘述。
第二步,通过所述白名单数据对每类目标日志数据进行测试,以确定每类目标日志数据是否正常。具体地,若每类目标日志数据的出现频率满足所述白名单数据,则确定每类目标日志数据正常。例如,对于回归测试而言,当回归测试完成后,获取预设时间内的线上日志数据,对线上日志数据通过聚类算法进行归类,然后检查每类线上日志数据的出现频率是否大幅度超过白名单数据中的出现频率。若未超过白名单数据中的出现频率,则认为预设时间内的每类线上日志数据正常。
若超过白名单数据中的出现频率,即如果频率异常或者出现新一类问题,则认为回归测试中预设时间内的线上日志数据异常。
若所述测试模式为线上测试,则通过由稳定版本的线上日志数据生成的白名单数据,对上线版本的每类目标日志数据(线上日志数据)进行测试,具体的测试过程与回归测试的方法相同,此处不再赘述。通过线上测试的白名单数据判断目标日志数据中是否有问题,并在目标日志数据有问题时阻止发布版本或者上线,保证上线的代码质量。在上线过程中,通过上线版本和稳定版本日志的不断横向对比,保证上线的代码不会引起新的问题。
需要补充的是,若判断目标日志数据的出现频率不满足针对回归测试或者是线上测试的白名单数据中的出现频率,则认为该目标日志数据异常。在判断目标日志数据出现异常时,可生成提醒信息并将提醒信息发送至客户端,以使客户端进行展示。提醒信息的表现形式可以为邮件、信息等等。如此一来,在检测到目标日志数据异常后,此时会停止上线,并进行分析。将表示异常的目标日志数据的提醒信息,以邮件形式发送至开发人员或者是测试人员的客户端,能便于及时解决和排查异常,从而提高系统稳定性。
除此之外,整个过程中可根据具体的业务模块,配置显示的模板,进行优先级定义,完成不同级别的规则配置,做到分层次分析目标日志数据。通过将不同级别的目标日志数据根据具体的展示规则进行显示,能够方便进行排查,从而提高效率。
图8示意性示出了分析日志数据的整体流程图,具体包括以下步骤:
在步骤S801中,测试开始,此处指的是回归测试或者是线上测试。
在步骤S802中,测试完成。若测试通过,转至步骤S803。若测试未通过,转至步骤S809。
在步骤S803中,收集预设日志数据LOG。
在步骤S804中,对预设日志数据LOG进行处理,具体包括预处理和打标签等等。
在步骤S805中,判断是对预设日志数据LOG进行训练还是分析。
在步骤S806中,对预设日志数据LOG进行训练,生成白名单数据。
在步骤S807中,对预设日志数据LOG进行分析,根据白名单数据和预设规则进行判断。
在步骤S808中,根据模块进行定制化报错。
在步骤S809中,判断白名单数据测试的日志数据生成的是否通过。
在步骤S810中,若通过,对日志数据进行线上差异验证。主要是上线新版本后的机器与未上线新版本的机器进行日志比较,保证上线的代码版本对线上业务无影响。
通过本示例性实施例中的方法,根据测试模式对应的预设日志数据中的标签为PASS的训练数据生成白名单数据,并用另一部分存在标签的预设日志数据作为测试数据,对生成的白名单数据进行测试,能够使得生成的白名单数据更准确。进一步地,通过白名单数据对所述测试模式关联的目标日志数据进行自动测试,且可以实现日志数据纵向对比,相比于人工测试而言,提高了测试日志数据的准确率和效率。另外,由于可通过白名单数据自动对目标日志数据进行测试,能够测试到每一条日志数据,因此能够避免人工测试造成的遗漏问题,提高了系统稳定性。本发明技术方案对比人工查看日志,不会出现漏看或者错看的问题。同时,通过日志还可以发现模块测试以外的问题,如上下游团队的一些问题。上线过程中,也保证了上线的稳定性,减少了上线后,出问题引起的回滚次数,保证线上系统的稳定性,能够发现潜在问题。
本公开还提供了一种日志数据测试装置。参考图9所示,该日志数据测试装置可以包括:
白名单数据生成模块901,用于根据测试模式对应的预设日志数据生成与测试模式关联的白名单数据;
日志测试模块902,用于通过所述白名单数据对所述测试模式关联的目标日志数据进行测试,以确定所述目标日志数据是否正常。
在本公开的一种示例性实施例中,
在本公开的一种示例性实施例中,白名单数据生成模块包括:预处理模块,用于对属于第一标签的预设日志数据进行预处理;频率确定模块,用于确定预处理后的部分日志数据中每类日志数据的出现频率;白名单生成控制模块,用于根据所述出现频率确定所述白名单数据。
在本公开的一种示例性实施例中,频率确定模块包括:日志分类模块,用于通过聚类算法对预处理后的部分日志数据进行分类,得到多类日志数据;频率确定控制模块,用于根据每类日志数据的出现次数的最大值确定每类日志数据的出现频率。
在本公开的一种示例性实施例中,所述装置还包括:白名单更新模块,用于通过所述白名单数据对属于第一标签和/或属于第二标签的除所述部分日志数据之外的预设日志数据进行测试,以确定是否更新所述白名单数据。
在本公开的一种示例性实施例中,白名单更新模块包括:第一判定模块,用于若属于所述第一标签和属于所述第二标签的除所述部分日志数据之外的预设日志数据均通过所述白名单数据的测试,则不更新所述白名单数据;第二判定模块,用于若属于所述第一标签或属于所述第二标签的除所述部分日志数据之外的预设日志数据未通过所述白名单数据的测试,则对所述聚类算法进行调整,以更新所述白名单数据。
在本公开的一种示例性实施例中,所述测试模式包括回归测试以及线上测试,白名单数据生成模块包括:离线生成模块,用于采用离线方式,根据历史日志数据生成与所述回归测试对应的白名单数据;或实时生成模块,用于采用实时方式,根据稳定版本的线上日志数据生成与所述线上测试对应的白名单数据。
在本公开的一种示例性实施例中,日志测试模块包括:目标日志聚类模块,用于通过聚类算法对所述测试模式关联的所述目标日志数据进行聚类,得到多类目标日志数据;测试控制模块,用于通过所述白名单数据对每类目标日志数据进行测试,以确定每类目标日志数据是否正常。
在本公开的一种示例性实施例中,测试控制模块包括:第一测试模块,用于若每类目标日志数据的出现频率满足所述白名单数据,则确定每类目标日志数据正常;第二测试模块,用于若所述每类目标日志数据的所述出现频率不满足所述白名单数据,则生成提醒信息并将所述提醒信息发送至客户端。
在本公开的一种示例性实施例中,若所述测试模式为线上测试,所述目标日志数据为上线版本的线上日志数据。
需要说明的是,上述日志数据测试装置中各功能模块的具体细节已经在对应的日志数据测试方法中进行了详细描述,因此此处不再赘述。
本示例性实施例中,还提供了一种日志数据测试系统1000,参考图10所示,该系统包括:服务器1010,用于根据测试模式对应的预设日志数据生成测试模式关联的白名单数据,并根据所述白名单数据对所述测试模式的目标日志数据进行测试,并将测试结果发送至客户端。其中,服务器可包括:
离线生成模块1011,用于采用离线方式,根据回归测试中的历史日志数据生成回归测试的白名单数据。
实时生成模块1012,用于采用实时方式,根据线上测试中的稳定版本的线上日志数据生成线上测试的白名单数据。
第一日志测试模块1013,用于根据回归测试对应的白名单数据对预设时间段内的目标日志数据进行测试。
第二日志测试模块1014,用于根据线上测试对应的白名单数据对上线版本的线上日志数据进行测试。
客户端1020,用于接收由所述服务器返回的所述测试结果,并展示所述测试结果。具体地,可以根据具体的业务模块,配置显示的模板,进行优先级定义,完成不同级别的规则配置,做到分层次分析日志。具体地,可按照具体的展示规则展示不同级别的log日志,例如,先展示异常普通字符、再展示异常新字符、再展示异常基础服务字符、最后展示关键错误等等,以方便开发人员进行排查和分析,及时对异常日志进行处理。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图11来描述根据本发明的这种实施方式的电子设备1100。图11显示的电子设备1100仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图11所示,电子设备1100以通用计算设备的形式表现。电子设备1100的组件可以包括但不限于:上述至少一个处理单元1110、上述至少一个存储单元1120、连接不同系统组件(包括存储单元1120和处理单元1110)的总线1130。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1110执行,使得所述处理单元1110执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元1110可以执行如图2中所示的步骤。
存储单元1120可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)11201和/或高速缓存存储单元11202,还可以进一步包括只读存储单元(ROM)11203。
存储单元1120还可以包括具有一组(至少一个)程序模块11205的程序/实用工具11204,这样的程序模块11205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1130可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
显示单元1140可以为具有显示功能的显示器,以通过该显示器展示由处理单元1110执行本示例性实施例中的方法而得到的处理结果。显示器包括但不限于液晶显示器或者是其它显示器。
电子设备1100也可以与一个或多个外部设备1300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1100交互的设备通信,和/或与使得该电子设备1100能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1150进行。并且,电子设备1100还可以通过网络适配器1160与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1160通过总线1130与电子设备1100的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图12所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品1200,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
Claims (13)
1.一种日志数据测试方法,其特征在于,包括:
根据测试模式对应的预设日志数据生成与测试模式关联的白名单数据;
通过所述白名单数据对所述测试模式关联的目标日志数据进行测试,以确定所述目标日志数据是否正常。
2.根据权利要求1所述的日志数据测试方法,其特征在于,根据测试模式对应的预设日志数据生成与测试模式关联的白名单数据包括:
对属于第一标签的预设日志数据进行预处理;
确定预处理后的部分日志数据中每类日志数据的出现频率;
根据所述出现频率确定所述白名单数据。
3.根据权利要求2所述的日志数据测试方法,其特征在于,确定预处理后的部分日志数据中每类日志数据的出现频率包括:
通过聚类算法对预处理后的部分日志数据进行分类,得到多类日志数据;
根据每类日志数据的出现次数的最大值确定每类日志数据的出现频率。
4.根据权利要求2所述的日志数据测试方法,其特征在于,所述方法还包括:
通过所述白名单数据对属于第一标签和/或属于第二标签的除所述部分日志数据之外的预设日志数据进行测试,以确定是否更新所述白名单数据。
5.根据权利要求4所述的日志数据测试方法,其特征在于,通过所述白名单数据对属于第一标签和/或属于第二标签的除所述部分日志数据之外的预设日志数据进行测试,以确定是否更新所述白名单数据包括:
若属于所述第一标签和属于所述第二标签的除所述部分日志数据之外的预设日志数据均通过所述白名单数据的测试,则不更新所述白名单数据;
若属于所述第一标签或属于所述第二标签的除所述部分日志数据之外的预设日志数据未通过所述白名单数据的测试,则对所述聚类算法进行调整,以更新所述白名单数据。
6.根据权利要求1所述的日志数据测试方法,其特征在于,所述测试模式包括回归测试以及线上测试,根据测试模式对应的预设日志数据生成与测试模式关联的白名单数据包括:
采用离线方式,根据历史日志数据生成与所述回归测试对应的白名单数据;或
采用实时方式,根据稳定版本的线上日志数据生成与所述线上测试对应的白名单数据。
7.根据权利要求1所述的日志数据测试方法,其特征在于,通过所述白名单数据对所述测试模式关联的目标日志数据进行测试,以确定所述目标日志数据是否正常包括:
通过聚类算法对所述测试模式关联的所述目标日志数据进行聚类,得到多类目标日志数据;
通过所述白名单数据对每类目标日志数据进行测试,以确定每类目标日志数据是否正常。
8.根据权利要求7所述的日志数据测试方法,其特征在于,通过所述白名单数据对每类目标日志数据进行测试,以确定每类目标日志数据是否正常包括:
若每类目标日志数据的出现频率满足所述白名单数据,则确定每类目标日志数据正常;
若所述每类目标日志数据的所述出现频率不满足所述白名单数据,则生成提醒信息并将所述提醒信息发送至客户端。
9.根据权利要求7或8所述的日志数据测试方法,其特征在于,若所述测试模式为线上测试,所述目标日志数据为上线版本的线上日志数据。
10.一种日志数据测试装置,其特征在于,包括:
白名单数据生成模块,用于根据测试模式对应的预设日志数据生成与测试模式关联的白名单数据;
日志测试模块,用于通过所述白名单数据对所述测试模式关联的目标日志数据进行测试,以确定所述目标日志数据是否正常。
11.一种日志数据测试系统,其特征在于,包括:
服务器,用于根据测试模式对应的预设日志数据生成测试模式关联的白名单数据,并根据所述白名单数据对所述测试模式的目标日志数据进行测试,并将测试结果发送至客户端;
客户端,用于接收由所述服务器返回的所述测试结果,并展示所述测试结果。
12.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-9任意一项所述的日志数据测试方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-9任意一项所述的日志数据测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811519316.6A CN111309585A (zh) | 2018-12-12 | 2018-12-12 | 日志数据测试方法及装置、系统、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811519316.6A CN111309585A (zh) | 2018-12-12 | 2018-12-12 | 日志数据测试方法及装置、系统、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111309585A true CN111309585A (zh) | 2020-06-19 |
Family
ID=71144633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811519316.6A Pending CN111309585A (zh) | 2018-12-12 | 2018-12-12 | 日志数据测试方法及装置、系统、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309585A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069137A (zh) * | 2020-09-02 | 2020-12-11 | 北京百度网讯科技有限公司 | 生成信息的方法、装置、电子设备及计算机可读存储介质 |
CN112231224A (zh) * | 2020-10-30 | 2021-01-15 | 平安银行股份有限公司 | 基于人工智能的业务系统测试方法、装置、设备和介质 |
-
2018
- 2018-12-12 CN CN201811519316.6A patent/CN111309585A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069137A (zh) * | 2020-09-02 | 2020-12-11 | 北京百度网讯科技有限公司 | 生成信息的方法、装置、电子设备及计算机可读存储介质 |
CN112069137B (zh) * | 2020-09-02 | 2024-05-17 | 阿波罗智联(北京)科技有限公司 | 生成信息的方法、装置、电子设备及计算机可读存储介质 |
CN112231224A (zh) * | 2020-10-30 | 2021-01-15 | 平安银行股份有限公司 | 基于人工智能的业务系统测试方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12001788B2 (en) | Systems and methods for diagnosing problems from error logs using natural language processing | |
US11449379B2 (en) | Root cause and predictive analyses for technical issues of a computing environment | |
US11467817B2 (en) | Software component defect prediction using classification models that generate hierarchical component classifications | |
US20150347212A1 (en) | Error classification in a computing system | |
US11487539B2 (en) | Systems and methods for automating and monitoring software development operations | |
US9710364B2 (en) | Method of detecting false test alarms using test step failure analysis | |
Huang et al. | AutoODC: Automated generation of orthogonal defect classifications | |
CN110546619B (zh) | 自动确定检测到的问题是否是bug的方法、系统和介质 | |
US20200104774A1 (en) | Cognitive user interface for technical issue detection by process behavior analysis for information technology service workloads | |
CN110851471A (zh) | 分布式日志数据处理方法、装置以及系统 | |
US20150007137A1 (en) | Document quality review and testing | |
US20220091916A1 (en) | Data selection and sampling system for log parsing and anomaly detection in cloud microservices | |
CN111309585A (zh) | 日志数据测试方法及装置、系统、电子设备、存储介质 | |
Fu et al. | An empirical study of the impact of log parsers on the performance of log-based anomaly detection | |
CN113591998A (zh) | 分类模型的训练和使用方法、装置、设备以及存储介质 | |
CN113609008A (zh) | 测试结果分析方法、装置和电子设备 | |
Kohyarnejadfard et al. | Anomaly detection in microservice environments using distributed tracing data analysis and NLP | |
US11971802B2 (en) | Method, electronic device, and computer program product for code defect detection | |
CN113778875B (zh) | 一种系统测试缺陷分类方法、装置、设备及存储介质 | |
CN115292187A (zh) | 无编码的页面自动测试方法、装置、电子设备和介质 | |
CN113590484B (zh) | 算法模型服务测试方法、系统、设备及存储介质 | |
Goyal et al. | An empirical study of non-reproducible bugs | |
CN115686895A (zh) | 数据库异常诊断方法、装置、设备、介质和程序产品 | |
CN114706856A (zh) | 故障处理方法及装置、电子设备和计算机可读存储介质 | |
Remil | A data mining perspective on explainable AIOps with applications to software maintenance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |