关联日志回放方法及装置与流程

文档序号:15982286发布日期:2018-11-17 00:28阅读:177来源:国知局

本发明是关于日志回放技术领域,特别是关于一种关联日志回放方法及装置。

背景技术

将计算机系统生产环境的应用日志文件提取至测试环境进行回放操作是计算机系统的一种重要测试方法。现有的日志回放技术有两种:

1)日志逐条回放,即逐条读取并发送至测试环境的业务系统。但由于业务之间是相互关联或相互依赖的,简单的逐条回放技术没有判断他们之间的关联,业务系统的处理成功率非常低,不能起到很好的测试效果。

2)采用数据库查询技术完成日志回放过程中的业务关联。该技术将所有待回放日志存放于数据库,首先将关联业务中的第一笔日志回放(发送)至测试环境的业务系统,当上述业务系统处理并返回结果后,根据上述返回结果在数据库中查询出关联业务的第二笔日志,并将上述第二笔日志回放(发送)至测试环境的业务系统,以此类推,完成所有关联日志的回放。但这种技术中,业务关联操作依赖于数据库的实时查询,当需要以较高吞吐量进行日志回放时,数据库成为整个测试环境的瓶颈。因此这种技术不适用于高吞吐量的日志回放,即不适用于采用日志回放方式进行性能测试。



技术实现要素:

本发明实施例提供了一种关联日志回放方法及装置,以快速地、高吞吐量地进行关联日志的回放。

为了实现上述目的,本发明实施例提供了一种关联日志回放方法,该关联日志回放方法包括:

将应用日志进行应用分类和业务关联,并根据业务关联关系对应用分类后的每笔应用日志进行按序存放,所述业务关联关系包括:后一笔业务的开始依赖于前一笔业务的完成;

根据压力机的数量及每个压力机的线程组数量将按序存放的应用日志切分为多组日志,并将切分后的每组日志传输至对应的压力机;

控制压力机的线程组中的每个线程依次读取对应日志组中的一桶日志,并以设定的发送速度进行日志发送,以满足测试吞吐量要求;

当所述发送速度受到限制时,增加压力机数量、日志组数及线程组数,进行吞吐量的线性扩展。

一实施例中,将应用日志进行应用分类和业务关联,并根据业务关联关系对应用分类后的每笔应用日志进行按序存放,包括:

根据业务类型将所述应用日志分为多类;

对每类应用日志中的每笔应用日志在所在的分类中进行关联,得到该笔应用日志的关联日志;

根据所述业务关联关系将该笔业务及关联业务按序分类存放在不同的桶中。

一实施例中,设所述压力机的数量为n,每个压力机的线程组数量为m;根据压力机的数量及每个压力机的线程组数量将按序存放的应用日志切分为多组日志,并将切分后的每组日志传输至对应的压力机,包括:

根据压力机的数量m及每个压力机的线程组数量n将每个桶中的应用日志切分为n×m组,并将各分组分别顺序编号;

将不同桶中编号相同的分组组合为一个日志组,将所有日志组传输至对应压力机,由对应的线程组进行回放,每个日志组对应一个线程组。

一实施例中,控制压力机的线程组中的每个线程依次读取对应日志组中的一桶日志,并以设定的发送速度进行日志发送,包括:

为每个线程组配置p个线程,p为每类应用日志的桶数;

控制p个线程以设定的时间间隔依次开始读取p桶日志,并以设定的发送速度进行日志发送。

为了实现上述目的,本发明实施例提供一种关联日志回放装置,包括:

日志存放单元,用于将应用日志进行应用分类和业务关联,并根据业务关联关系对应用分类后的每笔应用日志进行按序存放,所述业务关联关系包括:后一笔业务的开始依赖于前一笔业务的完成;

日志切分单元,用于根据压力机的数量及每个压力机的线程组数量将按序存放的应用日志切分为多组日志,并将切分后的每组日志传输至对应的压力机;

日志发送单元,用于控制压力机的线程组中的每个线程依次读取对应日志组中的一桶日志,并以设定的发送速度进行日志发送,以满足测试吞吐量要求;

线性扩展单元,用于当所述发送速度受到限制时,增加压力机数量、日志组数及线程组数,进行吞吐量的线性扩展。

一实施例中,所述日志存放单元包括:

分类模块,用于根据业务类型将所述应用日志分为多类;

关联模块,用于对每类应用日志中的每笔应用日志在所在的分类中进行关联,得到该笔应用日志的关联日志;

存放模块,用于根据所述业务关联关系将该笔业务及关联业务按序分类存放在不同的桶中。

一实施例中,所述日志切分单元包括:

切分模块,用于根据压力机的数量m及每个压力机的线程组数量n将每个桶中的应用日志切分为n×m组,并将各分组分别顺序编号;

