2. k6 环境搭建:安装、运行与版本管理

在开始编写压测脚本之前,必须先完成 k6 运行环境的搭建。本章将覆盖主流操作系统(Windows、macOS、Linux)的安装方式、首次运行验证、云服务登录以及版本切换策略,确保你能够快速进入实战状态。

2.1 各平台安装方式对比

k6 官方提供了多种安装途径,包括包管理器、二进制下载和 Docker 镜像。下表列出了各平台推荐安装方式及对应命令:

操作系统 推荐安装方式 安装命令 / 步骤
Windows Chocolatey / 官方 MSI choco install k6 或下载 .msi 安装包
macOS Homebrew brew install k6
Linux (Debian/Ubuntu) APT 仓库 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69
echo "deb https://dl.k6.io/deb stable main" | sudo tee /etc/apt/sources.list.d/k6.list
sudo apt-get update && sudo apt-get install k6
Linux (RHEL/CentOS/Fedora) YUM 仓库 sudo dnf install https://dl.k6.io/rpm/repo.rpm
sudo dnf install k6
Docker (跨平台) Docker 镜像 docker pull grafana/k6
💡 提示: 对于团队标准化环境,推荐使用 Docker 方式运行 k6,避免因本地依赖版本差异导致脚本行为不一致。Docker 镜像由 Grafana 官方维护,与 CLI 版本完全同步。

2.2 k6 run 命令初体验

安装完成后,通过 k6 run 命令执行第一个压测脚本。创建一个名为 first-test.js 的文件,内容如下:

import http from 'k6/http';
import { sleep } from 'k6';

export default function () {
  http.get('https://test.k6.io');
  sleep(1);
}

在终端中执行:

k6 run first-test.js

你将看到 k6 输出实时指标,包括请求持续时间、HTTP 请求失败率、虚拟用户数等。默认情况下,k6 以 1 个虚拟用户运行 1 次迭代。若要调整并发,可使用 --vus 和 --duration 参数:

k6 run --vus 10 --duration 30s first-test.js

该命令启动 10 个虚拟用户,持续运行 30 秒。输出结果中重点关注以下指标:

  • http_req_duration:请求平均/中位数/最大耗时
  • http_req_failed:失败请求占比
  • vus:当前活跃虚拟用户数
  • iterations:总迭代次数
🔍 关键观察: 首次运行建议使用 test.k6.io 作为目标,该站点由 k6 官方维护,响应稳定且不会触发安全拦截。若使用内部服务,请确保网络可达且防火墙放行。

2.3 k6 login cloud:连接 Grafana Cloud k6

Grafana Cloud k6 提供云端结果存储、团队协作和高级分析能力。使用 k6 login cloud 命令将本地 CLI 与云账号绑定:

k6 login cloud -- <YOUR_API_>

API 可在 Grafana Cloud 门户的 k6 Settings → API Tokens 中生成。登录成功后,运行脚本时添加 --out cloud 参数即可将结果上传至云端:

k6 run --out cloud first-test.js

上传后,终端会输出一个 URL 链接,点击即可在浏览器中查看实时仪表盘、历史趋势和对比报告。

⚠️ 注意: k6 login cloud 会将 存储在本地配置文件中(~/.config/k6/config.json)。请勿将该文件提交到版本控制系统。若使用 CI/CD 环境,建议通过环境变量 K6_CLOUD_ 注入 ,避免硬编码。

2.4 k6 版本管理与升级

k6 采用语义化版本号(SemVer),主版本升级可能引入破坏性变更。以下为版本管理的关键操作:

操作 命令 / 方法 说明
查看当前版本 k6 version 输出如 k6 v0.54.0
查看所有可用版本 GitHub Releases 页面 https://github.com/grafana/k6/releases
升级(Homebrew) brew upgrade k6 macOS 用户
升级(APT) sudo apt-get update && sudo apt-get install --only-upgrade k6 Debian/Ubuntu 用户
降级 / 指定版本 下载对应版本二进制 从 GitHub Releases 下载 .tar.gz 并替换 /usr/local/bin/k6
Docker 指定版本 docker pull grafana/k6:0.54.0 使用标签 0.54.0 而非 latest
💡 最佳实践: 在团队中统一 k6 版本,建议在项目根目录创建 .k6-version 文件记录版本号,并在 CI 流水线中强制使用该版本。Docker 方式天然支持版本锁定,是团队协作的首选。

2.5 环境搭建流程总览

下图展示了从安装到首次云端运行的完整流程,帮助你建立全局视角:

k6 环境搭建与首次运行流程 选择安装方式 执行安装命令 验证安装 编写测试脚本 k6 run 本地执行 查看本地结果 k6 login cloud --out cloud 上传 云端仪表盘 📌 说明: 虚线箭头表示可选路径。若仅需本地测试,可跳过 cloud 相关步骤;若需团队协作与历史对比,建议启用云端上传。

2.6 常见安装问题与排查

  • Windows 下 Chocolatey 安装失败:确保以管理员身份运行 PowerShell,并执行 Set-ExecutionPolicy RemoteSigned 解除脚本限制。
  • macOS 下 Homebrew 权限错误:运行 brew doctor 修复目录权限,或使用 sudo chown -R $(whoami) /usr/local/share 调整所有权。
  • Linux 下 GPG 密钥过期:重新导入 k6 官方密钥,命令见上文 APT 安装步骤。
  • Docker 容器内无法连接目标:检查容器网络模式,使用 --network host 或正确配置 DNS。
  • k6 login cloud 返回 401:确认 未过期,且在 Grafana Cloud 中具有 k6 资源写入权限。
✅ 验证清单: 完成本章后,请确认以下项目均已通过:
① k6 version 输出正常版本号
② k6 run first-test.js 成功执行并输出指标
③ k6 login cloud -- xxx 返回 "Logged in successfully"
④ k6 run --out cloud first-test.js 生成云端 URL