一种性能测试结果大数据智能分析系统

2022-03-27 22:37胡通
中国新通信 2022年1期
关键词:大数据

【摘要】    针对基于JMETER原始的性能测试结果文件,不包含各个服务器的资源消耗性能数据,性能测试结果数据不完整,后期还需要通过人工的方式去整理所有的测试结果数据手工编写报告,消耗大量的人力和时间成本的问题。为此,本文提出了一种性能测试结果大数据智能分析系统,首先,采用了PANDAS+PYSPARK技术框架,通过多进程机制和分块并行处理,解决了10G+超大性能结果文件JTL的解析入库问题,速度快,效率高。其次,利用INFLUXDB时序数据库和ECHART可视化库,一键式自动生成和编排性能测试的过程曲线截图和测试结果表格,提升了性能测试的效率。

【关键词】    PANDAS    INFLUXDB    大数据    性能报告

引言:

目前,在互联网时代,线上的交易量越来越大,对系统的性能要求越来越高,在实际的性能测试中,会产生的测试数据文件都是10G+,测试结束后对该文件的处理方法有限。

另外,基于JMETER原始的性能测试结果,不包含各个服务器的资源消耗性能数据,性能测试结果数据不完整,后期还需要通过人工的方式去整理所有的测试结果数据手工编写报告,消耗大量的人力和时间成本。

本论文针对上述问题,提出了一种性能测试结果大数据智能分析系统。

一、智能分析系统

(一) 总体思路

本系统包含数据解析、数据入库、数据检测、数据展示,主要思路是基于PANDAS的矩阵运算,同时结合PYSPARK的分布式计算机制,充分利用多核CPU的性能,提高计算速度,解决了超大性能测试结果文件无法解析的问题;解析成功后的业务端性能测试数据保存到时序数据库INFLUXDB中,性能测试数据永久保存,可以随时进行回溯查看和基线对比。另外通过SHELL脚本,收集各个被测服务器的系统资源性能指标数据;然后,采用了基于自适应滑动窗口的方法,智能检测时序数据的异常波动点,并做好标注,便于进一步问题定位;最后,利用ECHART可视化库生成每个测试脚本对应测试结果的业务性能曲线图形和服务器资源消耗曲线图形,并利用HTML2CANVAS.JS和JSPDF.JS技术按照特定模版一键式自动编排,生成性能测试报告,大大缩短了人工整理截图和测试数据的时间成本,提升性能测试结果分析效率。

(二)设计方案

从步骤S101到步骤S110,详细阐述了设计方案到过程,具体如下。

S101:基于JMETER的性能测试会产生JTL的结果文件,文件内存储了每个请求的时间戳、标签、响应时间、错误内容、状态码等业务端性能数据信息。

S102: 在做7*24小时稳定性测试的时候,大部分情况下生成的JTL文件大小都是10G+的,通过把大文件拆分成多个小文件,便于并行处理和过滤。

S103: 每个文件,利用PANDAS分块读取,通过预设一些正则表达式规则过滤掉不需要的字段内容,可以大大减小内存占用,和提升读取速度,避免内存溢出的错误。

S104: 为了进一步提高运算速度,采用了PYSPARK的分布式技术框架,结合多进程机制,充分利用每个CPU核的计算能力,解析出每个成功请求需要的信息,和过滤出错误内容进行额外分析。

S105: 对JTL文件中过滤出来的错误内容,进一步解析,分类汇总,按照错误类别统计出TOP5的错误信息,便于重点问题重点跟踪处理。

S106: 对JTL文件中解析出成功请求的业务性能指标数据,存入INFLUXDB时序数据库中,一方面,可以永久的存储,可以随时进行回溯查看和基线对比;另一方面可以结合ECHART可视化图形展示,更加直观观察性能测试过程异常情况;另外,和该业务性能指标数据对应的服务器性能指标数据也存入相关联的库中,完善了性能测试数据结果的完整性。

S107: 对于压测过程中,需要同时监控各个中间件所在服务器的系统资源情况,以便发现问题,采用SHELL脚本,自动收集各台服务器的CPU、内存、连接数等核心服务端性能指标数据,保存到INFLUXDB时序数据库中。

S108: 采用ECHART框架,获取INFLUXDB时序数据库中的数据,经过重采样后,自动生成可视化的性能测试结果过程曲线图;另外,本发明对收集到的多台服务器的数据进行提取归类,把同一类别的资源使用情况在同一张曲线图中利用不同颜色的曲线区别显示,一方面,大大减少了展示的图片数目,另一方面,也更加清晰明了的对比和发现哪台服务器资源使用有问题。

S109:智能检测,采用均值阈值方式,在稳定性测试中进行异常数据检测,发掘性能隐藏问题,便于后续追踪。

S110: 在性能测试结束后,整理性能测试报告是个费时费力的工作,每个测试脚本,涉及的业务端性能指标有TPS,95%响应时间,成功率等,还有各台服务器的服务端性能指标CPU、内存、连接数等,不仅要整理成表格,还要截取图表,重复性工作量大。利用HTML2CANVAS.JS和JSPDF.JS技术,按照预设的特定模版一键式自动编排之前生成的各个脚本对应的图表,生成性能测试报告,大大缩短了人工整理截图和测试数据的时间成本。

二、结束语

本论文首先充分利用PANDAS的分布式计算和矩阵运算的能力,提高了处理超大性能测试结果文件的速度,并采用离线解析,更加灵活便捷;另外,采用均值阈值方法,在稳定性测试中结果数据的异常波动点的检测中剔除异常数据;最后一键式自动生成性能测试报告,每个测试脚本对应的业务端性能曲线图和服务器资源端性能曲线图都能自动生成,并按照预设的特定模版自动编排生成图表相结合的性能测试报告,大大缩短了编写整理性能测试报告的时间。

作者单位:胡通    中移(杭州)信息技术有限公司

参  考  文  献

[1] 马玉超.基于机器学习的动态基线性能时序数据异常检测研究与应用[J].中国金融电脑,2020(06):51-59.

[2] 張晋桂,王绵金,郑海涛,范耀明.基于接口的性能测试数据自动化处理[J].无线互联科技,2016(04):85-86+89.

猜你喜欢
大数据
基于在线教育的大数据研究
“互联网+”农产品物流业的大数据策略研究
大数据时代新闻的新变化探究
浅谈大数据在出版业的应用
“互联网+”对传统图书出版的影响和推动作用
大数据环境下基于移动客户端的传统媒体转型思路
基于大数据背景下的智慧城市建设研究
数据+舆情:南方报业创新转型提高服务能力的探索