《基于Jmeter的性能测试框架搭建》改进二

最近在进行新项目的压测,把《基于Jmeter的性能测试框架搭建》提到的框架又做了一些改进,主要是针对Grafana的配置。展开话题前先上一张性能监控图。

《基于Jmeter的性能测试框架搭建》改进二_第1张图片
性能监控图

那么上图展现的数据是否准确呢?我们可以通过以下方式进行验证。

  • 查看jenkins的构建日志,如下图所示。可发现tps、响应时间、请求总数、失败请求数等与grafana展现一致。


    《基于Jmeter的性能测试框架搭建》改进二_第2张图片
    jenkins构建日志
  • 使用top,vmstat等命令查看cpu损耗,与Grafana展现一致。
    ps:下图仅用于top命令示范,与上面的性能监控图数据无直接关联。
    《基于Jmeter的性能测试框架搭建》改进二_第3张图片
    CPU_top

    在展开Grafana配置详述前,需先弄清楚以下metrics的含义(也可访问Jmeter官网),以便后续配置Grafana面板。
    《基于Jmeter的性能测试框架搭建》改进二_第4张图片
    metrics

    《基于Jmeter的性能测试框架搭建》改进二_第5张图片
    metrics

    《基于Jmeter的性能测试框架搭建》改进二_第6张图片
    metrics

    接着就可以进行面板配置了,各指标配置如下。
  • tps


    《基于Jmeter的性能测试框架搭建》改进二_第7张图片
    tps
  • 总的请求数(成功+失败请求)


    《基于Jmeter的性能测试框架搭建》改进二_第8张图片
    TotalRequests
  • 失败请求数


    《基于Jmeter的性能测试框架搭建》改进二_第9张图片
    FaileRequests
  • VU


    《基于Jmeter的性能测试框架搭建》改进二_第10张图片
    VU
  • 成功请求的响应时间(avg,pct99,pct95,pct90)


    《基于Jmeter的性能测试框架搭建》改进二_第11张图片
    成功请求的RespondTime
  • cpu,由于监控服务器为4核,所以加了获取条件where cpu = cpu-total.
    下图监控了用户cpu和系统cpu,对应top命令展现的us和sy,sy如果值太高,说明系统调用,例如IO操作频繁。其他参数可自行百度。


    《基于Jmeter的性能测试框架搭建》改进二_第12张图片
    CPU
  • 如果有需要,也可以对io,内存等进行监控。


    《基于Jmeter的性能测试框架搭建》改进二_第13张图片
    其他

由于Influxdb是一个时序数据库,Grafana也是按时序来展现性能结果,所以需留意Time range的配置,否则可能造成数据误差。比如Time range设置为2018-08-03 15:30:00 To 16:00:00,那么Grafana就会展现15:30到16:00:00的数据,如果15:30:00开始构建接口1,15:40接口1构建完成,15:41开始接口2构建,15:50接口2构建完成,那么此时Grafana面板展现的tps,响应时间,Total,failed等数据是【接口1+接口2】的综合取值。


《基于Jmeter的性能测试框架搭建》改进二_第14张图片
TimeRange

讲完Grafana,咱们再回归压测脚本,之前文章也提过,Jmeter编写压测脚本异常简单,执行脚本后,自动生成上述的metrics,如下所示。
ps:新版本jmeter的Backend Listener亦支持influxdb,有兴趣的童鞋可以尝试。


《基于Jmeter的性能测试框架搭建》改进二_第15张图片
压测脚本

不得不说,Grafana和Jmeter真的是天作之合。

你可能感兴趣的:(《基于Jmeter的性能测试框架搭建》改进二)