Skip to content

Jmeter实时压测结果收集

JMeter 实时压测结果收集

简介

JMeterGrafanaInfluxDB 结合成的实时压测体系是一个强大的性能监控和测试解决方案。这个体系能够实时地收集、分析和展示性能测试数据,帮助开发者和测试人员更好地理解系统的性能表现,及时发现潜在问题并进行优化。为性能测试和监控提供了强大的支持,有助于提升系统的性能和稳定性。

结合Grafana进行实时压测的优点

  1. 实时数据收集:JMeter 在测试过程中实时生成性能数据,并将其发送到 InfluxDB 进行存储。
  2. 数据分析和可视化:InfluxDB 存储的数据可以通过Grafana进行高效查询和分析,同时以图表和仪表板的形式展示给用户。
  3. 性能监控和预警:通过Grafana的仪表板,用户可以实时监控系统的性能表现,并在出现异常时及时发出预警。
  4. 问题定位和优化:根据Grafana展示的性能数据,开发人员可以定位潜在的性能问题,并进行针对性的优化。

如何进行实时压测

环境准备

  1. 安装 JDK 并且配置环境:参考教程

  2. 安装 JMeter 并且配置环境:参考教程

创建 influxdb 服务

  1. 拉取 influxdb 镜像 docker pull influxdb:1.8
  2. 创建并启动容器 sudo docker run -d -p 8086:8086 -p 8083:8083 --name JMeterdb influxdb:1.8

    alt text

  3. 检验容器是否启动

    • docker ps
  4. 创建数据库
    • 进入 JMeterdb 容器内部: docker exec –it JMeterdb bash
    • 进入容器命令行模式 influx
    • 创建数据库 create database JMeter;
    • 检查数据库是否创建成功 show databases;

打开 JMeter 设置数据传导,并且进行压测

  1. 打开虚拟机上的JMeter

    终端输入JMeter

  2. 创建线程组,线程组配置

    alt text

  3. 配置元件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
    • 其余配置不变

alt text

alt text 4. 检查终端的 JMeterdb 容器内部的数据库是否新增了数据

alt text

结合Grafana服务进行压测结果展示

  1. 拉取Grafana镜像 docker pull grafana/grafana
  2. 创建并启动容器 docker run -d -p 3000:3000 --name JMeterGrafana grafana/grafana
  3. 检验容器是否启动成功

    • docker ps 检验容器是否运行
    • 浏览器输入localhost:3000判断是否进入Grafana管理页面

    alt text

  4. 配置数据源

    alt text

    alt text alt text alt text alt text

  5. 创建面板 alt text alt text alt text

  6. 打开面板,查看数据 alt text

常用指标

JMeter 压测的常用指标及其对应的英文名如下:

  1. TPS (Transactions Per Second):每秒事务数。这是性能测试中最重要的指标之一,它衡量了系统在单位时间内处理事务的能力。每个事务包括向服务器发送请求、服务器内部处理(包括应用服务器、数据库服务器等)以及服务器返回结果给客户端的完整过程。

  2. QPS (Queries Per Second):每秒查询率。它衡量了一台服务器每秒能够响应的查询次数,主要针对专门用于查询的服务器的性能指标。在只有一个请求接口的情况下,QPS 等价于 TPS。但需要注意的是,一个事务访问可能产生多次对服务器的请求,这些请求都可以计入 QPS 之中。

  3. 并发数 (Concurrency Number):指系统同时能处理的请求数量,它反映了系统的负载能力。这个数值可以通过分析机器 1S 内的访问日志数量来得到。

  4. 吞吐量 (Throughput):指系统在单位时间内处理请求的数量。TPS 和 QPS 都是吞吐量的常用量化指标。

  5. 响应时间 (Response Times):系统对请求作出响应的时间,从客户端发出请求开始计时,到收到服务端响应后结束计时。这也是性能测试中非常重要的指标之一。

总结

  • 简介
  • 如何进行实时压测