k6
k6 是 Grafana Labs 推出的开源负载测试工具,主打用 JavaScript 编写测试脚本。它原生支持 HTTP、gRPC、WebSocket、GraphQL 等协议,可在本地、Docker 与 Kubernetes 中发起高并发压测。用户既可在命令行单机跑压测,也可借助 Grafana Cloud k6 调度跨 21 个全球区域的分布式流量。其脚本与阈值配置与 CI/CD 流水线高度衔接,能在构建阶段自动判定是否通过。k6 被 Amazon、Microsoft、GitLab 等团队用于发布前的回归与可靠性验证,是个人开发者与 SRE 都能上手的工具。
网站&在线应用
简介
k6 是面向开发者与 SRE 的开源负载测试工具,强调用熟悉的 JavaScript 编写测试脚本,覆盖 HTTP、gRPC、WebSocket、GraphQL 等主流协议。除了常见的压测场景,k6 还把浏览器端到端测试、合成监控、混淆注入与基础设施基准整合到同一框架内。
优缺点
- ✅ JavaScript 脚本:用 JavaScript 编写测试脚本,门槛低,与前端和 Node 生态一致。
- ✅ 本地与云端同构:同一份脚本可在 CLI、Docker、Kubernetes 与 Grafana Cloud k6 之间无缝迁移。
- ✅ 多协议覆盖:HTTP/REST、gRPC、GraphQL、WebSocket、Cookies 与阈值配置均开箱即用。
- ✅ CI/CD 联动:可通过阈值在构建流水线中自动判定通过或失败,与 Prometheus、Grafana、Datadog 等可观测链路联动。
- ❌ 浏览器录制缺失:没有原生的浏览器操作录制器,复杂端到端场景需借助 xk6-browser 或外部工具补齐。
使用方法
- 访问 k6 官方页面,下载对应平台的命令行二进制文件,或通过 Docker 镜像拉起。
- 用 JavaScript 编写一个 .js 测试脚本,引入 k6/http 与 check、sleep 等内置模块,定义 default 函数。
- 本地执行
k6 run script.js即可发起压测,实时查看 RPS、p95 延迟与错误率。 - 如需分布式或团队协作,将脚本上传到 Grafana Cloud k6 调度跨区域运行,或在 Kubernetes 中通过 ConfigMap 部署 k6 operator。
- 在 CI 流水线中调用 k6 命令,依据阈值配置决定构建是否通过。
收费价格
k6 命令行工具以开源形式完全免费,可无限制在本地、Docker 与 K8s 中运行。云端的 Grafana Cloud k6 属于 Grafana 商业产品,按虚拟用户小时、数据保留时长与团队席位计费,具体价格需在 Grafana 定价页面查询。
支持的平台
k6 命令行版提供 macOS、Windows、Linux 与 Docker 镜像,可在本地机器、CI 节点或 Kubernetes 集群中执行;云端的 Grafana Cloud k6 是网页服务,无需安装即可在浏览器中创建测试并调度跨区域运行。官方推荐 Linux 与 Docker 作为生产环境的执行载体。
截图
相关链接
功能标签
特色
JavaScript 脚本
k6 以 JavaScript 为脚本语言,不需编译即可运行,与前端、Node 及入门级脚本生态无隔衔接。
跨环境同构
同一份 .js 脚本可在命令行本地、Docker 容器、Kubernetes 与 Grafana Cloud k6 之间无缝迁移,避免多份脚本混用。
多协议覆盖
原生支持 HTTP/REST、gRPC、GraphQL、WebSocket、Cookies 与 Threshold 阈值配置,可以覆盖 API、后端与前端环以多种载体场景。
分布式跨区域
通过 Grafana Cloud k6 可调度 21 个全球负载区域,在压测中同时模拟多国用户访问,验证跨境体验一致性。
丰富扩展生态
官方提供 xk6-browser 以及 xk6-output-timescaledb 等扩展,可与 Kubernetes、Prometheus、Kafka、OpenTelemetry 等可观测与消息系统接入。
CI/CD 联动
可在构建阶段调用 k6 命令,依据阈值自动判定构建是否通过,与 GitHub Actions、Jenkins 、GitLab CI 等流水线打通。
替代方案
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END