日志组生成模块,用于将不同桶中编号相同的分组组合为一个日志组,将所有日志组传输至对应压力机,由对应的线程组进行回放,每个日志组对应一个线程组。

一实施例中,所述日志发送单元包括:

配置模块,用于为每个线程组配置p个线程,p为每类应用日志的桶数;

发送模块,用于控制p个线程以设定的时间间隔依次开始读取p桶日志,并以设定的发送速度进行日志发送。

为了实现上述目的,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

将应用日志进行应用分类和业务关联,并根据业务关联关系对应用分类后的每笔应用日志进行按序存放,所述业务关联关系包括:后一笔业务的开始依赖于前一笔业务的完成;

根据压力机的数量及每个压力机的线程组数量将按序存放的应用日志切分为多组日志,并将切分后的每组日志传输至对应的压力机;

控制压力机的线程组中的每个线程依次读取对应日志组中的一桶日志,并以设定的发送速度进行日志发送,以满足测试吞吐量要求;

当所述发送速度受到限制时,增加压力机数量、日志组数及线程组数,进行吞吐量的线性扩展。

为了实现上述目的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

将应用日志进行应用分类和业务关联,并根据业务关联关系对应用分类后的每笔应用日志进行按序存放,所述业务关联关系包括:后一笔业务的开始依赖于前一笔业务的完成;

根据压力机的数量及每个压力机的线程组数量将按序存放的应用日志切分为多组日志,并将切分后的每组日志传输至对应的压力机;

控制压力机的线程组中的每个线程依次读取对应日志组中的一桶日志,并以设定的发送速度进行日志发送,以满足测试吞吐量要求;

当所述发送速度受到限制时,增加压力机数量、日志组数及线程组数,进行吞吐量的线性扩展。

利用本发明,可以快速地、高吞吐量地进行关联日志的回放,并可以任意指定吞吐量进行日志回放。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的关联日志回放方法流程图一;

图2为本发明实施例的关联日志回放方法流程图二;

图3为本发明实施例的关联日志分类示意图;

图4为本发明实施例的关联日志回放方法流程图三;

图5为本发明实施例的关联日志切分示意图;

图6为本发明实施例的关联日志回放方法流程图四;

图7为本发明实施例的日志具体发送示意图;

图8为本发明实施例的关联日志回放装置的结构框图;

图9为本发明实施例的日志存放单元的结构框图;

图10为本发明实施例的日志切分单元的结构框图;

图11为本发明实施例的日志发送单元的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例的关联日志回放方法流程图,该关联日志回放方法可以基于预先配对的关联日志。如图1所示,该关联日志回放方法包括:

s101:将应用日志进行应用分类和业务关联,并根据业务关联关系对应用分类后的每笔应用日志进行按序存放,所述业务关联关系包括:后一笔业务的开始依赖于前一笔业务的完成,即前后两笔业务之间存在依赖关系;

s102:根据压力机的数量及每个压力机的线程组数量将按序存放的应用日志切分为多组日志,并将切分后的每组日志传输至对应的压力机;

s103:控制压力机的线程组中的每个线程依次读取对应日志组中的一桶日志,并以设定的发送速度进行日志发送,以满足测试吞吐量要求;

s104:当所述发送速度受到限制时,增加压力机数量、日志组数及线程组数,进行吞吐量的线性扩展。

图1所示的方法的执行主体可以为后台服务器,例如用于环境测试的pc机、pc服务器、小型机等。

由图1所示的流程可知,本申请首先将应用日志进行应用分类和业务关联,并根据业务关联关系对应用分类后的每笔应用日志进行按序存放,然后根据压力机的数量及每个压力机的线程组数量将按序存放的应用日志切分为多组日志,并将切分后的每组日志传输至对应的压力机;最后控制压力机的线程组中的每个线程依次读取对应日志组中的一桶日志,并以设定的发送速度进行日志发送,以满足测试吞吐量要求;当发送速度受到限制时,可以增加压力机数量、日志组数及线程组数,进行吞吐量的线性扩展。通过该方法,可以快速地、高吞吐量地进行关联日志的回放,并可以任意指定吞吐量进行日志回放。

本发明中的应用日志可以为计算机系统生产环境相关的应用日志,本发明需要将该应用日志提取至测试环境(被测业务系统)中。

为了进行业务测试,需要将应用日志进行业务关联,具有业务逻辑相关联的日志,称为关联日志。

在环境测试前,需要对关联日志进行重新存放,存放可以按照设定规则进行存放,一实施例中,可以根据类型(如业务类型)对关联日志进行分类存放,具体实施时,如图2所示,可以包括如下步骤:

s201:根据业务类型将所述应用日志分为多类;

