一种性能分析方法、装置及电子设备与流程

文档序号:12464237阅读:184来源:国知局
一种性能分析方法、装置及电子设备与流程

本发明涉及电子技术领域,尤其涉及一种性能分析方法、装置及电子设备。



背景技术:

压力测试也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。压力测试经常应用于软件开发中,在压力测试之后,需要对压测结果进行分析和对比。通过压力测试来收集性能数据,判断服务器端发布的应用性能是否满足线上业务的性能指标优化服务端程序,查找性能瓶颈,提升性能指标。但是,由于压力测试会产生大量数据,对这些数据进行分析会消耗大量的时间,导致压力测试的耗时时间长。



技术实现要素:

本发明实施例提供一种性能分析方法、装置及电子设备。可以解决现有技术方案中测试耗时长的技术问题。

本发明第一方面提供了一种性能分析方法,包括:

对应用程序进行多次压力测试;

获取所述多次压力测试的汇总文件,所述汇总文件包括多种性能指标的测试结果;

从所述汇总文件中提取所述多种性能指标中目标性能指标的测试结果进行关联分析。

其中,所述从所述汇总文件中提取所述多种性能指标中目标性能指标的测试结果进行关联分析,包括:

根据所述目标性能指标的测试结果生成性能趋势图。

其中,所述根据所述目标性能指标的测试结果生成性能趋势图,包括:

对所述目标性能指标的测试结果与预设的性能参数进行对比,确定所述目标性能指标的测试差异值;

将所述目标性能指标的所述测试差异值生成所述性能趋势图。

其中,所述从所述汇总文件中提取所述多种性能指标中目标性能指标的测试结果进行关联分析,包括:

对所述目标性能指标的测试结果与预设的性能参数进行对比,确定所述目标性能指标的测试差异值;

确定所述目标性能指标的所述测试差异值是否大于预设阈值;

若所述目标性能指标的所述测试差异值大于所述预设阈值,则发出提示信息。

其中,所述性能趋势图包括趋势对比图,所述根据所述目标性能指标的测试结果生成性能趋势图,包括:

将所述多次压力测试所测得的所述目标性能指标的测试结果进行对比,并生成所述趋势对比图。

其中,所述根据所述目标性能指标的测试结果生成性能趋势图之后,还包括:

将所述性能趋势图生成网页文件,对所述网页文件进行显示。

其中,所述目标性能指标至少包括平均响应时间、CPU占用率以及每秒请求数中的至少一种。

相应地,本发明第二方面提供了一种性能分析装置,包括:

压力测试模块,用于对应用程序进行多次压力测试;

文件获取模块,用于获取所述多次压力测试的汇总文件,所述汇总文件包括多种性能指标的测试结果;

结果分析模块,用于从所述汇总文件中提取所述多种性能指标中目标性能指标的测试结果进行关联分析。

其中,所述结果分析模块,还用于根据所述目标性能指标的测试结果生成性能趋势图。

其中,所述结果分析模块具体用于:

对所述目标性能指标的测试结果与预设的性能参数进行对比,确定所述目标性能指标的测试差异值;

将所述目标性能指标的所述测试差异值生成所述性能趋势图。

其中,所述结果分析模块具体用于:

对所述目标性能指标的测试结果与预设的性能参数进行对比,确定所述目标性能指标的测试差异值;确定所述目标性能指标的所述测试差异值是否大于预设阈值;若所述目标性能指标的所述测试差异值大于所述预设阈值,则发出提示信息。

其中,所述性能趋势图包括趋势对比图;

所述结果分析模块具体用于:

提取所述多次压力测试所测得的所述目标性能指标的测试结果进行对比,并生成所述趋势对比图。

其中,所述装置还包括:

信息显示模块,用于将所述性能趋势图生成网页文件,对所述网页文件进行显示。

其中,所述目标性能指标至少包括平均响应时间、CPU占用率以及每秒请求数中的至少一种。

相应地,本发明第三方面提供了一种电子设备,包括:处理器、存储器、通信接口和总线;

所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;

所述存储器存储可执行程序代码;

所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:

对应用程序进行多次压力测试;

获取所述多次压力测试的汇总文件,所述汇总文件包括多种性能指标的测试结果;

从所述汇总文件中提取所述多种性能指标中目标性能指标的测试结果进行关联分析。

相应地,本发明第四方面提供了一种存储介质,其中,所述存储介质用于存储应用程序,所述应用程序用于在运行时执行本发明实施例第一方面提供的一种性能分析方法。

