扩展
扩展 k6 的潜在用例。
快速入门
自定义 k6 构建
使用 k6 扩展,您可以创建自定义 k6 二进制文件,以支持您特定的可靠性测试需求。
目前,k6 支持两种方式扩展其原生功能
JavaScript 扩展 扩展您的测试脚本可用的 JavaScript API。添加对新网络协议的支持,提高与等效 JS 库相比的性能,或添加新功能。
输出扩展 将指标发送到自定义文件格式或服务。添加自定义处理和分派。
Secret Source 扩展 为您的测试提供 Secret。
xk6 创建自定义二进制文件
xk6 是一个用 Go 编写的命令行工具和框架。使用 xk6,您可以构建捆绑一个或多个用 Go 编写的扩展的自定义 k6 二进制文件。您有两种创建 k6 二进制文件的选项:使用 Go 和 xk6 或 Docker
xk6 build \
--with github.com/grafana/xk6-sql@v0.0.1 \
--with github.com/grafana/xk6-output-prometheus-remote
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 用途。