s202:对每类应用日志中的每笔应用日志在所在的分类中进行关联,得到该笔应用日志的关联日志;

s203:根据所述业务关联关系将该笔业务及关联业务按序分类存放在不同的桶中。

举例说明,如图3所示,假设根据类型将关联日志分为了三类关联日志,第一类关联日志每2笔日志形成关联关系,第二类关联日志每3笔日志形成关联关系,第三类关联日志每4笔日志形成关联关系。本发明所述的业务关联关系包括如下情形:后一笔业务的开始依赖于前一笔业务的完成,例如一笔转账汇款业务中需要有至少两个子业务,两笔子业务中的后一笔子业务的开始依赖于前一笔子业务的完成。

按序存放应用日志时,查找第一类关联日志中第一笔逻辑关系靠前的日志并存放至桶1,根据业务关联关系查找该日志的关联日志,并将该日志的关联日志存放至桶2;继续查找第一类关联日志中第二笔逻辑关系靠前的日志并存放至桶1,根据业务关联关系查找该日志的关联日志,并将该关联日志存放至桶2;以此类推,完成所有第一类关联日志的存放。

查找第二类关联日志中第一笔逻辑关系靠前的日志存放至桶3,根据业务关联关系查找该日志的两笔关联日志,按照逻辑先后关系分别存放至桶4、桶5;继续查找第二类关联日志中第二笔逻辑关系靠前的日志并存放至桶3,将该日志的两笔关联日志分别、按序存放至桶4、桶5;以此类推,完成所有第二类关联日志的存放。

查找第三类关联日志中第一笔逻辑关系靠前的日志存放至桶6,根据业务关联关系查找该日志的三笔关联日志,按照逻辑先后关系分别存放至桶7、桶8、桶9;以此类推,完成所有第三类关联日志的存放。

日志存放至桶中之后,就可以对日志进行切分,切分方法可以有多种,本发明不限定具体切分方法。

具体切分应用日志时,可以假设压力机的数量为n,每个压力机的线程组数为m,如图4所示,切分方法可以包括如下步骤:

s401:根据压力机的数量m及每个压力机的线程组数量n将每个桶中的应用日志切分为n×m组,并将各分组分别顺序编号。

以图3中的第2类日志的切分为例(其他类的日志按照相同方法的切分),如图5所示,假设m=2,n=2,将第3桶、第4桶及第5桶中对应的应用日志分别根据压力机的数量2及每个压力机的线程组数量2切分为2×2组,即,第3桶切分为3-1、3-2、3-3及3-2×2,第4桶切分为4-1、4-2、4-3及4-2×2,第5桶切分为5-1、5-2、5-3及5-2×2。

s402:将不同桶中编号相同的分组组合为一个日志组,将所有日志组传输至对应压力机,由对应的线程组进行回放,每个日志组对应一个线程组。如图5所示,第3桶的3-1、第4桶的4-1及第5桶的5-1为相同的编号,将三者组合为一个日志组,其他日志分片按照相同的方法组合得到日志组,共2×2=4个日志组。将切分后日志组平均分发到2台压力机,例如,将3-1、4-1、5-1与3-3、4-3、5-3存放至压力机1,将3-2、4-2、5-2与3-4、4-4、5-4存放至压力机2。

将日志进行切分、组合并存放至压力机中之后,就可以依次读取对应日志组中的每一桶关联日志以设定发送速度进行日志发送(发送至测试环境中),一实施例中,如图6所示,日志发送方法包括如下步骤:

s601:为每个线程组配置p个线程,p为每类应用日志的桶数;

p的个数为对应类关联日志中桶的个数,图5所示的例子中,由于第二类关联日志中桶的个数为3,那么每个线程组中需要配置3个线程。

s602:控制p个线程以设定的时间间隔依次开始读取p桶日志,并以设定的发送速度进行日志发送。

例如,先控制线程1读取桶3的日志分片3-1,并以每秒钟100笔的速度向测试环境持续发送1小时,在间隔一定时间后(例如15秒钟,该时间并非用于限定,具体由业务系统根据处理速度灵活判定)控制线程2读取桶4的日志分片4-1,并以每秒钟100笔的速度向测试环境持续发送1小时,在间隔一定时间后控制线程3读取并发送桶5中的日志分片5-1,以此类推,如图7所示。

日志发送过程中,可以实时判断日志发送速度是否达到瓶颈,即是否受到限制,当所述发送速度受到限制时,可以通过增加压力机数量、日志组数及线程组数量进行吞吐量的线性扩展。日志发送速度是否受到限制可能是多种原因,例如某类资源瓶颈(例如,cpu资源不足、磁盘i/o能力不足、线程数不足)可能导致速度受限,本发明不以此为限定。

