
k6 负载测试入门三步装好工具跑通你的第一次压测【免费下载链接】k6A modern load testing tool, using Go and JavaScript项目地址: https://gitcode.com/GitHub_Trending/k6/k6刚上线的接口到底能扛多少并发靠手工刷新页面测试显然不靠谱。k6 是现代负载测试工具用 JavaScript 脚本定义虚拟用户行为Grafana Labs 团队维护被大量团队直接放进 CI 里做性能回归。你不需要部署任何服务端组件装好二进制就能发起真实流量跑完自动判定是否达标。30 秒认识 k6维度一句话定位现代负载测试工具性能测试界的单元测试实现Go 编写内嵌 JavaScript 引擎脚本即场景典型场景HTTP、WebSocket、gRPC 接口压测本地或 CI 直跑上手三步走第 1 步安装。最省事的方式是下载匹配你操作系统与架构的预编译二进制解压即可用。想从源码构建git clone https://gitcode.com/GitHub_Trending/k6/k6然后go build。预期信号which k6能找到可执行文件。第 2 步验证。执行k6 version。预期看到版本号与构建信息例如k6 v0.x.x没有报错即安装成功 ✅第 3 步第一次跑通。把下文「最小完整示例」的脚本存为script.js执行k6 run script.js。运行期间终端实时滚动 VU 数、迭代次数与延迟指标结束后自动输出汇总表和阈值判定结果。核心配置速读k6 脚本里export const options控制整个测试三个字段最值得先掌握stages油门踏板。控制虚拟用户数怎么升、保持多久、怎么降。常见取值{ duration: 30s, target: 20 }表示 30 秒内升到 20 个并发。thresholds考试及格线。给指标定验收标准例如p(99)500——p(99) 即 99% 请求延迟的上界超过 500ms 整轮测试直接判不通过。vus固定并发数。不区分升降阶段时的简写vus: 5, iterations: 100表示 5 个用户各迭代 100 次。写错字段名 k6 会静默回退默认值不报错 ⚠️最小完整示例把下面脚本里的目标 URL 换成你自己的接口保存为script.jsk6 run script.js即可运行import http from k6/http; import { check, sleep } from k6; export const options { stages: [ // 30 秒升到 20 并发保持 1 分钟15 秒降为 0 { duration: 30s, target: 20 }, { duration: 1m, target: 20 }, { duration: 15s, target: 0 }, ], thresholds: { http_req_duration: [p(99)500] }, // 99% 请求延迟须低于 500ms }; export default function () { // 一个虚拟用户的一轮行为 const r http.get(https://test-api.k6.io/); check(r, { status 200: (x) x.status 200 }); // 校验响应 sleep(1); // 模拟用户操作间隔 }踩坑答疑Q压内网服务时延迟虚高是接口慢吗A先排除本机代理和 DNS 策略对链路的干扰。其次别看平均值至少同时盯 p(95) 和 p(99)平均值会掩盖长尾 ⚠️Qoptions 里字段明明写错了k6 怎么一点反应都没有A字段拼错时 k6 不报错直接回退默认值。行为怪异就先跑k6 inspect script.js核对解析出的配置和阈值是否符合预期。Q结果只留在终端怎么存档或接入监控Ak6 run --out jsonresult.json script.js把指标导出到文件每行一条 JSON 记录方便后处理。下一步改地址练手examples/ 里有 HTTP、WebSocket、gRPC、浏览器等现成场景脚本设计背景docs/ 下的架构与分布式执行设计笔记读源码负载调度逻辑入口在 lib/executor/【免费下载链接】k6A modern load testing tool, using Go and JavaScript项目地址: https://gitcode.com/GitHub_Trending/k6/k6创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考