zoukankan      html  css  js  c++  java
  • jmeter静默压测+可视化

    静默压测自动化脚本auto_stress_test.sh

    #!/usr/bin/env bash
    export jmx_template="test2"
    export suffix=".jmx"
    export jmx_template_filename="${jmx_template}${suffix}"
    export os_type=`uname`
    
    # 需要在系统变量中定义jmeter根目录的位置,如下
    #export jmeter_path=/usr/local/jmeter/apache-jmeter-5.2
    
    # 清空nohup.out
    cat /dev/null > nohup.out
    
    # 强制杀掉JMeter进程
    killJMeter()
    {
        pid=`ps -ef|grep jmeter|grep java|grep ${jmx_filename}|awk '{print $2}'`
        echo "jmeter Id list :$pid"
        if [[ "$pid" = "" ]]
        then
          echo "no jmeter pid alive"
        else
          kill -9 $pid
        fi
    }
    
    thread_number_array=(100 200 300)
    for num in "${thread_number_array[@]}"
    do
        # 生成对应压测线程的jmx文件
        export jmx_filename="${jmx_template}_${num}${suffix}"
        export jtl_filename="test_${num}.jtl"
    
        rm -f ${jmx_filename} ${jtl_filename}
        cp ${jmx_template_filename} ${jmx_filename}
        echo "生成jmx压测脚本 ${jmx_filename}"
    
        if [[ "${os_type}" == "Darwin" ]]; then
            sed -i "" "s/thread_num/${num}/g" ${jmx_filename}
        else
            sed -i "s/thread_num/${num}/g" ${jmx_filename}
        fi
    
        # JMeter 静默压测
        nohup ${jmeter_path}/bin/jmeter -n -t ${jmx_filename} -l ${jtl_filename} &
        sleep 30
        killJMeter
        rm -f ${jmx_filename}
    done
    echo "自动化压测全部结束"
    
    
    

    jmeter脚本test2.jmx必须和auto_stress_test.sh脚本在同一个文件夹下

    docker 安装influxdb

    启动influxdb
    docker run -d -p 8086:8086 -p 8083:8083 --name=jmeterdb influxdb
    
    进入influxdb容器
    docker exec -it jmeterdb bash
    
    进入influxdb输入
    influx
    
    创建数据库,名称为:jmeter
    create database jmeter;
    
    进入创建的数据库
    use jmeter
    

    添加Backend LIstener

    Backend LIstener配置连接influxdb

    influxdbUrl:http://119.3.89.184:8086/write?db=jmeter
    119.3.89.184为你的ip
    db:上面创建的influxdb的数据库名称
    
    application:可以自己起名
    

    搭建grafana

    docker run -d -p 3000:3000 --name=jmeterGraf grafana/grafana
    初始用户名:admin
    密码:admin
    





    压测后

    导入模板的json文件
    链接:https://pan.baidu.com/s/1lUGR-kMbk4hhNNKU7udzdQ 密码:hdz9

  • 相关阅读:
    Jenkins配置:添加用户和管理权限
    Jenkins安装与配置
    jenkins配置邮件通知
    Jenkins 配置邮件通知
    jenkins+SVN配置
    第九周学习进度
    梦断代码阅读笔记 01
    第八周学习进度
    “理了么”软件特点NABCD个人分析
    第七周学习进度
  • 原文地址:https://www.cnblogs.com/an5456/p/12643669.html
Copyright © 2011-2022 走看看