日志测试方法及装置与流程

文档序号:12363483阅读:795来源:国知局
日志测试方法及装置与流程

本发明涉及计算机领域,尤其涉及一种日志测试方法及装置。



背景技术:

网络设备、系统及服务程序等,在运作时都会产生一个log事件记录。每一行日志都记载着日期、时间、使用者以及动作等相关操作的描述。因此,每个日志用例可能对应着不同的执行逻辑。

目前,对于日志用例的测试,通常采用人工测试的方法。由工作人员触发日志用例生成日志,并在日志生成之后,由工作人员去服务器上检查所生成的日志记录的内容是否正确。但人工测试日志用例比较耗时,不能保证测试的覆盖率,回归测试时间也比较长。



技术实现要素:

技术问题

有鉴于此,本发明要解决的技术问题是,如何提高日志用例的测试效率。

解决方案

为了解决上述技术问题,根据本发明的一实施例,提供了一种日志测试方法,包括:

在日志服务器中查找到用于存储目标日志文件的文件夹;

在所述文件夹没有包括其他日志文件的情况下,根据待测试的目标日志用例,生成所述目标日志文件;

将所述目标日志文件所记录的内容与所述目标日志用例的预设内容进行比较,并根据比较结果确定所述目标日志用例能否正常运行。

对于上述方法,在一种可能的实现方式中,还包括:

在所述文件夹包括其他日志文件的情况下,删除所述文件夹所包括的全部的日志文件。

对于上述方法,在一种可能的实现方式中,根据待测试的目标日志用例,生成所述目标日志文件,包括:

触发所述目标日志用例对应的请求链接,生成所述目标日志文件。

对于上述方法,在一种可能的实现方式中,将所述目标日志文件所记录的内容与所述目标日志用例的预设内容进行比较,并根据比较结果确定所述目标日志用例能否正常运行,包括:

打开所述目标日志文件,并提取所述目标日志文件所记录的内容;

将所述内容与所述预设内容进行比较,在所述内容与所述预设内容相同的情况下,所述目标日志用例能够正常运行;或,将所述内容与所述预设内容进行比较,在所述内容与所述预设内容不相同的情况下,所述目标日志用例不能够正常运行。

对于上述方法,在一种可能的实现方式中,还包括:

在发现待测试的系统的代码进行更新的情况下,从所述系统包括的各日志用例中获取至少一个待测试的目标日志用例。

为了解决上述技术问题,根据本发明的另一实施例,提供了一种日志测试装置,包括:

查找模块,用于在日志服务器中查找到用于存储目标日志文件的文件夹;

生成模块,与所述查找模块连接,用于在所述文件夹没有包括其他日志文件的情况下,根据待测试的目标日志用例,生成所述目标日志文件;

比较模块,与所述生成模块连接,用于将所述目标日志文件所记录的内容与所述目标日志用例的预设内容进行比较,并根据比较结果确定所述目标日志用例能否正常运行。

对于上述装置,在一种可能的实现方式中,还包括:

删除模块,用于在所述文件夹包括其他日志文件的情况下,删除所述文件夹所包括的全部的日志文件。

对于上述装置,在一种可能的实现方式中,具体用于

触发所述目标日志用例对应的请求链接,生成所述目标日志文件。

对于上述装置,在一种可能的实现方式中,具体用于

打开所述目标日志文件,并提取所述目标日志文件所记录的内容;

将所述内容与所述预设内容进行比较,在所述内容与所述预设内容相同的情况下,所述目标日志用例能够正常运行;或,将所述内容与所述预设内容进行比较,在所述内容与所述预设内容不相同的情况下,所述目标日志用例不能够正常运行。

对于上述装置,在一种可能的实现方式中,还包括:

调取模块,用于在发现待测试的系统的代码进行更新的情况下,从所述系统包括的各日志用例中获取至少一个待测试的目标日志用例。

有益效果

本发明实施例的日志测试方法,根据待测试的目标日志用例,生成目标日志文件,并将目标日志文件所记录的内容与目标日志用例的预设内容进行比较,以确定目标日志用例能否正常运行,能够提高日志用例的测试效率。

进一步地,本发明实施例的日志测试方法,可以应用于对各种类型的日志用例进行测试,能够模拟大量的日志场景,增加了测试的覆盖率,保证了日志用例的质量。

进一步地,在系统的代码进行更新的情况下,可以对系统包括的各日志用例进行测试,能够极大提高测试效率,缩短回归测试时间,消除代码更新对日志用例的影响。

根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。

附图说明

包括在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。

图1示出根据本发明一实施例的日志测试方法的流程图;

图2示出根据本发明一实施例的日志测试方法的另一流程图;

图3示出根据本发明一实施例的日志测试方法的另一流程图;

