前 言

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

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

基于Jmeter的解决方案平台

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

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

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

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

平台架构如下:

部 署 流 程

一.安装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;

二、 安装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

三、 配置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中就能看到相关的性能指标曲线图了


最后:如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进到 902061117,群内会有不定期的分享测试资料。

如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。

好文推荐

2021软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!

什么样的人适合从事软件测试工作?

软件测试和软件开发哪个发展更好

那个准点下班的人,比我先升职了…

不写一行代码,基于Jmeter打造性能测试数据平台相关推荐

  1. 不写一行代码(一):实现安卓基于GPIO的LED设备驱动

    文章目录 系列文章 一.前言 二.准备工作 2.1 内核版本 2.2 内核文档:bindings->leds 2.3 文档解析: leds-gpio.txt 三.编写DTS 3.1 查原理图,挑 ...

  2. MATLABSTM32CubeMX联合开发系列——不用手写一行代码就能实现CAN通讯

    MATLAB&STM32CubeMX联合开发系列--不用手写一行代码就能实现CAN通讯 从第一次搭建好MATLAB和STM32CubeMX的联合开发环境有一段时间了,之前已经发布了两个实例分享 ...

  3. 快速实现免费的个人免签收款功能(不写一行代码)

    最近一直在研究使用冰狐智能辅助的"自动构建"功能在不编程的情况如何实现各种好玩的东东,由于自己利用业余时间开发的小工具需要用到收款功能,于是自然想到用"自动构建" ...

  4. 不写一行代码,也能玩转Kaggle竞赛?

    整理 | Jane 出品 | AI科技大本营(ID:rgznai100) [导读]AI科技大本营会给大家分享一些 Kaggle 上的资源,如 Kaggle 开放的数据集,也会分享一些好的竞赛方案或有意 ...

  5. 【效率】微软开源最强Python自动化神器!不用写一行代码!

    相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具.写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑. 虽然selenium有完备的文档,但也 ...

  6. 飞鸽传书每写一行代码都会有新的成就

    喜欢的人,日子过得非常开心,飞鸽传书每写一行代码都会有新的成就,尤其当自己的作品被广泛应用的时候,那种自豪感油然而起. 不喜欢的人,飞鸽传书x坐在电脑前极端无聊,被进度压得喘不过气来,天天为找bug改 ...

  7. 不写一行代码就能玩转 Kaggle 竞赛?

    整理 | Jane 出品 | AI科技大本营(ID:rgznai100) 今天,我们要给大家介绍的这个工具特别推荐给以往只能仰望别人的,缺乏竞赛技能和经验的朋友,你不需要写一行代码就可以参与 Kagg ...

  8. 云效平台性能测试功能:一个基于Jmeter的性能压测平台

    云效平台性能测试功能(Galaxy)是一个基于Jmeter的性能压测平台,它集脚本.场景.压测.监控和报表展示为一体,是一个能快速.低成本实施压测的平台.降低了入门使用成本,让开发和测试都可以方便的执 ...

  9. 不写一行代码,也能解释XML,因为是JAVA

    不写一行代码,也能解释XML,因为是JAVA. 整个过程就三个步骤 1.XML转换成XSD 2.XSD生成JAVA Class 3.调用unmarshal实现转换结果 具体实例: 1.假设有一个XML ...

最新文章

  1. centos中用MySQL创建新表_CentOS下使用Shell批量创建数据库表
  2. 鸿蒙荣耀x10max,荣耀X10 Max有秘密武器:5G大屏手机能比4G还省电
  3. Ecshop中的ajax+json
  4. MongoDB最简单的入门教程之二 使用nodejs访问MongoDB
  5. 为 GridView、DetailsView、FormView 等数据显示控件删除功能添加“确认对话框”
  6. Vue组件间的传值五大场景,你造吗?
  7. SQL Server 2012 显式授权示例
  8. All xxx functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
  9. hibernate示例_Hibernate条件示例教程
  10. CacheCloud运维管理平台学习笔记
  11. 哪个牌子的蓝牙耳机音质好?音质比较好的蓝牙耳机排名
  12. 计算机系统的性能建模与设计 排队论实战,计算机系统的性能建模与设计:排队论实战(计算机科学丛书)...
  13. 软件工程(四)——结构化设计之总体设计
  14. html a标签触发不了onclick()事件
  15. 免费的视频压缩软件,踩了好多坑之后,终于找到了——Handbrake
  16. 一本好书的诞生与亮相
  17. 报童问题求解最大利润_5G仿真解决方案 | 天线布局、覆盖与场景的先进求解技术...
  18. web前端基础——第五章
  19. docker-compose vmwkmip
  20. android 9.0谷歌商店,Android 10现可选择Play商店主题模式 附Android 9强制开启深色模式教程...

热门文章

  1. 有一个字长32位的浮点数符号位1位_边缘计算专题:(二)别看只有0和1,数学不好的勿进!...
  2. python同时发送与接收_Python如何发送与接收大型数组
  3. 6. 第三次 人工智能浪潮,有何不同?
  4. 我是如何晋升专家岗的
  5. DeepMind 用 GAN 虚构视频真假难辨【智能行业热点】(2019.7.22)
  6. TensorFlow都有哪些模块?
  7. mac设置python版本切换,和设置python默认版本
  8. 常见位操作及运算应用举例:1,C语言中位运算符异或“∧”的作用​​​​​​​2,异或运算的作用3,(与运算)、|(或运算)、^(异或运算)
  9. 一起来玩AZURE SQL(三)AZURE SQL 数据库迁移
  10. 关于服务器发生w32tm的ID:29,ID:47等错误