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 C5AD17C747E3415A3642D57D77C6C491D6AC1D69echo "deb https://dl.k6.io/deb stable main" | sudo tee /etc/apt/sources.list.d/k6.listsudo apt-get update && sudo apt-get install k6 |
| Linux (RHEL/CentOS/Fedora) | YUM 仓库 | sudo dnf install https://dl.k6.io/rpm/repo.rpmsudo 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 环境搭建流程总览
下图展示了从安装到首次云端运行的完整流程,帮助你建立全局视角:
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