图4示出根据本发明一实施例的日志测试方法的另一流程图;

图5示出根据本发明一实施例的日志测试方法的另一流程图;

图6示出根据本发明一实施例的日志测试方法的另一流程图;

图7示出根据本发明另一实施例的日志测试装置的结构框图;

图8示出根据本发明另一实施例的日志测试装置的另一结构框图;

图9示出根据本发明另一实施例的日志测试装置的另一结构框图;

图10示出根据本发明另一实施例的日志测试设备的结构框图。

具体实施方式

以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。

实施例1

图1示出根据本发明一实施例的日志测试方法的流程图。如图1所示,所述日志测试方法,主要包括:

步骤101、在日志服务器中查找到用于存储目标日志文件的文件夹;

步骤102、在所述文件夹没有包括其他日志文件的情况下,根据待测试的目标日志用例,生成所述目标日志文件;

步骤103、将所述目标日志文件所记录的内容与所述目标日志用例的预设内容进行比较,并根据比较结果确定所述目标日志用例能否正常运行。

具体地,网络设备、系统及服务程序等,在运作时会产生日志文件,例如系统日志、安全日志等,本实施例不限定日志文件的具体类型。每个日志文件可以记载着日期、时间、使用者及动作等相关操作的描述,这些内容对系统的运营维持具有重要作用。具体地,例如,系统日志可以记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。安全日志可以记录每次开关机、运行程序、系统报错时的信息。

以Windows操作系统为例,其设计有各种类型的日志,例如,可以包括应用程序日志,安全日志、系统日志、Scheduler服务日志、FTP(File Transfer Protocol,文件传输协议)日志、WWW(World Wide Web,万维网)日志、DNS(Domain Name System,域名系统)服务器日志等。使用者在系统上进行一些操作时,这些日志文件通常会记录下操作的相关内容。例如,使用者对系统进行了IPC(Inter-Process Communication,进程间通信)探测,系统就会在安全日志里迅速地记下探测者探测时所用的IP地址、时间、用户名等内容。

本发明实施例的日志服务器可以包括能够存储日志文件的各种类型的服务器,在此不做限定。进一步地,本发明实施例不限定服务器的数目,可以是单台服务器,也可以是集群服务器。其中,日志文件的类型可以通过用户的行为或系统的操作进行划分。例如,在视频播过程中,刚开始播放视频广告的时候会记录开始监播日志,用户点击广告会有广告点击日志,广告播放完会有监播结束日志。

日志用例可以包括各种类型的能够生成日志的测试用例,在此不做限定。在测试用例中,把不同的参数组成链接,访问链接可以生成日志,不同的链接生成的日志所述包括的内容不同。不同日志用例产生的日志文件存储在日志服务器内的不同的文件夹中。在一个文件夹中可以获取预设时间段例如1小时内的日志文件,在此不做限定。本实施例的日志测试方法可以将选定的日志用例或系统所包括的全部日志用例进行测试,以确定各日志用例能否正常运行,能够提高日志用例的测试效率。

在一种可能的实现方式中,如图2所示,所述日志测试方法,还包括:

步骤102a、在所述文件夹包括其他日志文件的情况下,删除所述文件夹所包括的全部的日志文件。

本发明实施例的日志测试方法,需要根据待测试的目标日志用例,生成目标日志文件,并将目标日志文件所记录的内容与目标日志用例的预设内容进行比较。在这个过程中,为了避免由于无法区分文件夹中已存在的其他日志文件和目标日志文件而导致测试失败的情况,需要在文件夹没有包括其他日志文件的情况下,生成目标日志文件。

在具体实现过程中,本发明实施例的日志测试方法可以包括判断步骤。例如,先判断文件夹是否包括其他日志文件,在没有包括其他日志文件的情况下,直接生成目标日志文件;在包括其他日志文件的情况下,删除文件夹所包括的全部的日志文件之后,再生成目标日志文件。本发明实施例的日志测试方法也可以不包括判断步骤。例如,在每次生成目标日志文件之前,先执行删除步骤,删除文件夹所包括的全部的日志文件。

需要说明的是,本领域技术人员应当理解,在删除文件夹所包括的全部的日志文件之前,可以通过例如拷贝日志文件、将日志文件所记录的内容导出到数据库等方式实现对日志文件的存储,从而保证日志文件记录的内容不会丢失,并在需要时方便查询。

在一种可能的实现方式中,如图3所示,在所述文件夹没有包括其他日志文件的情况下,根据待测试的目标日志用例,生成所述目标日志文件(步骤102),包括:

步骤301、在所述文件夹没有包括其他日志文件的情况下,触发所述目标日志用例对应的请求链接,生成所述目标日志文件。

