📋 目录
- 环境准备
- [Docker 配置](#Docker 配置)
- [k6 安装](#k6 安装)
- 启动服务
- [配置 Grafana](#配置 Grafana)
- [运行 k6 测试](#运行 k6 测试)
- 查看测试结果
- 常见问题
- 快速命令参考
环境准备
1. 安装 Docker Desktop(Windows)
-
下载 Docker Desktop for Windows
- 访问:https://www.docker.com/products/docker-desktop
- 下载并安装 Docker Desktop
-
启动 Docker Desktop
- 确保 Docker Desktop 正在运行
- 在系统托盘可以看到 Docker 图标
-
验证 Docker 安装
docker --version
docker compose version
2. 安装 k6(Windows)
方法1:使用 Chocolatey(推荐)
ll
安装 Chocolatey(如果还没有)
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
使用 Chocolatey 安装 k6
choco install k6#### 方法2:使用 Scoop
ell
安装 Scoop(如果还没有)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
使用 Scoop 安装 k6
scoop install k6#### 方法3:手动安装
- 访问:https://k6.io/docs/getting-started/installation/
- 下载 Windows 版本
- 解压到某个目录(如
C:\k6) - 将目录添加到系统 PATH 环境变量
验证 k6 安装
k6 version---
Docker 配置
创建 docker-compose.yml
在项目目录下创建 docker-compose.yml 文件:
version: '3.8'
services:
influxdb:
image: influxdb:1.8
container_name: k6-influxdb
ports:
- "8086:8086"
environment:
-
INFLUXDB_DB=k6
-
INFLUXDB_ADMIN_USER=admin
-
INFLUXDB_ADMIN_PASSWORD=admin123456
-
INFLUXDB_HTTP_AUTH_ENABLED=true
volumes:
- influxdb-data:/var/lib/influxdb
healthcheck:
test: ["CMD", "influx", "-version"]
interval: 10s
timeout: 5s
retries: 5
grafana:
image: grafana/grafana:10.2.0
container_name: k6-grafana
ports:
- "3000:3000"
environment:
-
GF_SECURITY_ADMIN_USER=admin
-
GF_SECURITY_ADMIN_PASSWORD=admin123456
-
GF_INSTALL_PLUGINS=
volumes:
- grafana-data:/var/lib/grafana
depends_on:
influxdb:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:3000/api/health || exit 1"]
interval: 10s
timeout: 5s
retries: 5
volumes:
influxdb-data:
grafana-data:### 配置说明
- InfluxDB 1.8:使用 1.8 版本(兼容 k6)
- 端口映射 :
- InfluxDB:
8086 - Grafana:
3000
- InfluxDB:
- 默认账号密码 :
- InfluxDB:
admin/admin123456 - Grafana:
admin/admin123456
- InfluxDB:
- 数据持久化:使用 Docker volumes 保存数据
启动服务
1. 启动 Docker 服务
在项目目录下执行:
启动服务(后台运行)
docker compose up -d
查看服务状态
docker compose ps
查看日志
docker compose logs -f### 2. 验证服务运行
检查 InfluxDB
l
检查容器状态
docker ps | findstr influxdb
测试连接
curl http://localhost:8086/ping#### 检查 Grafana
hell
检查容器状态
docker ps | findstr grafana
浏览器访问
http://localhost:3000### 3. 服务管理命令
启动服务
docker compose up -d
停止服务
docker compose down
重启服务
docker compose restart
查看日志
docker compose logs -f influxdb
docker compose logs -f grafana
删除所有数据(谨慎使用)
docker compose down -v---
配置 Grafana
1. 登录 Grafana
- 打开浏览器访问:http://localhost:3000
- 默认登录信息:
- 用户名:
admin - 密码:
admin123456
- 用户名:
- 首次登录会要求修改密码(可以跳过)
2. 配置 InfluxDB 数据源
步骤1:添加数据源
- 点击左侧菜单栏的 ⚙️ Configuration(配置图标)
- 选择 Data sources(数据源)
- 点击右上角的 Add data source(添加数据源)按钮
- 在搜索框中输入
InfluxDB或直接选择 InfluxDB
步骤2:配置数据源参数
HTTP 设置:
- URL :
http://influxdb:8086- ⚠️ 重要:使用容器名
influxdb,不要用localhost - 因为 Grafana 和 InfluxDB 在同一个 Docker 网络中
- ⚠️ 重要:使用容器名
InfluxDB Details:
- Database :
k6 - User :
admin - Password :
admin123456 - HTTP Method :
GET(默认)
Auth:
- 保持默认设置,不需要额外配置
步骤3:保存并测试
- 滚动到页面底部
- 点击 Save & Test(保存并测试)按钮
- 应该看到绿色的成功提示:Data source is working
3. 导入 k6 仪表板
方法1:从 Grafana.com 导入(推荐)
- 点击左侧菜单栏的 📊 Dashboards(仪表板)
- 点击 Import(导入)
- 在 Import via grafana.com 输入框中输入仪表板 ID:
2587 - 点击 Load(加载)按钮
- 在 Select a InfluxDB data source 下拉菜单中选择刚才创建的 InfluxDB 数据源
- 点击 Import(导入)按钮
运行 k6 测试
1. 基础测试(输出到控制台)
ershell
k6 run k6_login_test.js
2. 输出到 InfluxDB(用于 Grafana 可视化)
k6 run --out "influxdb=http://admin:admin123456@localhost:8086/k6" k6_login_test.js### 3. 压力测试(用于 pprof 分析)
k6 run --out "influxdb=http://admin:admin123456@localhost:8086/k6" k6_login_stress_test.js---
查看测试结果
1. 在 Grafana 中查看
- 打开浏览器访问:http://localhost:3000
- 登录 Grafana(admin / admin123456)
- 点击左侧菜单 Dashboards
- 选择导入的 k6 仪表板
- 刷新页面查看最新数据
2. 在终端查看
k6 会在终端输出详细的统计信息: