测试案例
# 最简单的部署方式直接单机启动
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.8
docker run -d --name influxdb -p 8086:8086 -p 8083:8083 influxdb:1.8
docker 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/grafana
docker 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.gz
tar 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=<job_name>` 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