Jmeter实时压测结果收集
JMeter 实时压测结果收集
简介
JMeter
、Grafana
和 InfluxDB
结合成的实时压测体系是一个强大的性能监控和测试解决方案。这个体系能够实时地收集、分析和展示性能测试数据,帮助开发者和测试人员更好地理解系统的性能表现,及时发现潜在问题并进行优化。为性能测试和监控提供了强大的支持,有助于提升系统的性能和稳定性。
结合Grafana
进行实时压测的优点
- 实时数据收集:
JMeter
在测试过程中实时生成性能数据,并将其发送到InfluxDB
进行存储。 - 数据分析和可视化:
InfluxDB
存储的数据可以通过Grafana
进行高效查询和分析,同时以图表和仪表板的形式展示给用户。 - 性能监控和预警:通过
Grafana
的仪表板,用户可以实时监控系统的性能表现,并在出现异常时及时发出预警。 - 问题定位和优化:根据
Grafana
展示的性能数据,开发人员可以定位潜在的性能问题,并进行针对性的优化。
如何进行实时压测
环境准备
创建 influxdb 服务
- 拉取 influxdb 镜像
docker pull influxdb:1.8
-
创建并启动容器
sudo docker run -d -p 8086:8086 -p 8083:8083 --name JMeterdb influxdb:1.8
-
检验容器是否启动
docker ps
- 创建数据库
- 进入
JMeter
db 容器内部:docker exec –it JMeterdb bash
- 进入容器命令行模式
influx
- 创建数据库
create database JMeter;
- 检查数据库是否创建成功
show databases;
- 进入
打开 JMeter 设置数据传导,并且进行压测
-
打开虚拟机上的JMeter
终端输入
JMeter
-
创建线程组,线程组配置
-
配置元件
Backend Listener implementation
- 在
JMeter
中添加Backend Listener
组件,用于收集数据并发送给influxDB
- 在
Backend Listener implementation
中选择InfluxdbBackendListenerClient
(必须使用 JMeter5. 0 以上版本,否则需要单独装插件才能看到这个组件)
- 在
influxdbURL
中填写实际的influxdb hostname
application
中填baidu
- 在
testTitle
中填Baidu Testing
- 在
percentiles
中填50;90;95;99
- 将
summaryOnly
设置为false
- 其余配置不变
- 在
4. 检查终端的 JMeterdb 容器内部的数据库是否新增了数据
结合Grafana
服务进行压测结果展示
- 拉取
Grafana
镜像docker pull grafana/grafana
- 创建并启动容器
docker run -d -p 3000:3000 --name JMeterGrafana grafana/grafana
-
检验容器是否启动成功
docker ps
检验容器是否运行- 浏览器输入
localhost:3000
判断是否进入Grafana
管理页面
-
配置数据源
-
创建面板
-
打开面板,查看数据
常用指标
JMeter
压测的常用指标及其对应的英文名如下:
-
TPS (Transactions Per Second):每秒事务数。这是性能测试中最重要的指标之一,它衡量了系统在单位时间内处理事务的能力。每个事务包括向服务器发送请求、服务器内部处理(包括应用服务器、数据库服务器等)以及服务器返回结果给客户端的完整过程。
-
QPS (Queries Per Second):每秒查询率。它衡量了一台服务器每秒能够响应的查询次数,主要针对专门用于查询的服务器的性能指标。在只有一个请求接口的情况下,QPS 等价于 TPS。但需要注意的是,一个事务访问可能产生多次对服务器的请求,这些请求都可以计入 QPS 之中。
-
并发数 (Concurrency Number):指系统同时能处理的请求数量,它反映了系统的负载能力。这个数值可以通过分析机器 1S 内的访问日志数量来得到。
-
吞吐量 (Throughput):指系统在单位时间内处理请求的数量。TPS 和 QPS 都是吞吐量的常用量化指标。
-
响应时间 (Response Times):系统对请求作出响应的时间,从客户端发出请求开始计时,到收到服务端响应后结束计时。这也是性能测试中非常重要的指标之一。
总结
- 简介
- 如何进行实时压测