一、背景

我们很多时候在使用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. 关于微信订阅号里自动回复里的a链接的问题

    前阵子做了一个微信订阅号的活动,然后发现一个问题:就是回复内容里的a标签微信没有解析出来,而是这样 正常应该是这样: 具体出现这种情况的手机有: 魅族的型号是:M1 metal小米的型号是:MI 5X ...

  2. Kubeadm部署安装kubernetes1.12.1

    1.环境准备(这里是master) CentOS 7.6 两台配置如下,自己更改主机名,加入hosts, master和node 名字不能一样 # hostname master # hostname ...

  3. 【操作系统之十】内存分页管理与swap

    一.虚拟内存电脑里内存分内存条(这里我们叫物理内存)和硬盘,内存条保存程序运行时数据,硬盘持久保存数据.那么虚拟内存是什么? 程序运行会启动一个进程,进程里有程序段.全局数据.栈和堆,这些都会加载到内 ...

  4. QuantLib 金融计算——基本组件之 Money 类

    目录 QuantLib 金融计算--基本组件之 Money 类 概述 构造函数 成员函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件之 Money ...

  5. shell脚本监控httpd服务80端口状态

    监控httpd服务端口状态,根据端口判断服务器是否启动,如果没有启动则脚本自动拉起服务,如果服务正在运行则退出脚本程序:如果换成别的服务端口也可以,但是脚本程序需要做调整. #!/bin/bash # ...

  6. FPGA控制RGMII接口PHY芯片基础

    一.前言 网络通信中的PHY芯片接口种类有很多,之前接触过GMII接口的PHY芯片RTL8211EG.但GMII接口数量较多,本文使用RGMII接口的88E1512搭建网络通信系统.这类接口总线位宽小 ...

  7. asp.net core 日志记录到elk

    关于ELK的安装大家可以参考ubuntu18 docker中部署ELK 和 caas/docker-elk , 首先需要在ELK中创建一个index patterns ​ 首先我们创建一个aspnet ...

  8. Django 模板语言 条件判断

    Django 模板语言 条件判断 ############### 条件 ################## # view 文件 def func(request): ... return rende ...

  9. python3 根据时间获取本月一号和月末日期

    一.概述 有一个统计报表需求,需要知道上个月的第一天和最后一天,来进行上个月的数据统计. 二.代码实现 #!/usr/bin/env python3 # coding: utf-8 import ca ...

  10. K8S学习笔记之使用Fluent-bit将容器标准输入和输出的日志发送到Kafka

    0x00 概述 K8S内部署微服务后,对应的日志方案是不落地方案,即微服务的日志不挂在到本地数据卷,所有的微服务日志都采用标准输入和输出的方式(stdin/stdout/stderr)存放到管道内,容 ...