一、背景

我们很多时候在使用JMeter做性能测试,我们很难及时察看压测过程中应用的性能状况,总是需要等到测试完成后去看Report

二、解决方案

JMeter引入Backend Listener,用于在压测过程中实时发送统计指标数据给时序数据库Influxdb,通过配置Grafana(开源的WEB可视化看板)数据源连接到Influxdb,我们就可以实时获取到测试指标数据。

三、工具安装部署

influxdb

  1. 下载与安装

    #184机器是ubuntu系统所以采用的是deb的包安装方式
    #wget https://dl.influxdata.com/influxdb/releases/influxdb_1.6.2_amd64.deb
    #sudo dpkg -i influxdb_1..2_amd64.deb
  2. 修改配置

     #Jmeter使用graphite协议去写入数据到InfluxDB,因此,需要在InfluxDB配置文件启用它,如下
    vi /etc/influxdb/influxdb.conf #修改以下配置
    [[graphite]]
    enabled = true
    bind-address = ":2003"
    database = "jmeter"
    retention-policy = ""
    protocol = "tcp"
    batch-size =
    batch-pending =
    batch-timeout = "1s"
    consistency-level = "one"
    separator = "."
    udp-read-buffer =
  3. 设置环境变量

     vi ~/.bashrc
    
     #增加环境变量配置
    export INFLUXDB_CONFIG_PATH="/etc/influxdb/influxdb.conf"
  4. 启动influxdb服务

     #以服务模式启动 | 这种方式启动还不行,得需要再看下
    service influxdb start #以非服务模式启动
    influxd -config /etc/influxdb/influxdb.conf
  5. 初始化db数据

     root@qa_debug_srv01:~# influx  #登录数据库
    Connected to http://localhost:8086 version 1.6.2
    InfluxDB shell version: 1.6.
    > show databases #查看所有数据库
    name: databases
    name
    ----
    _internal
    > CREATE DATABASE "jmeter" #创建数据库
    > use jmeter #切换数据库
    Using database jmeter
    > CREATE USER "admin" WITH PASSWORD 'admin' WITH ALL PRIVILEGES # 创建管理员权限的用户
  6. 端口说明

    • 8086端口,Grafana用来从数据库取数据的端口
    • 2003端口,JMeter往数据库发数据的端口
  7. 其他说明

    因influxdb1.2版本以后均没有了web界面,web界面操作频率很低,故没有再去找web界面解决方法

graphna

  1. 安装与启动

    wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_4.5.2_amd64.deb
    sudo dpkg -i grafana_4.5.2_amd64.deb #启动
    sudo service grafana-server start

      

四、访问地址

http://10.1.9.184:3001/login用户名:admin
密码:ganlezheyibei

五、jmeter配置

线程中添加一个监听器 Backend Listener

parameter配置