网络设备、系统及服务程序等,在运作时会产生日志文件。在日志用例中,把不同的参数组成链接,访问链接可以生成日志,不同的链接生成的日志所述包括的内容不同。进一步地,访问待测试的目标日志用例对应的链接,可以生成目标日志文件。例如,目标日志用例可以是FTP日志用例,通过触发系统FTP探测,生成的FTP日志文件(目标日志文件)。其中,FTP日志文件所记录的内容可以包括例如IP地址、时间、探测所用的用户名等。

对生成的目标日志文件可以进行一些操作,例如远程查看、下载、删除等,在此不做限定。以查看Web管理日志为例,点击“Web管理日志”链接,进入日志查看页面,在日志文件列表框中选中要查看的日志文件,然后点击右侧的“查看日志”按钮,可以浏览到Web管理日志记录中的详细内容。

在一种可能的实现方式中,如图4所示,将所述目标日志文件所记录的内容与所述目标日志用例的预设内容进行比较,并根据比较结果确定所述目标日志用例能否正常运行(步骤103),包括:

步骤401、打开所述目标日志文件,并提取所述目标日志文件所记录的内容;

步骤402、将所述内容与所述预设内容进行比较,在所述内容与所述预设内容相同的情况下,所述目标日志用例能够正常运;或,

步骤403、将所述内容与所述预设内容进行比较,在所述内容与所述预设内容不相同的情况下,所述目标日志用例不能够正常运行。

本发明实施例的步骤401至步骤403中,将目标日志文件记录的内容和预设内容进行比较的过程,可以直接在日志服务器中进行,也可以将目标日志文件下载后在本地硬盘中进行,在此不做限定。具体地,下载目标日志文件的过程为:选中目标日志文件,然后点击“下载日志”按钮,在弹出的“文件下载”对话框中点击“保存”按钮并指定存放路径。

需要说明的是,目标日志用例可以是预先设计好的,因此生成的目标日志文件所记录的内容通常应当遵循目标日志用例逻辑。进一步地,将目标日志文件记录的内容和预设内容进行比较,在记录的内容与预设内容相同的情况下,说明生成的目标日志文件所记录的内容遵循目标日志用例逻辑,目标日志用例可以正常运行。在记录的内容与预设内容不相同的情况下,说明生成的目标日志文件所记录的内容没有遵循目标日志用例逻辑,目标日志用例不能够正常运行。

作为一个示例,目标日志用例为FTP日志用例。在一次测试中,通过IP地址为192.168.0.257,用户名为C904的系统触发FTP日志用例,从而生成FTP日志文件(目标日志文件)。打开FTP日志文件,具体地,其所记录的内容包括例如Time(时间):14:56,IP地址:192.168.0.254,Name(用户名):C901。通过比较,发现FTP日志文件所记录的内容与预设内容不相同,说明该FTP日志用例不能够正常运行。

在一种可能的实现方式中,如图5所示,在发现待测试的系统的代码进行更新的情况下,从所述系统包括的各日志用例中获取至少一个待测试的目标日志用例。

具体地,可以将本发明实施例的日志测试方法包装成测试模块。进一步地,可以通过例如Robot Framework框架编写测试平台,调用测试模块对待测试的目标日志用例进行测试。其中,Robot Framework是一款Python编写的功能自动化测试框架,其具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。

此外,还可以通过Jenkins监控持续集成的情况。在发现待测试的系统的代码进行更新的情况下,选择至少一个待测试的目标日志用例,并进行自动化测试。在系统的修改比较频繁的情况下,可以节省大量的测试时间。其中,Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能可以包括持续的软件版本发布/测试项目,以及监控外部调用执行的工作。

作为本发明的一个示例,如图6所示,日志测试方法的具体流程如下:

S601、远程登录日志服务器。例如,通过手机、电脑等终端设备远程登录日志服务器。在登录成功的情况下,可以进行日志服务器允许的操作,例如,删除其他日志文件、读取目标日志文件,下载目标日志文件等。其中,日志服务器能够存放目标日志用例生成的目标日志文件。

S602、判断日志服务器是否登录成功。具体地,在登录日志服务器成功的情况下,继续执行步骤S603;在登录日志服务器失败的情况下,测试失败,结束测试。

其中,日志文件通常存储在Linux服务器,可以通过SSH(Secure Shell,安全外壳协议)远程登录Linux服务器,登录成功则会返回登录成功的状态码,登录失败也会返回登录失败状态码和失败原因。

S603、删除文件夹下所有的其他日志文件。其中,本发明实施例的其他日志文件是目标日志用例在测试之前生成的日志文件,删除这些文件使得在执行步骤S604之后,文件夹中仅包括生成的目标日志文件,有利于目标日志文件的提取。

