本申请涉及数据处理技术领域,尤其涉及一种用于系统性能测试的响应时间统计方法及装置。
背景技术:
对于由多台服务器组成的系统,在生产模拟性能测试中,由于要回放的报文来自生产真实环境,这些报文中包含的各字段会出现多种组合,形成多种可能情况,而且服务程序往往需要外呼系统中的其他服务才能提供自身的服务。因此,生产模拟性能测试存在外呼路径的多样性,性能测试需要统计不同服务的响应时间,给出每个服务在测试中的响应时间结果。
目前,对于不同外呼路径的响应时间统计一般采用人工统计的方式,需要在服务器日志中找出外呼路径相同的记录,取其每条中所记载的响应时间,计算平均响应时间。
然而,现有的人工统计方式,由于需要针对不同服务、不同错误码、不同外呼路径需要分别统计响应时间,因而需要首先区分不同的服务+错误码+外呼路径的组合。区分工作的耗时随着压力测试中发送报文的量增大而增长,一般的压力测试往往需要发送数万条报文,因此区分过程极为耗时,导致此类性能测试工作的人力成本高,且由于一般区分工作和平均响应时间的统计工作是分开进行的,而测试后往往需要一份完整的报告,因此大部分情况下,都需要针对全部的服务+错误码+外呼路径的组合进行平均响应时间的统计,而生产模拟性能测试中往往产生大量这种组合,因而分别进行统计,人力成本过高。
技术实现要素:
有鉴于此,本申请提供了一种用于系统性能测试的响应时间统计方法及装置,从而克服现有技术中由人工对不同外呼路径的响应时间进行统计导致的成本高的问题。
为了实现上述目的,本申请提供了以下技术方案:
一种用于系统性能测试的响应时间统计方法,包括:
响应用户的第一操作,根据预先配置的测试环境计算机列表下载日志文件,其中,所述日志文件包括流水号、服务码、错误码、响应时间和外呼服务;
将所述日志文件读入内存并以散列表的形式存储为日志条目;
根据所述日志条目构建至少一个外呼树,并计算所述外呼树的特征码;
将所述特征码相同的外呼树进行合并形成平均外呼树,同时计算所述平均外呼树的每个树节点的平均响应时间;
将所述平均外呼树以及所述平均响应时间以文件形式输出。
优选的,所述响应用户的第一操作,根据预先配置的测试环境计算机列表下载日志文件之前还包括:
响应所述用户的第二操作,在测试环境执行性能测试产生日志,以及,响应所述用户的第三操作,配置所述测试环境计算机列表。
优选的,所述将所述日志文件读入内存并以散列表的形式存储为日志条目,包括:
将所述日志文件中的每一条记录读入内存,并以所述流水号为key将每一条记录加入所述散列表。
优选的,所述根据所述日志条目构建至少一个外呼树,包括:
将所述流水号相同的所述日志条目中的记录根据外呼关系,在所述散列表内部搜索服务码与本记录外呼服务码相同的记录,并将其作为子节点添加到本记录上,以形成外呼树;
其中,所述外呼树的每个树节点存储:服务码、错误码、服务器名和响应时间。
优选的,所述计算所述外呼树的特征码包括:
利用所述服务码、所述错误码和所述服务器名表示一个所述树节点,将所述外呼树表示成一种字符串的形式。
一种用于系统性能测试的响应时间统计装置,包括:
日志下载单元,用于响应用户的第一操作,根据预先配置的测试环境计算机列表下载日志文件,其中,所述日志文件包括流水号、服务码、错误码、响应时间和外呼服务;
存储单元,用于将日志下载单元下载的所述日志文件读入内存并以散列表的形式存储为日志条目;
构建单元,用于根据所述存储单元内存储的所述日志条目构建至少一个外呼树;
第一计算单元,用于计算所述外呼树的特征码;
合并单元,用于将所述特征码相同的外呼树进行合并形成平均外呼树;
第二计算单元,用于计算所述平均外呼树的每个树节点的平均响应时间;
输出单元,用于将所述平均外呼树以及所述平均响应时间以文件形式输出。
优选的,还包括:
日志产生单元,用于响应所述用户的第二操作,在测试环境执行性能测试产生日志;
配置单元,用于响应所述用户的第三操作,配置所述测试环境计算机列表。
优选的,所述存储单元具体用于将所述日志文件中的每一条记录读入内存,并以所述流水号为key将每一条记录加入所述散列表。
优选的,所述构建单元具体用于将所述流水号相同的所述日志条目中的记录根据外呼关系,在所述散列表内部搜索服务码与本记录外呼服务码相同的记录,并将其作为子节点添加到本记录上,以形成外呼树;
其中,所述外呼树的每个树节点存储:服务码、错误码、服务器名和响应时间。
优选的,所述第一计算单元具体用于利用所述服务码、所述错误码和所述服务器名表示一个所述树节点,将所述外呼树表示成一种字符串的形式。
由以上技术方案可知,本申请提供了一种用于系统性能测试的响应时间统计方法及装置,该方法通过利用由包括流水号、服务码、错误码、响应时间和外呼服务的日志文件构建的外呼树,使得在区分服务+错误码+外呼路径组合的过程全自动,且时间短,无需人工干预;而且一次性导出完整测试统计结果,提高性能测试的工作效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例一提供的一种用于系统性能测试的响应时间统计方法的流程图;
图2为本申请实施例二提供的一种用于系统性能测试的响应时间统计方法的流程图;
图3为本申请提供的一种响应时间统计方法的举例示意图;
图4为本申请实施例三提供的一种用于系统性能测试的响应时间统计装置的结构示意图;
图5为本申请实施例四提供的一种用于系统性能测试的响应时间统计装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为克服现有技术中由人工对不同外呼路径的响应时间进行统计导致的成本高的问题,本申请提供了一种用于系统性能测试的响应时间统计方法及装置,具体方案如下所述:
实施例一
本申请实施例一提供了一种用于系统性能测试的响应时间统计方法,如图1所示,图1为本申请实施例一提供的一种用于系统性能测试的响应时间统计方法的流程图。该方法包括:
S101:响应用户的第一操作,根据预先配置的测试环境计算机列表下载日志文件;
其中,日志文件包括流水号、服务码、错误码、响应时间和外呼服务;测试环境计算机列表包括服务器IP地址、用户名、密码、日志文件路径。
当用户发出下载指令后,根据测试环境计算机列表下载日志文件,一次性下载列表中全部计算机的日志文件。
S102:将日志文件读入内存并以散列表的形式存储为日志条目;
逐行读取全部的日志,将日志文件读入内存并以散列表的型式存储为日志条目,进入日志读取完成状态。
S103:根据日志条目构建至少一个外呼树,并计算外呼树的特征码;
其中,外呼树特征码的定义是递归的,每一个树节点的特征码为“服务码,错误码,服务器名(子节点1|子节点2|子节点3...)”,而其子节点的定义也遵照这种形式,从根节点开始,将所有“子节点1”、“子节点2”...展开,可将整棵树表示成一种字符串的形式。如果两笔交易的外呼树特征码完全相同,表示这两笔交易走了完全一样的请求路径,可对其进行合并统计。
S104:将特征码相同的外呼树进行合并形成平均外呼树,同时计算平均外呼树的每个树节点的平均响应时间;
S105:将平均外呼树以及平均响应时间以文件形式输出。
由以上技术方案可知,本申请实施例一提供的该用于系统性能测试的响应时间统计方法,通过利用由包括流水号、服务码、错误码、响应时间和外呼服务的日志文件构建的外呼树,使得在区分服务+错误码+外呼路径组合的过程全自动,且时间短,无需人工干预;而且一次性导出完整测试统计结果,提高性能测试的工作效率。
实施例二
在实施例一的基础上,本申请实施例二提供了一种更具体的用于系统性能测试的响应时间统计方法,如图2所示,图2为本申请实施例二提供的一种用于系统性能测试的响应时间统计方法的流程图。包括:
S101:响应用户的第二操作,在测试环境执行性能测试产生日志,以及,响应用户的第三操作,配置测试环境计算机列表;
在进行测试之前,需要先进行性能测试和配置工作,因此,在本实施例中,首选需要根据用户的指令在测试环境执行性能测试产生日志,以及,配置测试环境计算机列表。
S102:响应用户的第一操作,根据预先配置的测试环境计算机列表下载日志文件;
其中,日志文件包括流水号、服务码、错误码、响应时间和外呼服务;测试环境计算机列表包括服务器IP地址、用户名、密码、日志文件路径。
当用户发出下载指令后,根据测试环境计算机列表下载日志文件,一次性下载列表中全部计算机的日志文件。
S103:将日志文件读入内存并以散列表的形式存储为日志条目;
逐行读取全部的日志,将日志文件读入内存并以散列表的形式存储为日志条目,进入日志读取完成状态。
具体的,将日志文件中的每一条记录读入内存,并以流水号为key将每一条记录加入散列表,从而构成日志条目。
S104:根据日志条目构建至少一个外呼树,并计算外呼树的特征码;
具体的,根据日志条目构建至少一个外呼树,包括:
将流水号相同的日志条目中的记录根据外呼关系,在散列表内部搜索服务码与本记录外呼服务码相同的记录,并将其作为子节点添加到本记录上,以形成外呼树;
其中,外呼树的每个树节点存储:服务码、错误码、服务器名和响应时间。
需要说明的是,外呼树特征码的定义是递归的,每一个树节点的特征码为“服务码,错误码,服务器名(子节点1|子节点2|子节点3...)”,而其子节点的定义也遵照这种形式,从根节点开始,将所有“子节点1”、“子节点2”...展开,可将整棵树表示成一种字符串的形式。如果两笔交易的外呼树特征码完全相同,表示这两笔交易走了完全一样的请求路径,可对其进行合并统计。
S105:将特征码相同的外呼树进行合并形成平均外呼树,同时计算平均外呼树的每个树节点的平均响应时间;
特征码相同的外呼树,其树节点都能一一对应。合并的同时将对应的树节点响应时间相加,最终除以参与合并的外呼树数量,从而得到平均响应时间。
S106:将平均外呼树以及平均响应时间以文件形式输出。
将各平均外呼树以文件的形式输出,此结果即为不同的服务+错误码+外呼路径的组合及其对应的平均响应时间。
本申请实施例二提供的该用于系统性能测试的响应时间统计方法,利用特有的求平均响应时间的方式,构建外呼树,计算特征码,合并相同特征码的外呼树,在合并的过程中针对每个树节点计算平均响应时间,以及,利用特有的构建外呼树的方式:以日志中流水号作为key进行散列的分组方法,保证良好的执行效率;在分组内部建树,控制计算规模,对性能影响小。从而使得区分服务+错误码+外呼路径组合的过程是全自动,时间短,不需人工干预,而且统计结果的过程针对全部的服务+错误码+外呼路径的组合,一次性导出完整测试统计结果,提高性能测试的工作效率。
具体的,参考图3所示,图3为本申请提供的一种响应时间统计方法的举例示意图。图3描述了响应时间统计装置内部的运行流程,此流程在日志下载完成状态后开始。
具体的,响应时间统计装置顺序读取全部日志文件中的每一条记录,以日志的流水号为key,将每条记录加入散列表。将流水号相同(对应散列表中的同分组)的记录根据外呼关系,针对每条记录,在分组内部搜索其服务码跟本记录外呼服务码相同的记录,将其作为子节点添加到这条记录上,从而形成外呼树。外呼树的每个树节点存储:服务码、错误码、服务器名、响应时间。根据已构建好的外呼树,计算外呼树的特征码。用服务码、错误码、服务器名表示一个树节点,将树表示成一种字符串的形式。将特征码相同的外呼树合并,形成平均外呼树。特征码相同的外呼树,其树节点都能一一对应。合并的同时将对应的树节点响应时间相加,最终除以参与合并的外呼树数量,从而得到平均响应时间。将各平均外呼树以文件的形式输出,此结果即为不同的服务+错误码+外呼路径的组合及其对应的平均响应时间。
实施例三
在实施例一的基础上,本申请提供了一种用于系统性能测试的响应时间统计装置,如图4所示,图4为本申请实施例三提供的一种用于系统性能测试的响应时间统计装置的结构示意图,该装置包括:日志下载单元201、存储单元202、构建单元203、第一计算单元204、合并单元205、第二计算单元206以及输出单元207,其中,
日志下载单元201,用于响应用户的第一操作,根据预先配置的测试环境计算机列表下载日志文件,其中,日志文件包括流水号、服务码、错误码、响应时间和外呼服务;测试环境计算机列表包括服务器IP地址、用户名、密码、日志文件路径。
当用户发出下载指令后,根据测试环境计算机列表下载日志文件,一次性下载列表中全部计算机的日志文件。
存储单元202,用于将日志下载单元201下载的日志文件读入内存并以散列表的形式存储为日志条目;
存储单元202逐行读取全部的日志,将日志文件读入内存并以散列表的型式存储为日志条目,进入日志读取完成状态。
构建单元203,用于根据存储单元202内存储的日志条目构建至少一个外呼树;
其中,外呼树特征码的定义是递归的,每一个树节点的特征码为“服务码,错误码,服务器名(子节点1|子节点2|子节点3...)”,而其子节点的定义也遵照这种形式,从根节点开始,将所有“子节点1”、“子节点2”...展开,可将整棵树表示成一种字符串的形式。如果两笔交易的外呼树特征码完全相同,表示这两笔交易走了完全一样的请求路径,可对其进行合并统计。
第一计算单元204,用于计算外呼树的特征码;
合并单元205,用于将特征码相同的外呼树进行合并形成平均外呼树;
第二计算单元206,用于计算平均外呼树的每个树节点的平均响应时间;
输出单元207,用于将平均外呼树以及平均响应时间以文件形式输出。
由以上技术方案可知,本申请实施例三提供的该用于系统性能测试的响应时间统计装置,通过利用由包括流水号、服务码、错误码、响应时间和外呼服务的日志文件构建的外呼树,使得在区分服务+错误码+外呼路径组合的过程全自动,且时间短,无需人工干预;而且一次性导出完整测试统计结果,提高性能测试的工作效率。
实施例四
在实施例二、三的基础上,本申请实施例四提供了一种更具体的用于系统性能测试的响应时间统计装置,如图5所示,图5为本申请实施例四提供的一种用于系统性能测试的响应时间统计装置的结构示意图。该装置包括:日志产生单元201、配置单元202、日志下载单元20/3、存储单元204、构建单元205、第一计算单元206、合并单元207、第二计算单元208以及输出单元209,其中,可参考图3所举例表示的一种响应时间统计方法的示意图进行描述,但需要说明的是,图3描述了响应时间统计装置内部的运行流程,此流程在日志下载完成状态后开始:
日志产生单元201,用于响应用户的第二操作,在测试环境执行性能测试产生日志;
配置单元202,用于响应用户的第三操作,配置测试环境计算机列表。
在进行测试之前,需要先进行性能测试和配置工作,因此,在本实施例中,首选需要根据用户的指令在测试环境执行性能测试产生日志,以及,配置测试环境计算机列表。
日志下载单元201,用于响应用户的第一操作,根据预先配置的测试环境计算机列表下载日志文件,其中,日志文件包括流水号、服务码、错误码、响应时间和外呼服务;测试环境计算机列表包括服务器IP地址、用户名、密码、日志文件路径。
当用户发出下载指令后,根据测试环境计算机列表下载日志文件,一次性下载列表中全部计算机的日志文件。
存储单元202,用于将日志下载单元201下载的日志文件读入内存并以散列表的形式存储为日志条目;
存储单元202逐行读取全部的日志,将日志文件读入内存并以散列表的型式存储为日志条目,进入日志读取完成状态。
具体的,将日志文件中的每一条记录读入内存,并以流水号为key将每一条记录加入散列表,从而构成日志条目。
构建单元203,用于根据存储单元202内存储的日志条目构建至少一个外呼树;
具体的,根据日志条目构建至少一个外呼树,包括:
将流水号相同的日志条目中的记录根据外呼关系,在散列表内部搜索服务码与本记录外呼服务码相同的记录,并将其作为子节点添加到本记录上,以形成外呼树;
其中,外呼树的每个树节点存储:服务码、错误码、服务器名和响应时间。
第一计算单元204,用于计算外呼树的特征码;
需要说明的是,外呼树特征码的定义是递归的,每一个树节点的特征码为“服务码,错误码,服务器名(子节点1|子节点2|子节点3...)”,而其子节点的定义也遵照这种形式,从根节点开始,将所有“子节点1”、“子节点2”...展开,可将整棵树表示成一种字符串的形式。如果两笔交易的外呼树特征码完全相同,表示这两笔交易走了完全一样的请求路径,可对其进行合并统计。
合并单元205,用于将特征码相同的外呼树进行合并形成平均外呼树;
特征码相同的外呼树,其树节点都能一一对应。
第二计算单元206,用于计算平均外呼树的每个树节点的平均响应时间;
合并的同时将对应的树节点响应时间相加,最终除以参与合并的外呼树数量,从而得到平均响应时间。
输出单元207,用于将平均外呼树以及平均响应时间以文件形式输出。
将各平均外呼树以文件的形式输出,此结果即为不同的服务+错误码+外呼路径的组合及其对应的平均响应时间。
本申请实施例四提供的该用于系统性能测试的响应时间统计装置,利用特有的求平均响应时间的方式,构建外呼树,计算特征码,合并相同特征码的外呼树,在合并的过程中针对每个树节点计算平均响应时间,以及,利用特有的构建外呼树的方式:以日志中流水号作为key进行散列的分组方法,保证良好的执行效率;在分组内部建树,控制计算规模,对性能影响小。从而使得区分服务+错误码+外呼路径组合的过程是全自动,时间短,不需人工干预,而且统计结果的过程针对全部的服务+错误码+外呼路径的组合,一次性导出完整测试统计结果,提高性能测试的工作效率。
具体的,本申请四个实施例之间相同或相似的部分可相互参考,在本申请中不再赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。