前言

服务端性能测试工具中,Jmeter毫无疑问是其中的王者,拥有开源、轻便、灵活、学习成本低等等很多优点。

但是在压测过程中,也有很多不便之处,最不方便的地方,就是执行压测过程中,没有实时展示的图表。虽然也有一些插件能实现这个效果,但是这些插件都是基于GUI界面的,而真正压测的时候,都是在Linux环境中的,这些插件根本排不上用场。况且,即便使用了插件,也不能实现历史数据追溯,数据持久化保存等功能。

一、基于Jmeter的解决方案平台

今天我们来学习一种Jmeter实时性能数据展示的解决方案平台,它既能实时的、直观的展示tps、响应时间等指标,还能永久存储数据,根据日期搜索查找历史数据。

先来说下这套解决方案的原理,在Jmeter运行过程中,将产生的性能数据写入到数据库里,然后定时从数据库中读取性能数据,并分类展示到页面上。

在这套解决方案中,数据库选择是influxdb,influxdb是一个开源的时序数据库,适合存储一些跟时间有关系的数据。而Jmeter提供了将性能数据写入到influxdb的组件。

图表展示功能使用的是grafana,grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,不需要写一行前端代码,只需要简单的配置,就成开发出一个漂亮的图表监控报表页面。

平台架构如下:

二、部署流程

1、安装influxdb

  • 上传influxdb-1.7.9.x86_64.rpm到Linux下任意目录
  • 执行命令安装
yum localinstall -y influxdb-1.7.9.x86_64.rpm
修改配置
vi /etc/influxdb/influxdb.conf
[[graphite]]
enabled = true database = "jmeter" bind-address = ":2003"
  • 启动influxdb
systemctl start influxdb
  • 通过客户端进入到influxdb中,执行命令:influx
  • 创建库:create database jmeter;

2、安装grafana

  • 上传grafana-6.5.2-1.x86_64.rpm到任意目录下
  • 执行命令安装:yum localinstall -y grafana-6.5.2-1.x86_64.rpm
  • 启动grafana:systemctl start grafana-server
  • 在浏览器中访问grafana:http://{ip}:3000

3、配置Jmeter

  • 编写好Jmeter脚本

  • 在测试计划下添加“监听器-后端监听器”

  • 配置后端监听器

graphiteHost:influxdb的ip
summaryOnly:false samplersList:.+(可以加过滤条件,如post.+)
useRegexpForSamplersList:true 其他选项保持默认
  • 执行一次Jmeter脚本
  • 进入到influxdb中,查看是否有指标数据:
use jmeter;
  • show measurements;

三、配置grafana

1、 登录http://{ip}:3000,用户名/密码:admin/admin

2、 添加数据源

3、 选择influxdb,进行以下配置

 

4、 save & test

5、 创建dashboard

 

6、依次类推,创建各接口响应时间图表

7、grafana中监听jmeter各指标解释

http://jmeter.apache.org/usermanual/realtime-results.html

四、命令行运行Jmeter,在grafana中就能看到相关的性能指标曲线图了

 

 

下面是一份非常优质的学习资源,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上软件测试资料需要的可以私信我都可以免费获取
这还有一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中资料包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。

结语

欢迎留言,或是关注我的专栏和我交流。