influxdbMetricsSender org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender
influxdbUrl http://10.1.9.184:8086/write?db=jmeter
application mtl_orderGivenShow
measurement jmeter
summaryOnly false
samplersRegex ^[^#_].*
percentiles 50;90;95;99
testTitle mtl_orderGivenShow

application和testTitle可以自己命名,针对于在grafna上找到对应的名称查看结果

六、操作方法

    1. jmeter  Backend Listener 的 parameter 配置中,配置好自己的application名称,运行压测
    2. 登录graphna进入默认的dashboard
    3. 选择你设置的application名称则就可以看到实时的jmeter运行结果
    4. 结果示例:

jmter脚本运行结果实时监控的更多相关文章

  1. Ubuntu 14.10 下运行进程实时监控pidstat命令详解

    简介 pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存.设备IO.任务切换.线程等.pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上 ...

  2. Linux 运行进程实时监控pidstat命令详解

    简介 pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存.设备IO.任务切换.线程等.pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上 ...

  3. 【linux】Linux 运行进程实时监控pidstat命令详解

    简介 pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存.设备IO.任务切换.线程等.pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上 ...

  4. shell脚本 awk实现实时监控网卡流量

    一.简介 通过第3方工具获得网卡流量,这个大家一定很清楚.其实通过脚本一样可以实现效果.下面是我个人工作中整理的数据.以下是shell脚本统计网卡流量. 现原理: cat /proc/net/dev ...

  5. linux运行进程实时监控pidstat详解

  6. katalon系列十六:代码运行时实时创建元素对象或列表

    Katalon的常规方法是先抓取元素并保存到仓库,在脚本中需要用到的时候调取,但假如元素属性和个数是可变的,就不能事先保存到仓库了,需要在脚本运行时实时创建. 代码运行时实时创建一个元素对象的例子im ...

  7. 关于nagios系统下使用shell脚本自定义监控插件的编写以及没有实时监控图的问题

    关于nagios系统下shell自定义监控插件的编写.脚本规范以及没有实时监控图的问题的解决办法 在自已编写监控插件之前我们首先需要对nagios监控原理有一定的了解 Nagios的功能是监控服务和主 ...

  8. linux 实时监控网速脚本(转)

    #!/bin/bash ethn=$ while true do RX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{pri ...

  9. Tomcat集群 Nginx负载均衡 shell脚本实时监控Nginx

    第一步,安装Tomcat 系统环境:Centos7 第1步:下载tomcat安装包 tomcat官网:https://tomcat.apache.org/ 第2步:安装包上传至linux中 第3步:下 ...

随机推荐

  1. Set和Multiset 怎么用咧↓↓↓

    转自:[C++ STL]Set和Multiset - Memset - 博客园https://www.cnblogs.com/ChinaHook/p/6985444.html (对字体进行了略微的修改 ...

  2. 搭建Hadoop+Python的大数据开发环境

    实验环境 CentOS镜像为CentOS-7-x86_64-Everything-1804.iso 虚机配置 节点名称 IP地址 子网掩码 CPU/内存 磁盘 安装方式 master 192.168. ...

  3. vscode配合less的编译

    1.安装Easy LESS插件 2.打开settings.json,添加以下代码: "less.compile": { "sourceMap": true, & ...

  4. 修改mysql端口后重启mysql报错:Can't start server: Bind on TCP/IP port. Got error...n denied

    1:错误信息:如下 [root@host ~]# systemctl status mariadb ● mariadb.service - MariaDB database server Loaded ...

  5. 模型区分度衡量指标-KS值

    1.KS值--学习器将正例和反例分开的能力,确定最好的“截断点” KS曲线和ROC曲线都用到了TPR,FPR.KS曲线是把TPR和FPR都作为纵坐标,而样本数作为横坐标.但是AUC只评价了模型的整体训 ...

  6. django中配置使用celery

    环境版本: windows7 x64 django 1.11.6 django-celery 3.2.2 工程结构说明:源码下载请访问https://i.cnblogs.com/Files.aspx ...

  7. dockerfile 命令

    FROM 功能为指定基础镜像,并且必须是第一条指令. 如果不以任何镜像为基础,那么写法为:FROM scratch. 同时意味着接下来所写的指令将作为镜像的第一层开始 语法: FROM <ima ...

  8. [转帖]自动交互式脚本--expect

    自动交互式脚本--expect https://www.cnblogs.com/zhuiluoyu/p/4873869.html 我们经常会遇到一些需要与服务器程序打交道的场景,比如,从登陆某个服务器 ...

  9. 『正睿OI 2019SC Day4』

    总结 今天是一场欢乐的\(ACM\)比赛,于是我队得到了全场倒数的好排名. 好吧,其实还是怪自己不能怪队友啦.对于\(ACM\),可能最主要的还是经验不足,导致比赛的时候有点紧张.虽然队友为了磕一道题 ...

  10. Java学习:泛型简介

    泛型 泛型:是一种未知的数据类型,当我们不知道使用什么数据类型的时候,可以使用泛型 泛型也可以看出是一个变量,用来接受数据类型 E e : Element 元素 T t : Type 类型 Array ...