
kubeshop/testkube-tracetest-executor!Testkube Logo
TestKube Tracetest 执行器是一款测试执行器,用于通过 TestKube 运行 Tracetest 测试。
Tracetest 是一款基于 OpenTelemetry 的测试工具,允许您测试分布式应用。它利用 OpenTelemetry 工具生成的跟踪数据,检查并断言应用是否符合测试定义中指定的预期行为。
TestKube 是面向测试人员和开发人员的 Kubernetes 原生测试框架,允许您在 Kubernetes 集群内自动化执行现有测试工具,消除 CI/CD/GitOps 流水线中的复杂性。
通过使用 TestKube Tracetest 执行器,您可以结合 TestKube 与 Tracetest 的能力,充分利用已完成的服务 instrumentation 工作。
本文将展示如何在 Kubernetes 集群中结合使用 Testkube 和 Tracetest 运行测试。
您的 Kubernetes 集群中应已安装:
您的 machine 上应安装:
完成上述设置后,我们开始配置 Testkube 和 Tracetest。
Testkube 基于 执行器 概念工作。执行器是测试框架(此处为 Tracetest)的 Docker 容器包装器,作为 Kubernetes Job 运行。首先,您需要使用 Testkube CLI 在集群中注册并部署 Tracetest 执行器:
bashkubectl testkube create executor --image kubeshop/testkube-executor-tracetest:latest --types "tracetest/test" --name tracetest-executor
现在您需要一个 Tracetest 测试。有关编写测试的详细信息,请参阅 Tracetest 文档。以下是一个简单的测试定义示例:
yamltype: Test spec: id: R5NITR14g name: Pokeshop - List description: Get a Pokemon trigger: type: http httpRequest: url: [***] method: GET headers: - key: Content-Type value: application/json specs: - selector: span[tracetest.span.type="http"] assertions: - attr:http.method = "GET" - selector: span[tracetest.span.type="database"] assertions: - attr:db.name = "pokeshop"
执行以下命令在 Testkube 中创建测试执行器对象。不要忘记使用 --file 参数提供 Tracetest 定义文件的路径,并使用 TRACETEST_ENDPOINT --variable 指定 Tracetest 服务器端点:
bashkubectl testkube create test --file my/file/location.yaml --type "tracetest/test" --name pokeshop-tracetest-test --variable TRACETEST_ENDPOINT=[***]
最后,要查看集成效果,只需运行以下命令执行测试:
bashkubectl testkube run test --watch pokeshop-tracetest-test
以下是 Testkube 和 Tracetest 与系统不同组件交互的高级序列图:
mermaidsequenceDiagram participant testkubeClient as Testkube 客户端 participant testkube as Testkube participant executorCRDs as 执行器 CRD participant tracetestExecutorJob as Tracetest 执行器 Job participant tracetestServer as Tracetest 服务器 participant instrumentedService as Instrumentation 服务 participant dataStore as 数据存储 testkubeClient->>+testkube: 触发 Testkube 测试运行 testkube->>+executorCRDs: 获取执行器详情 executorCRDs-->>-testkube: 发送详情 testkube->>+tracetestExecutorJob: 调度执行 tracetestExecutorJob->>+tracetestExecutorJob: 配置 Tracetest CLI tracetestExecutorJob->>+tracetestServer: 执行 Tracetest 测试运行 tracetestServer->>+instrumentedService: 触发请求 instrumentedService-->>-tracetestServer: 获取响应 instrumentedService->>+dataStore: 发送遥测数据 tracetestServer->>+dataStore: 获取跟踪 dataStore-->>-tracetestServer: 返回跟踪 tracetestServer->>+tracetestServer: 运行断言 tracetestServer-->>-tracetestExecutorJob: 返回测试运行结果 tracetestExecutorJob-->>-testkube: 返回测试运行结果 testkube-->>-testkubeClient: 发送详情
请通过 TestKube 主仓库 报告任何 问题 或参与 讨论。
更多信息请访问 Testkube 主仓库
!Release 



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务