S604、访问能够生成目标日志文件的请求链接。在执行步骤S604之后,系统在目标日志用例对应的日志文件内记录相关的内容,生成目标日志文件。

S605、检查是否生成目标日志文件。具体地,在生成目标日志文件的情况下,继续执行步骤S606;在没有生成目标日志文件的情况下,测试失败,结束测试。

S606、提取目标日志文件内容到字典中。具体地,把每一列的日志内容存储到对应的参数字典中。本发明实施例的字典可以是一种存储方式,例如,以键值(Key-Value)的方式存储。其中,Key可以是目标日志用例的名称,Value可以包括目标日志文件所记录的内容。通过Key可以检索到对应的Value。

S607、判断目标日志文件的内容与预设内容是否相符。具体地,将内容与预设内容进行比较,在内容与预设内容相同的情况下,目标日志用例能够正常运行,测试成功,结束测试。在内容与预设内容不相同的情况下,目标日志用例不能够正常运行,测试失败,结束测试。

本发明实施例的日志测试方法,根据待测试的目标日志用例,生成目标日志文件,并将目标日志文件所记录的内容与目标日志用例的预设内容进行比较,以确定目标日志用例能否正常运行,能够提高日志用例的测试效率。

进一步地,本发明实施例的日志测试方法,可以应用于对各种类型的日志用例进行测试,能够模拟大量的日志场景,增加了测试的覆盖率,保证了日志用例的质量。

进一步地,在系统的代码进行更新的情况下,可以对系统包括的各日志用例进行测试,能够极大提高测试效率,缩短回归测试时间,消除代码更新对日志用例的影响。

实施例2

图7示出根据本发明另一实施例的日志测试装置的结构框图。如图7所示,所述日志测试装置,主要包括:查找模块11,用于在日志服务器中查找到用于存储目标日志文件的文件夹。生成模块13,与所述查找模块11连接,用于在所述文件夹没有包括其他日志文件的情况下,根据待测试的目标日志用例,生成所述目标日志文件。比较模块15,与所述生成模块13连接,用于将所述目标日志文件所记录的内容与所述目标日志用例的预设内容进行比较,并根据比较结果确定所述目标日志用例能否正常运行。具体原理和示例可以参见实施例1以及图1的相关描述。

在一种可能的实现方式中,如图8所示,还包括:删除模块17,用于在所述文件夹包括其他日志文件的情况下,删除所述文件夹所包括的全部的日志文件。具体原理和示例可以参见实施例1以及图2的相关描述。

在一种可能的实现方式中,所述生成模块13,具体用于触发所述目标日志用例对应的请求链接,生成所述目标日志文件。具体原理和示例可以参见实施例1以及图3的相关描述。

在一种可能的实现方式中,所述比较模块15,具体用于打开所述目标日志文件,并提取所述目标日志文件所记录的内容;将所述内容与所述预设内容进行比较,在所述内容与所述预设内容相同的情况下,所述目标日志用例能够正常运行;或,将所述内容与所述预设内容进行比较,在所述内容与所述预设内容不相同的情况下,所述目标日志用例不能够正常运行。具体原理和示例可以参见实施例1以及图4的相关描述。

在一种可能的实现方式中,如图9所示,还包括:调取模块10,用于在发现待测试的系统的代码进行更新的情况下,从所述系统包括的各日志用例中获取至少一个待测试的目标日志用例。具体原理和示例可以参见实施例1以及图5的相关描述。

本发明实施例的日志测试装置,根据待测试的目标日志用例,生成目标日志文件,并将目标日志文件所记录的内容与目标日志用例的预设内容进行比较,以确定目标日志用例能否正常运行,能够提高日志用例的测试效率。

进一步地,本发明实施例的日志测试装置,可以应用于对各种类型的日志用例进行测试,能够模拟大量的日志场景,增加了测试的覆盖率,保证了日志用例的质量。

进一步地,在系统的代码进行更新的情况下,可以对系统包括的各日志用例进行测试,能够极大提高测试效率,缩短回归测试时间,消除代码更新对日志用例的影响。

实施例3

图10示出根据本发明另一实施例的日志测试设备的结构框图。所述日志测试设备1100可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。

所述日志测试设备1100包括处理器(processor)1110、通信接口(Communications Interface)1120、存储器(memory)1130和总线1140。其中,处理器1110、通信接口1120、以及存储器1130通过总线1140完成相互间的通信。

通信接口1120用于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共享存储等。

处理器1110用于执行程序。处理器1110可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。

存储器1130用于存放文件。存储器1130可能包括高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1130也可以是存储器阵列。存储器1130还可能被分块,并且所述块可按一定的规则组合成虚拟卷。

在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:实现实施例1中的各步骤。

本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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