利用本发明,解决了有业务关联情况下,传统日志回放方法不能达到足够吞吐量以进行性能测试的问题,可以快速地、高吞吐量地进行关联日志的回放,并可以指定任意吞吐量进行日志回放。

基于同一发明构思,本申请实施例还提供了一种关联日志回放装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于关联日志回放装置解决问题的原理与关联日志回放方法相似,因此关联日志回放装置的实施可以参见关联日志回放方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图8为本发明实施例的关联日志回放装置的结构框图,如图8所示,该关联日志回放装置包括:

日志存放单元801,用于将应用日志进行应用分类和业务关联,并根据业务关联关系对应用分类后的每笔应用日志进行按序存放,所述业务关联关系包括:后一笔业务的开始依赖于前一笔业务的完成;

日志切分单元802,用于根据压力机的数量及每个压力机的线程组数量将按序存放的应用日志切分为多组日志,并将切分后的每组日志传输至对应的压力机;

日志发送单元803,用于控制压力机的线程组中的每个线程依次读取对应日志组中的一桶日志,并以设定的发送速度进行日志发送,以满足测试吞吐量要求;

线性扩展单元804,用于当所述发送速度受到限制时,增加压力机数量、日志组数及线程组数,进行吞吐量的线性扩展。

一实施例中,如图9所示,日志存放单元801包括:

分类模块901,用于根据业务类型将所述应用日志分为多类;

关联模块902,用于对每类应用日志中的每笔应用日志在所在的分类中进行关联,得到该笔应用日志的关联日志;

存放模块903,用于根据所述业务关联关系将该笔业务及关联业务按序分类存放在不同的桶中。

一实施例中,如图10所示,日志切分单元803包括:

切分模块1001,用于根据压力机的数量m及每个压力机的线程组数量n将每个桶中的应用日志切分为n×m组,并将各分组分别顺序编号;

日志组生成模块1002,用于将不同桶中编号相同的分组组合为一个日志组,将所有日志组传输至对应压力机,由对应的线程组进行回放,每个日志组对应一个线程组。

一实施例中,如图11所示,日志发送单元804包括:

配置模块1101,用于为每个线程组配置p个线程,p为每类应用日志的桶数;

发送模块1102,用于控制p个线程以设定的时间间隔依次开始读取p桶日志,并以设定的发送速度进行日志发送。

利用本发明,解决了有业务关联情况下,传统日志回放方法不能达到足够吞吐量以进行性能测试的问题,可以快速地、高吞吐量地进行关联日志的回放,并可以任意指定吞吐量进行日志回放。

本发明实施例还提供了一种计算机设备,由于计算机设备解决问题的原理与关联日志回放方法相似,因此计算机设备的实施可以参见关联日志回放方法的实施,重复之处不再赘述。计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

将应用日志进行应用分类和业务关联,并根据业务关联关系对应用分类后的每笔应用日志进行按序存放,所述业务关联关系包括:后一笔业务的开始依赖于前一笔业务的完成;

根据压力机的数量及每个压力机的线程组数量将按序存放的应用日志切分为多组日志,并将切分后的每组日志传输至对应的压力机;

控制压力机的线程组中的每个线程依次读取对应日志组中的一桶日志,并以设定的发送速度进行日志发送,以满足测试吞吐量要求;

当所述发送速度受到限制时,增加压力机数量、日志组数及线程组数,进行吞吐量的线性扩展。

利用本发明,解决了有业务关联情况下,传统日志回放方法不能达到足够吞吐量以进行性能测试的问题,可以快速地、高吞吐量地进行关联日志的回放,并可以任意指定吞吐量进行日志回放。

本发明实施例还提供了一种计算机可读存储介质,由于计算机可读存储介质解决问题的原理与关联日志回放方法相似,因此计算机可读存储介质的实施可以参见关联日志回放方法的实施,重复之处不再赘述。计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

将应用日志进行应用分类和业务关联,并根据业务关联关系对应用分类后的每笔应用日志进行按序存放,所述业务关联关系包括:后一笔业务的开始依赖于前一笔业务的完成;

根据压力机的数量及每个压力机的线程组数量将按序存放的应用日志切分为多组日志,并将切分后的每组日志传输至对应的压力机;

控制压力机的线程组中的每个线程依次读取对应日志组中的一桶日志,并以设定的发送速度进行日志发送,以满足测试吞吐量要求;

当所述发送速度受到限制时,增加压力机数量、日志组数及线程组数,进行吞吐量的线性扩展。

利用本发明,解决了有业务关联情况下,传统日志回放方法不能达到足够吞吐量以进行性能测试的问题,可以快速地、高吞吐量地进行关联日志的回放,并可以任意指定吞吐量进行日志回放。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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