菜单
开源 RSS

扩展

扩展 k6 的潜在用例。

快速入门

自定义 k6 构建

使用 k6 扩展,您可以创建自定义 k6 二进制文件,以支持您特定的可靠性测试需求。

目前,k6 支持两种方式扩展其原生功能

  • JavaScript 扩展 扩展您的测试脚本可用的 JavaScript API。添加对新网络协议的支持,提高与等效 JS 库相比的性能,或添加新功能。

  • 输出扩展 将指标发送到自定义文件格式或服务。添加自定义处理和分派。

  • Secret Source 扩展 为您的测试提供 Secret。

xk6 创建自定义二进制文件

xk6 是一个用 Go 编写的命令行工具和框架。使用 xk6,您可以构建捆绑一个或多个用 Go 编写的扩展的自定义 k6 二进制文件。您有两种创建 k6 二进制文件的选项:使用 Go 和 xk6Docker

go-and-xk6
xk6 build \
  --with github.com/grafana/xk6-sql@v0.0.1 \
  --with github.com/grafana/xk6-output-prometheus-remote
docker-in-linux
docker run --rm -u "$(id -u):$(id -g)" -v "${PWD}:/xk6" grafana/xk6 build \
  --with github.com/grafana/xk6-sql@v0.0.1 \
  --with github.com/grafana/xk6-output-prometheus-remote

扩展用例

扩展生态系统为扩展 k6 测试的功能提供了无限可能性。您可能希望扩展 k6 的一些原因包括:

  • 添加对新网络协议的支持

    例如,xk6-amqp 允许使用高级消息队列协议 (AMQP) 访问资源。使用 xk6-amqp,您的脚本可以为包含 RabbitMQ 或 ActiveMQ 等系统的测试创建消息队列和种子消息(以及其他系统)。

  • 集成客户端库以满足测试依赖

    如今,每个人都想在 Kubernetes 中运行他们的服务。使用 xk6-kubernetes,您的 JavaScript 测试可以直接与 Kubernetes 资源交互,使用通常仅限于 kubectl 的功能。为每次测试运行准备隔离的命名空间,或将环境变量注入为 ConfigMaps。

  • 格式化指标并将其发送到您选择的输出目标

    假设您的公司已将其可观测性指标整合到 Prometheus 中。使用 xk6-output-prometheus-remote 也可以将您的 k6 测试指标发布到 Prometheus!

  • 提高脚本性能和效率

    也许您的公司使用 OpenTelemetry 来追踪服务请求通过微服务层的过程。使用 xk6-distributed-tracing,您可以更新 http 客户端,将您的测试请求作为追踪的起点——无需添加 JavaScript 代码来提供所需的追踪头。

接下来,探索可用的扩展,了解如何立即扩展您的 k6 用途。