测试案例

# 最简单的部署方式直接单机启动nohup java -jar lesson-one-0.0.1-SNAPSHOT.jar > ./server.log 2>&1 &

然后配置执行计划:

  • 新建一个执行计划
  • 配置请求路径
  • 配置断言
  • 配置响应持续时间断言
  • 然后配置一些查看结果的统计报表或者图形

    然后我们可以安装一个插件来可视化更多的指标:
    jmeter官网
    jmeter插件官网
    安装插件:
    将下载的插件jar 放到目录

    看到插件中心表示安装插件完成:

    然后安装下图两个插件:

    安装完成以后就可以选择:

    然后比较重要的三个指标是:
    响应时间:jp@gc – Response Times Over Time
    活动线程数:jp@gc – Active Threads Over Time
    每秒事务数:jp@gc – Transactions per Second

梯度压测

配置如下,只是多配置一些线程组:

然后为了后面使用方便可以定义一些环境变量:

使用环境变量:

InfluxDB监控平台的搭建

1 安装InfluxDB

docker pull influxdb:1.8docker run -d --name influxdb -p 8086:8086 -p 8083:8083 influxdb:1.8docker exec -it influxdb /bin/bash#创建数据库create database jmeter show databases

然后配置后端监听

2)主要配置说明
influxdbUrl:需要改为自己influxdb的部署ip和映射端口,我这里是部署在阿里云服务器,所以就是47.93.59.248,口是容器启动时映射的8086端口,db后面跟的是刚才创建的数据库名称
application:可根据需要自由定义,只是注意后面在 grafana 中选对即可
measurement:表名,默认是 jmeter ,也可以自定义
summaryOnly:选择true的话就只有总体的数据。false会记录总体数据,然后再将每个transaction都分别记录
samplersRegex:样本正则表达式,将匹配的样本发送到数据库
percentiles:响应时间的百分位P90、P95、P99
testTitle:events表中的text字段的内容
eventTags:任务标签,配合Grafana一起使用

进入容器内部,输入命令查看测试的数据:

2 安装 图形话界面 Grafana

docker pull grafana/grafanadocker run -d --name grafana -p 3000:3000 grafana/grafana

访问http://ip:3000/
然后增加一个数据源:

下面我们导入一些模板(官方提供)用于快速的可视化监控数据

这里直接参考两个非常常用的模板ID
Apache JMeter Dashboard dashboad
-ID:5496
JMeter Dashboard(3.2 and up)
dashboad-ID:3351
最终效果:

Prometheus 监控平台搭建

1 安装node_exporter

wget -c https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-arm64.tar.gztar zxvf node_exporter-0.18.1.linux-amd64.tar.gz -C /liyong/nohup ./node_exporter > node.log 2>&1 &

访问:
http://ip:9100/metrics 验证是否安装成功

2 安装Prometheus

# 下载wget -c https://github.com/prometheus/prometheus/releases/download/v2.15.1/prometheus-2.15.1.linux-amd64.tar.gz # 解压tar zxvf prometheus-2.15.1.linux-amd64.tar.gz -C /liyong/# 运行nohup ./prometheus > prometheus.log 2>&1 &

如果是监控多台服务器需要修改配置在prometheus.yml

scrape_configs:# The job name is added as a label `job=` to any timeseries scraped from this config.- job_name: 'prometheus'# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ['ip1:9090','ip2:9090','ip3:9090']

启动以后访问:
http://ip:9090/targets
然后同样在Grafana中导入模板
Node Exporter for Prometheus Dashboard EN 20201010
dashboard-ID: 11074
Node Exporter Dashboard
dashboard-ID: 16098