
k6 性能测试工具快速上手用 JavaScript 脚本完成一次负载测试【免费下载链接】k6A modern load testing tool, using Go and JavaScript项目地址: https://gitcode.com/GitHub_Trending/k6/k6k6 是一个用 Go 编写的现代负载测试工具测试场景直接写在 JavaScript 脚本里。一条命令即可启动多用户并发压测并自动收集响应时间、吞吐量等指标适合需要快速验证 API 性能的前后端开发和运维工程师。环境准备直接安装 k6 官方二进制即可开始压测。如果需要阅读源码或二次开发再克隆仓库git clone https://gitcode.com/GitHub_Trending/k6/k6 cd k6 make build # 等价于 go build生成 k6 可执行文件入口是根目录的main.go它把启动流程交给 cmd/ 包中的 CLI 实现了解整体结构时从这里入手即可。第一次运行最小完整脚本新建test.js内容如下import http from k6/http; import { check, sleep } from k6; export const options { vus: 10, // 并发虚拟用户数 duration: 30s, // 测试持续时间 thresholds: { http_req_duration: [p(99)1000], }, }; export default function () { const res http.get(https://test-api.k6.io/); check(res, { 状态码是 200: (r) r.status 200 }); sleep(1); }然后运行k6 run test.js看到终端实时打印 VU 数、rps、响应时间且结束后输出完整的统计表格、没有 Check 失败项就说明这次压测跑通了。default函数就是每个虚拟用户循环执行的动作check用来断言响应是否符合预期。关键配置怎么理解k6 没有全局配置文件所有行为都由脚本里的options对象决定核心是三块用户规模简单场景用vus固定并发加duration需要模拟爬坡就用stages例如 10 秒内从 1 个 VU 升到 5 个平稳 5 秒后再降到 0stages: [ { duration: 10s, target: 5 }, { duration: 5s, target: 5 }, { duration: 5s, target: 0 }, ]阈值 thresholds定义什么叫通过。上例要求 p99 响应时间小于 1000ms还可以写[avg500, p(95)800]这种多条件组合。断言 check逐次请求做功能校验失败会在统计中计入 rates。完整写法可以参考仓库里的 examples/ 目录里面有 HTTP、WebSocket、gRPC、浏览器等多种场景脚本。看懂运行结果判断是否达标结束后重点看两处一是统计表格中的http_req_duration分位数avg、p(90)、p(95)是否满足你设的阈值二是阈值检查的通过/失败结论。阈值不达标时 k6 会以非零退出码结束方便直接接入 CI 做性能门禁。如果需要多机分布式压测k6 由一个 Coordinator 调度多个 Agent 节点架构见下图下一步想改负载模型爬坡、恒定到达率等看 lib/executor/ 中各类执行器的实现想接监控把指标输出到 InfluxDB、Prometheus、OpenTelemetry 等见 output/ 与各 examples/docker-compose/ 示例设计文档在 docs/ 目录可按需查阅。【免费下载链接】k6A modern load testing tool, using Go and JavaScript项目地址: https://gitcode.com/GitHub_Trending/k6/k6创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考