相应地,本发明第五方面提供了一种应用程序,其中,所述应用程序用于在运行时执行本发明实施例第一方面提供的一种性能分析方法。

实施本发明实施例,首先对应用程序进行多次压力测试;然后获取所述多次压力测试的汇总文件,所述汇总文件包括多种性能指标的测试结果;最后从所述汇总文件中提取所述多种性能指标中目标性能指标的测试结果进行关联分析。通过提取目标性能指标,并通过性能趋势图来对压力测试的结果进行分析,从而提高测试效率。

附图说明

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

图1是本发明提出的一种性能分析方法的第一实施例的流程示意图;

图2是本发明提出的一种性能分析方法的第二实施例的流程示意图;

图3是本发明实施例提出的一种性能分析装置的结构示意图;

图4是本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

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

请参考图1,图1是本发明提出的一种性能分析方法的第一实施例的流程示意图。如图所示,本发明实施例中的方法包括:

S101,对应用程序进行多次压力测试。

具体实现中,可以使用JMeter测试工具对服务器的应用程序进行压力测试。其中,JMeter测试工具不但可以用于Web应用测试,还可以来扩展到其他测试领域。JMeter测试工具可以用于测试静态和动态资源,例如,静态文件、Java小服务程序、CGI脚本、Java对象、数据库,FTP服务器等等。JMeter可以用于模拟服务器、网络或对象的负载,分别在不同压力类别下测试它们的强度和分析整体性能。

S102,获取所述多次压力测试的汇总文件,所述汇总文件包括多种性能指标的测试结果。

具体实现中,可以首先编写性能监控脚本,在压力测试的过程中监控指定进程的CPU、IO、内存等系统使用情况。在每次压力测试完成后,自动保存压力测试的性能报告,将每次测得的多种性能指标的测试结果都汇总在一起,统一写入CSV文件。其中,CSV文件由任意数目的记录组成,记录间以某种换行符分隔,每条记录由字段组成,字段间的分隔符是其它字符或字符串。

S103,从所述汇总文件中提取所述多种性能指标中目标性能指标的测试结果进行关联分析。

具体实现中,在压力测试完成之后,可以首先设置需要分析的关键性能指标,然后从汇总文件中提取设置的关键性能指标的测试结果,最后根据所述目标性能指标的测试结果生成性能趋势图,其中,所述关键性能指标包括但不局限于平均响应时间、CPU占用率以及每秒请求数等。

进一步的,可以对所述目标性能指标的测试结果与预设的性能参数进行对比,确定所述目标性能指标的测试差异值;将所述目标性能指标的所述测试差异值生成所述性能趋势图。

可选的,可以对所述目标性能指标的测试结果与预设的性能参数进行对比,确定所述目标性能指标的测试差异值,确定所述目标性能指标的所述测试差异值是否大于预设阈值;若所述目标性能指标的所述测试差异值大于所述预设阈值,则发出提示信息。其中,预设阈值可以包括但不局限于10%或者15%。提示信息可以包括语音提示、邮件提示或动画提示等等。

例如:对添加了新的模型算法的服务程序进行压力测试,由于新的模型算法存在多矩阵导致运算CPU占用率高,当测试结果中CPU占用率大于预设阀值10%以上时,发送邮件通知压测结果,提示用于CPU波动过大。又如:对添加了新的test=1逻辑的服务程序,由于请求中带有test=1参数,就不走正常的服务端逻辑,而是直接从文件中读取结果进行返回(这个逻辑会和现有的业务逻辑有冲突),当测试结果中QPS(Queries Per Second,每秒查询率)大于预设的QPS阀值的10%以上,平均响应时间小于预设平均响应时间的10%以上,发送邮件通知测试结果,提示用户QPS和平均响应时间波动过大。

在本发明实施例中,首先对应用程序进行多次压力测试;然后获取所述多次压力测试的汇总文件,所述汇总文件包括多种性能指标的测试结果;其次从所述汇总文件中提取所述多种性能指标中目标性能指标的测试结果;最后根据所述目标性能指标的测试结果生成性能趋势图。通过提取目标性能指标,并通过性能趋势图来对压力测试的结果进行分析,从而提高测试效率。

请参考图2,图2是本发明提出的一种性能分析方法的第二实施例流程图。如图所示,本发明实施例中的方法包括:

S201,对应用程序进行多次压力测试。

