K6是使用Go和JavaScript的功能强大的负载测试工具

k6 是一款现代化的负载测试工具

Like unit testing, for performance

为 DevOps 时代的开发人员和测试人员提供现代负载测试。


k6

k6 是一款现代化的负载测试工具,基于我们在性能和测试行业多年的经验打造。
它功能强大、可扩展且功能齐全。其核心设计目标是提供最佳的开发者体验

其核心功能包括:

  • 可配置的负载生成。即使是低端设备也能模拟大量流量。
  • 代码即测试。可复用脚本、模块化逻辑、进行版本控制,并将测试与您的持续集成 (CI) 集成。
  • 功能齐全的 API。脚本 API 包含丰富的功能,可帮助您模拟真实的应用程序流量。
  • 嵌入式 JavaScript 引擎。兼具 Go 的性能和 JavaScript 的脚本编写熟悉度。
  • 多协议支持。HTTP、WebSocket、gRPC、浏览器等等。
  • 庞大的扩展生态系统。您可以扩展 k6 以满足您的需求。许多人已经与社区分享了他们的扩展!
  • 灵活的指标存储和可视化。汇总统计数据或细粒度指标,可导出到您选择的服务。
  • 与 Grafana 云原生集成SaaS 解决方案 用于测试执行、指标关联、数据分析等。

Example script

js 复制代码
import http from "k6/http";
import { check, sleep } from "k6";

// Test configuration
export const options = {
  thresholds: {
    // Assert that 99% of requests finish within 3000ms.
    http_req_duration: ["p(99) < 3000"],
  },
  // Ramp the number of virtual users up and down
  stages: [
    { duration: "30s", target: 15 },
    { duration: "1m", target: 15 },
    { duration: "20s", target: 0 },
  ],
};

// Simulated user behavior
export default function () {
  let res = http.get("https://quickpizza.grafana.com");
  // Validate response status
  check(res, { "status was 200": (r) => r.status == 200 });
  sleep(1);
}

您可以在 CLI、CI 或 Kubernetes 集群中运行类似的脚本。

不想写代码?

我们帮您搞定!认识 k6 Studio,这是一款桌面应用程序,可帮助您生成 k6 脚本,无需接触代码!

文档

本文档涵盖了使用 k6 的方方面面。部分亮点包括:

  • 入门。安装、运行测试、检查结果。
  • HTTP 请求。让您的虚拟用户使用 HTTP 方法。
    或者,查看其他 协议
  • 阈值。为您的测试设定目标,并制定您的 SLO。
  • 选项。配置您的负载、持续时间、TLS 证书等等。
  • 场景
    选择如何为您的工作负载建模:开放模型、封闭模型、恒定 RPS、固定迭代次数等等。
  • 结果输出。研究、筛选和导出您的测试结果。
  • JavaScript API。所有 k6 模块的参考和示例。
  • 扩展。扩展 k6 以支持新的协议和用例。

这些链接只是冰山一角!如果您正在寻找概念性信息,可以阅读测试类型测试策略,或阅读众多信息丰富的博客文章

路线图

我们的团队致力于持续改进并提供最佳的用户体验。公开路线图 涵盖了我们团队将重点关注的用户导向功能、用户体验改进和 JavaScript 支持。请记住,时间表和优先级可能会发生变化,但我们认为分享我们的愿景至关重要。

我们希望它能够清晰地概述我们未来的开发计划。我们欢迎您通过 GitHub 提供反馈、更正和建议,以使其更加全面、易于理解,并对社区更有价值。

值得一提的是,我们认为 点赞 (thumbs-up) 是衡量社区需求的重要指标之一。如果您想向我们展示某个功能的重要性,请点赞。

贡献

如果您想为 k6 的开发做出贡献或提供帮助,请先阅读 CONTRIBUTING.md。在开始编写代码之前,最好先与 k6 维护人员讨论您的计划和实现细节,尤其是在涉及重大变更和功能时。您可以在 GitHub issue 中针对您正在解决的问题进行讨论(如果不存在,请创建一个)。

注意: 要披露安全问题,请参阅 SECURITY.md

支持

要获取帮助、报告错误、建议功能以及与他人讨论 k6,请参阅 SUPPORT.md

许可证

k6 采用 AGPL-3.0 许可证 分发。

关于项目

k6 是一款现代化的负载测试工具,它功能强大、可扩展且功能齐全。其核心设计目标是提供最佳的开发者体验。k6 拥有一个用 Go 编写的脚本引擎,并支持使用 JavaScript 或 TypeScript 编写的测试,提供了一种开发人员友好的方式,用于在本地和云环境中创建、运行和自动化测试。
AGPL-3.0
Golang
29,301
1458
335
2016-03-21
2025-11-27

增长趋势 - stars