一、背景

我们很多时候在使用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. Linux下的串口编程(转)

    https://blog.csdn.net/tigerjibo/article/details/6179291 #include<stdio.h> /*标准输入输出定义*/ #includ ...

  2. python 项目实战之Django 邮件发送

    发送邮件¶ 虽然 Python 借助 smtplib 模块简化了发送邮件的流程,但是 Django 在其基础上提供了更简化的支持.这些封装意在加快邮件发送,方便在开发时测试发送邮件,在不支持 SMTP ...

  3. concurrent (二)AQS

    参考文档: https://www.cnblogs.com/waterystone/p/4920797.html

  4. prometheus、node_exporter、cAdvisor常用参数

    本节将介绍一下我在使用过程中用到的promethues.node_exporter.cAdvisor的常用参数,做一个总结 一.prometheus prometheus分为容器安装和二进制文件安装, ...

  5. react-native项目如何在xcode上打开ios项目

    如何打开ios项目? 导入或者双击ios/thirtydays.xcodeproj

  6. phpcms发布文章自定义字段

    phpcms发布文章自定义字段1 进入后台 模型管理 新建模型 里面可以自定义字段了

  7. mke2fs和mkfs命令使用

    1.mke2fs命令 在Linux系统下,mke2fs命令可用于创建磁盘分区上的”ext2/ext3”文件系统. (1)语法 mke2fs(选项)(参数) (2)常用选项 -b<区块大小> ...

  8. 【LeetCode】搜索旋转排序数组【两次二分】

    假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存在这个目标值, ...

  9. STL源码剖析——序列式容器#5 heap

    准确来讲,heap并不属于STL容器,但它是其中一个容器priority queue必不可少的一部分.顾名思义,priority queue就是优先级队列,允许用户以任何次序将任何元素加入容器内,但取 ...

  10. 【Go】go的日志框架-logrus初探

    summary logrus是针对go语言开发的一款日志系统,在本片文章中,将会对上手logrus的过程中遇到的一些问题做一个记录.这个记录参考了这篇文章.下面我们开始吧! 上手 package ma ...