具体实现中,可以使用JMeter测试工具对服务器的应用程序进行压力测试。其中,JMeter测试工具不但可以用于Web应用测试,还可以来扩展到其他测试领域。JMeter测试工具可以用于测试静态和动态资源,例如,静态文件、Java小服务程序、CGI脚本、Java对象、数据库,FTP服务器等等。JMeter可以用于模拟服务器、网络或对象的负载,分别在不同压力类别下测试它们的强度和分析整体性能。

S202,获取所述多次压力测试的汇总文件,所述汇总文件包括多种性能指标的测试结果。

具体实现中,可以首先编写性能监控脚本,在压力测试的过程中监控指定进程的CPU、IO、内存等系统使用情况。在每次压力测试完成后,自动保存压力测试的性能报告,将每次测得的多种性能指标的测试结果都汇总在一起,统一写入CSV文件。其中,CSV文件由任意数目的记录组成,记录间以某种换行符分隔,每条记录由字段组成,字段间的分隔符是其它字符或字符串。

S203,从所述汇总文件中提取所述多种性能指标中目标性能指标的测试结果。

具体实现中,在压力测试完成之后,可以首先设置需要分析的关键性能指标,然后从汇总文件中提取设置的关键性能指标的测试结果,所述关键性能指标包括但不局限于平均响应时间、CPU占用率以及每秒请求数等。

S204,提取所述多次压力测试所测得的所述目标性能指标的测试结果进行对比,并生成所述趋势对比图。其中,每次压力测试对应一个版本标识build_id。

例如,可以写入本次压力测试的版本标识和之前压力测试的版本标识,将本次压力测试的所测得的关键性能指标的测试结果与之前压力测试所测得的关键性能指标的测试结果进行对比,并将两者的对比数据生成趋势对比图,通过趋势对比图可以提示用户两次压力测试的变化趋势。

S205,将所述性能趋势图生成网页文件,对所述网页文件进行显示。

例如,可以将生成的报告和图表自动生成html文件,最后在jenkins中展现。其中,jenkins一个可扩展的持续集成引擎,主要用于持续、自动地构建/测试软件项目,监控一些定时执行的任务。

在本发明实施例中,首先对应用程序进行多次压力测试;然后获取所述多次压力测试的汇总文件,所述汇总文件包括多种性能指标的测试结果;其次从所述汇总文件中提取所述多种性能指标中目标性能指标的测试结果;最后生成性能趋势图并进行显示。通过提取目标性能指标,并通过性能趋势图来对压力测试的结果进行分析,从而提高测试效率。

请参考图3,图3是本发明实施例提供的一种性能分析装置的结构示意图。如图所示,本发明实施例中的装置包括:

压力测试模块301,用于对应用程序进行多次压力测试。

具体实现中,可以使用JMeter测试工具对服务器的应用程序进行压力测试。其中,JMeter测试工具不但可以用于Web应用测试,还可以来扩展到其他测试领域。JMeter测试工具可以用于测试静态和动态资源,例如,静态文件、Java小服务程序、CGI脚本、Java对象、数据库,FTP服务器等等。JMeter可以用于模拟服务器、网络或对象的负载,分别在不同压力类别下测试它们的强度和分析整体性能。

文件获取模块302,用于获取所述多次压力测试的汇总文件,所述汇总文件包括多种性能指标的测试结果。

具体实现中,可以首先编写性能监控脚本,在压力测试的过程中监控指定进程的CPU、IO、内存等系统使用情况。在每次压力测试完成后,自动保存压力测试的性能报告,将每次测得的多种性能指标的测试结果都汇总在一起,统一写入CSV文件。其中,CSV文件由任意数目的记录组成,记录间以某种换行符分隔,每条记录由字段组成,字段间的分隔符是其它字符或字符串。

结果分析模块303,用于从所述汇总文件中提取所述多种性能指标中目标性能指标的测试结果进行关联分析。

具体实现中,在压力测试完成之后,可以首先设置需要分析的关键性能指标,然后从汇总文件中提取设置的关键性能指标的测试结果,最后根据所述目标性能指标的测试结果生成性能趋势图,其中,所述关键性能指标包括但不局限于平均响应时间、CPU占用率以及每秒请求数等。

进一步的,可以对所述目标性能指标的测试结果与预设的性能参数进行对比,确定所述目标性能指标的测试差异值;将所述目标性能指标的所述测试差异值生成所述性能趋势图。

可选的,可以对所述目标性能指标的测试结果与预设的性能参数进行对比,确定所述目标性能指标的测试差异值,确定所述目标性能指标的所述测试差异值是否大于预设阈值;若所述目标性能指标的所述测试差异值大于所述预设阈值,则发出提示信息。其中,预设阈值可以包括但不局限于10%或者15%,提示信息可以包括语音提示、邮件提示或动画提示等等。

