2. k6 安装与配置:Windows/Linux/macOS 安装方式、环境变量配置、k6 run 命令基础、k6 login 与云服务集成
2.1 跨平台安装方式对比
k6 作为一款基于 Go 语言开发的单二进制工具,安装过程极为简洁。无论你使用哪种操作系统,核心思路都是将 k6 可执行文件放入系统 PATH 路径。下表汇总了三种主流操作系统的推荐安装方式及适用场景:
| 操作系统 | 推荐安装方式 | 命令/步骤 | 适用场景 |
|---|---|---|---|
| Windows | Chocolatey / 官方 MSI | choco install k6 或下载 .msi 安装包 |
本地开发、快速上手 |
| macOS | Homebrew | brew install k6 |
macOS 开发者、CI 本地调试 |
| Linux (Debian/Ubuntu) | APT 仓库 | sudo apt-key adv ... && sudo apt-get install k6 |
服务器、CI/CD 流水线 |
| Linux (其他发行版) | 官方 .tar.gz 二进制 | 下载解压后放入 /usr/local/bin |
容器化、离线环境 |
💡 最佳实践: 在 CI/CD 环境中,推荐使用官方 Docker 镜像
grafana/k6 直接运行,无需手动安装二进制。例如:docker run --rm -i grafana/k6 run - < script.js。
2.2 环境变量配置与验证
安装完成后,需要确保 k6 可执行文件位于系统 PATH 中。以下为各系统的验证与配置方法:
- 验证安装: 打开终端,执行
k6 version,应输出类似k6 v0.54.0 (go1.22.5, linux/amd64)的版本信息。 - Windows 手动配置 PATH: 若使用 .msi 安装,通常自动配置;若使用 .zip 包,需将解压路径添加到系统环境变量
Path中。 - Linux/macOS 手动配置: 若使用 .tar.gz 包,将解压后的
k6文件移动到/usr/local/bin或添加到~/.bashrc/~/.zshrc的export PATH=$PATH:/path/to/k6。
🔑 关键环境变量: k6 运行时支持通过环境变量覆盖配置,常用变量包括
K6_CLOUD_(云服务令牌)、K6_OUT(输出目标)、K6_ITERATIONS(迭代次数)等。这些变量优先级高于命令行参数,适合在 CI 中动态注入。
2.3 k6 run 命令基础
k6 run 是执行压测脚本的核心命令。其基本语法为:
k6 run [options] <script-file>
以下为最常用的参数组合及说明:
| 参数 | 简写 | 说明 | 示例 |
|---|---|---|---|
--vus |
-u |
设置虚拟用户数 | --vus 10 |
--duration |
-d |
设置测试持续时间 | --duration 30s |
--iterations |
-i |
设置总迭代次数 | --iterations 100 |
--out |
-o |
指定输出目标(如 csv, json, cloud) | --out csv=result.csv |
--http-debug |
无 | 打印 HTTP 请求/响应详情(调试用) | --http-debug |
一个典型的快速压测命令示例:
k6 run --vus 20 --duration 60s --out csv=report.csv load-test.js
⚠️ 注意:
--duration 和 --iterations 同时使用时,k6 会以先达到的条件为准。例如 --duration 10s --iterations 1000,若 10 秒内未完成 1000 次迭代,测试会在 10 秒时停止。
2.4 k6 login 与云服务集成
k6 Cloud(Grafana Cloud k6)提供分布式负载执行、结果存储与可视化分析能力。本地脚本可通过 k6 login 命令与云服务建立信任关系。
集成流程分为两步:
- 获取云令牌: 登录 Grafana Cloud k6 Web 界面,在 Settings → API Tokens 中创建令牌。
- 执行登录命令: 在终端运行
k6 login cloud -- <your->,该命令会将令牌写入本地配置文件(通常位于~/.config/k6/config.json)。
登录成功后,即可通过 --out cloud 将测试结果实时上传至云平台:
k6 run --out cloud script.js
云服务集成带来的核心能力包括:
- 分布式负载生成: 利用云负载节点模拟来自全球不同地域的流量。
- 实时仪表盘: 在浏览器中查看毫秒级延迟、吞吐量、错误率等指标。
- 历史对比: 自动保存每次测试结果,支持跨版本性能回归分析。
- 团队协作: 共享测试配置与报告,无需手动导出 CSV。
🔐 安全提示: 在 CI/CD 环境中,不要将令牌硬编码在脚本中。应通过环境变量
K6_CLOUD_ 注入,k6 会自动读取该变量完成认证,无需执行 k6 login 命令。
2.5 安装与配置流程总览
下图展示了从安装到首次运行压测的完整链路,帮助你建立全局认知:
2.6 常见安装问题与避坑
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
k6: command not found |
k6 未在 PATH 中 | 重新检查安装路径,或手动添加 PATH |
k6 version 显示旧版本 |
系统缓存了旧版本 | 使用 which k6 定位二进制位置,删除旧文件 |
k6 login cloud 提示认证失败 |
令牌过期或无效 | 在 Grafana Cloud 重新生成令牌,注意令牌权限范围 |
| Windows 下中文路径报错 | 编码问题 | 将脚本路径改为纯英文,或使用 PowerShell 执行 |
🚀 快速验证: 安装完成后,执行以下命令可快速验证 k6 是否正常工作:
k6 run --vus 1 --duration 5s - <<< 'export default function() { console.log("Hello k6"); }'