Easy-Jmeter 1.0 平台部署实战:5分钟完成 Docker Compose 一键部署与压力机配置

性能测试是确保系统稳定性和可靠性的关键环节,而Easy-Jmeter作为基于JMeter的企业级性能测试平台,通过容器化部署大幅简化了传统性能测试的复杂度。本文将带您从零开始,在5分钟内完成全套环境的快速部署。

1. 环境准备与前置条件

在开始部署前,请确保您的Linux服务器满足以下基础要求:

  • Docker Engine :版本不低于20.10.7
  • Docker Compose :版本不低于1.29.2
  • 硬件配置
    • 最低:4核CPU/8GB内存/50GB存储
    • 推荐:8核CPU/16GB内存/100GB SSD存储
  • 网络环境
    • 开放端口:3000(前端)、8080(后端)、9092(MinIO)
    • 带宽:建议≥100Mbps(分布式压测时需更高)

提示:可通过 docker-compose version docker --version 命令验证组件版本

2. 一键部署实战

2.1 配置文件准备

创建 docker-compose.yml 文件,内容如下:

version: '3.8'
services:
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: jmeter@123
      MYSQL_DATABASE: easy_jmeter
    volumes:
      - mysql_data:/var/lib/mysql
    ports:
      - "3306:3306"

  minio:
    image: minio/minio
    command: server /data --console-address ":9001"
    environment:
      MINIO_ROOT_USER: admin
      MINIO_ROOT_PASSWORD: jmeter@123
    volumes:
      - minio_data:/data
    ports:
      - "9092:9000"
      - "9001:9001"

  influxdb:
    image: influxdb:1.8
    volumes:
      - influxdb_data:/var/lib/influxdb
    ports:
      - "8086:8086"

  backend:
    image: guojiaxing/easy-jmeter-api:1.0
    depends_on:
      - mysql
      - minio
      - influxdb
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/easy_jmeter
      SPRING_DATASOURCE_USERNAME: root
      SPRING_DATASOURCE_PASSWORD: jmeter@123
      MINIO_ENDPOINT: http://minio:9000
      MINIO_ACCESSKEY: admin
      MINIO_SECRETKEY: jmeter@123
    ports:
      - "8080:8080"

  frontend:
    image: guojiaxing/easy-jmeter-web:1.0
    depends_on:
      - backend
    ports:
      - "3000:80"

volumes:
  mysql_data:
  minio_data:
  influxdb_data:

2.2 启动与验证

执行以下命令启动服务:

# 拉取镜像并启动容器
docker-compose up -d

# 查看服务状态(等待所有服务变为healthy)
watch docker-compose ps

服务启动后,通过以下URL访问各组件:

组件 访问地址 默认凭证
前端界面 http://服务器IP:3000 admin/admin123
MinIO控制台 http://服务器IP:9001 admin/jmeter@123
InfluxDB http://服务器IP:8086

3. 压力机节点配置

3.1 Agent部署流程

每台压力机需要执行以下操作:

# 下载Agent安装包
wget https://github.com/guojiaxing1995/easy-jmeter/releases/download/v1.0/agent.tar.gz

# 解压并安装
tar -zxvf agent.tar.gz
cd agent && ./install.sh

# 配置环境变量
echo "export JMETER_HOME=/opt/apache-jmeter-5.4.1" >> ~/.bashrc
source ~/.bashrc

3.2 关键配置检查

完成部署后需验证三项核心配置:

  1. JMeter环境检测

    $JMETER_HOME/bin/jmeter -v
    # 应输出:Apache JMeter version 5.4.1
    
  2. Agent连接测试

    telnet 主控服务器IP 9090
    # 应建立Socket连接
    
  3. 文件权限设置

    chmod -R 777 $JMETER_HOME/bin
    

4. 平台功能验证

4.1 快速测试用例

使用内置示例进行验证:

  1. 登录平台后进入"用例管理"
  2. 点击"导入示例"按钮
  3. 选择"HTTP压力测试示例.jmx"
  4. 启动测试并观察实时数据

4.2 健康检查指标

通过API接口验证各组件状态:

# 检查后端服务
curl -X GET "http://localhost:8080/api/health" 

# 预期返回:
{
  "status": "UP",
  "components": {
    "mysql": {"status": "UP"},
    "minio": {"status": "UP"},
    "influxdb": {"status": "UP"}
  }
}

5. 高级配置技巧

5.1 性能调优参数

docker-compose.yml 中添加以下参数优化性能:

backend:
  environment:
    # JVM堆内存设置
    JAVA_OPTS: "-Xms4g -Xmx8g -XX:MaxMetaspaceSize=1g"
    # 线程池配置
    SERVER_TOMCAT_MAX_THREADS: "200"
    SERVER_TOMCAT_ACCEPT_COUNT: "100"

5.2 分布式压测配置

多节点部署时需修改 backend 服务配置:

environment:
  # 启用分布式模式
  CLUSTER_MODE: "true"
  # 节点发现地址
  DISCOVERY_SERVICE: "http://压力机1:9090,http://压力机2:9090"

6. 常见问题排查

6.1 部署问题速查表

现象 可能原因 解决方案
容器启动失败 端口冲突 修改 docker-compose.yml 端口映射
MinIO无法上传文件 存储卷权限不足 执行 chmod -R 777 minio_data
Agent连接超时 防火墙限制 开放9090端口TCP通信
JMeter脚本执行报错 环境变量未生效 重新登录服务器或重启Agent服务

6.2 日志查看方法

关键日志路径:

# 查看后端日志
docker-compose logs -f backend

# 查看Agent日志(压力机上)
tail -f /opt/easy-jmeter/agent/logs/agent.log

对于需要深入分析的问题,建议启用DEBUG日志:

# 临时修改日志级别
curl -X POST "http://localhost:8080/api/loggers/ch.qos.logback.classic" \
  -H "Content-Type: application/json" \
  -d '{"configuredLevel":"DEBUG"}'

通过以上步骤,您已经完成了从零开始的全套环境部署。在实际项目中,建议结合CI/CD流水线实现测试环境的自动化部署和销毁,这将进一步提升资源利用效率。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