例如:对添加了新的模型算法的服务程序进行压力测试,由于新的模型算法存在多矩阵导致运算CPU占用率高,当测试结果中CPU占用率大于预设阀值10%以上时,发送邮件通知压测结果,提示用于CPU波动过大。又如:对添加了新的test=1逻辑的服务程序,由于请求中带有test=1参数,就不走正常的服务端逻辑,而是直接从文件中读取结果进行返回(这个逻辑会和现有的业务逻辑有冲突),当测试结果中QPS(Queries Per Second,每秒查询率)大于预设的QPS阀值的10%以上,平均响应时间小于预设平均响应时间的10%以上,发送邮件通知测试结果,提示用户QPS和平均响应时间波动过大。

可选的,提取所述多次压力测试所测得的所述目标性能指标的测试结果进行对比,并生成所述趋势对比图。其中,每次压力测试对应一个版本标识build_id。

例如,可以写入本次压力测试的版本标识和之前压力测试的版本标识,将本次压力测试的所测得的关键性能指标的测试结果与之前压力测试所测得的关键性能指标的测试结果进行对比,并将两者的对比数据生成趋势对比图,通过趋势对比图可以提示用户两次压力测试的变化趋势。

可选的,如图3所示,本发明实施例中的装置还可以包括:

信息显示模块304,用于将所述性能趋势图生成网页文件,对所述网页文件进行显示。

例如,可以将生成的报告和图表自动生成html文件,最后在jenkins中展现。其中,jenkins一个可扩展的持续集成引擎,主要用于持续、自动地构建/测试软件项目,监控一些定时执行的任务。

在本发明实施例中,首先对应用程序进行多次压力测试;然后获取所述多次压力测试的汇总文件,所述汇总文件包括多种性能指标的测试结果;其次从所述汇总文件中提取所述多种性能指标中目标性能指标的测试结果;最后根据所述目标性能指标的测试结果生成性能趋势图。通过提取目标性能指标,并通过性能趋势图来对压力测试的结果进行分析,从而提高测试效率。

请参考图4,图4是本发明实施例提出的一种电子设备的结构示意图。如图所示,该电子设备可以包括:至少一个处理器401,例如CPU,至少一个通信接口403,至少一个存储器404,至少一个通信总线402。其中,通信总线402用于实现这些组件之间的连接通信。其中,本发明实施例中电子设备的通信接口403可以是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他节点设备进行信令或数据的通信。存储器404可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器404可选的还可以是至少一个位于远离前述处理器401的存储装置。存储器404中存储一组程序代码,且处理器401用于调用存储器中存储的程序代码,用于执行以下操作:

对应用程序进行多次压力测试;

获取所述多次压力测试的汇总文件,所述汇总文件包括多种性能指标的测试结果;

从所述汇总文件中提取所述多种性能指标中目标性能指标的测试结果进行关联分析。

其中,处理器401还用于执行如下操作步骤:

根据所述目标性能指标的测试结果生成性能趋势图。

其中,处理器401还用于执行如下操作步骤:

对所述目标性能指标的测试结果与预设的性能参数进行对比,确定所述目标性能指标的测试差异值;

将所述目标性能指标的所述测试差异值生成所述性能趋势图。

其中,处理器401还用于执行如下操作步骤:

对所述目标性能指标的测试结果与预设的性能参数进行对比,确定所述目标性能指标的测试差异值;

确定所述目标性能指标的所述测试差异值是否大于预设阈值;

若所述目标性能指标的所述测试差异值大于所述预设阈值,则发出提示信息。

其中,处理器401还用于执行如下操作步骤:

提取所述多次压力测试所测得的所述目标性能指标的测试结果进行对比,并生成所述趋势对比图。

其中,处理器401还用于执行如下操作步骤:

将所述性能趋势图生成网页文件,对所述网页文件进行显示。

其中,所述目标性能指标包括但不局限于平均响应时间、CPU占用率以及每秒请求数等。

需要说明的是,本发明实施例同时也提供了一种存储介质,该存储介质用于存储应用程序,该应用程序用于在运行时执行图1所示的一种性能分析方法以及图2所示的一种性能分析方法中接收电子设备执行的操作。

需要说明的是,本发明实施例同时也提供了一种应用程序,该应用程序用于在运行时执行图1所示的一种性能分析方法以及图2所示的一种性能分析方法中接收电子设备执行的操作。

需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。

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

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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