当前位置: 首页 > 图灵资讯 > 技术篇> 使用 Testkube 简化分布式 Java 应用程序的 BDD 测试

使用 Testkube 简化分布式 Java 应用程序的 BDD 测试

来源:图灵教育
时间:2024-09-04 19:36:11

随着分布式应用程序趋势的持续,测试 java 应用程序变得越来越复杂。分布式系统涉及大量的微服务,因此确保所有组件的一致性、管理故障和验证数据的完整性至关重要。全面的端到端测试对确保应用程序按预期运行至关重要。

行为驱动发展 (bdd) 这些挑战是通过用自然语言定义应用程序行为,简化分布式应用程序测试用例的解释和理解来解决的。

然而,将 bdd 集成到测试分布式 java 应用程序也带来了一系列挑战。维护多项服务 bdd 场景、测试环境的安排、管理服务和测试数据可能是一项艰巨的任务。

在本博文中,我们将讨论 testkube 如何使用 cucumber 简化分布式 java 应用程序的 bdd 测试使过程更高效、更容易管理。

cucumber - java 的 bdd 测试工具

cucumber 它被广泛使用 bdd 其中一种测试工具。它使用 gherkin,允许团队使用自然语言来定义应用程序功能。它支持包括在内的不同编程语言 java。它还与流行的开发框架融为一体,使其成为流行的选择。最后,它将生成详细的报告,让您对测试有更深入的了解。

立即学习“Java免费学习笔记(深入);

虽然 cucumber 是实现 bdd 优秀的工具,但在测试分布式应用程序时,特别是在 kubernetes 它在环境中面临挑战。

  • 处理测试数据可能是可怕的,尤其是像 kubernetes 在这种分布式环境中。 cucumber 需要在步骤之间共享状态和测试数据,因此确保隔离既复杂又重要。

  • 计算、内存和存储等资源 kubernetes 中动态配置。 cucumber 这些资源需要访问,而且很难配置。

  • 聚合分布式 cucumber 测试结果具有挑战性,在仪表板下放置所有这些结果可能需要额外的设置。

虽然 kubernetes 它可以自动部署、扩展和应用程序管理,但它增加了一个需要配置的额外抽象层 cucumber 一起管理就像。 testkube 这种工具起作用的地方。

使用 cucumber 和 testkube 进行 bdd 测试

testkube 提供了专为 kubernetes 构建统一的测试框架,简化和简化整个测试过程。测试团队可以在 kubernetes 集群存储、执行和管理测试。它将测试定义为 kubernetes crd,管理所有测试并在必要时进行扩展,以提供现代解决方案。

使用 testkube,您可以创建测试工作流程,包括所有内容,从配置必要的基础设施组件到与其他测试工具无缝集成,并安排复杂的测试。请参考我们的测试工作流程,了解更多信息。

让我们看看如何使用它 cucumber 和 testkube 进行 bdd 测试。我们会用的 gradle 创建测试工作流程,并将创建测试工作流程 cucumber 其中集成了测试。

本存储库包含本示例所需的所有文件。

先决条件
  • 获取 testkube 帐户。

  • kubernetes 集群 - 我们正在使用本地 minikube 集群。

  • 集群配置 testkube agent。

在满足先决条件后,你应该准备好目标 kubernetes 并配置了集群 testkube 代理。

创建测试工作流程

导航到“测试工作流程”选项卡,然后单击“添加新的测试工作流程”。

这将为您提供三个选项:

  • 从头开始创建 - 使用导向创建测试工作流程

  • 从示例开始 - 使用现有的 k6、cypress 和 playwright 示例

  • 从 yaml 导入 - 导入您自己的测试工作流程

我们将选择“从头开始创建”的选项来创建这个工作流程。

  • 提供工作流程的名称并选择 gradle 类型。

  • 提供操作命令。在这种情况下,我们将提供 gradle 测试。

  • 提供gradle版本,我们使用8.5.0-jdk11。

使用 Testkube 简化分布式 Java 应用程序的 BDD 测试

在下一个屏幕上提供测试文件的来源。这可以是 git repo、字符串或文件。在这个例子中,我们将使用它 git 存储库。

使用 Testkube 简化分布式 Java 应用程序的 BDD 测试

它将在下一个屏幕上生成 yaml 标准文件并显示输出。

使用 Testkube 简化分布式 Java 应用程序的 BDD 测试

我们将在工件步骤中添加条件:始终更新 yaml,无论任何步骤是否失败,都要确保日志的始终收集。

kind: testworkflow

apiversion: testworkflows.testkube.io/v1

metadata:

  name: gradle-cucumber

  namespace: testkube

  labels:

    test-workflow-templates: "yes"

spec:

  use:

  - name: official--gradle--beta

    config:

      run: gradle test

      version: 8.5.0-jdk11

  content:

    git:

      uri:<a href="https://github.com/kubeshop/testkube-examples.git"> https://github.com/kubeshop/testkube-examples.git</a>

      revision: main

      paths:

      - cucumber test using gradle

  container:

    workingdir: /data/repo/cucumber test using gradle

  steps:

  - condition: always

    artifacts:

      paths:

      - ***/*

yaml 文件不言而喻,因为它列出了你在哪里 yaml 提供的详细信息。以下是详细信息。 cucumber 功能文件解释了我们正在测试的内容。

Feature: Hello World

  Scenario: Print Hello World

    Given I have a working hello world example

    When I run the hello world example

    Then I should see "Hello World" on the console

存储库包括其他文件,包括测试步骤和测试操作程序,包括执行 cucumber 相关代码的测试。

单击“创建”创建测试工作流程。

执行测试工作流程

准备好工作流程后,您将在屏幕上看到新的测试工作流程。单击并单击“立即运行”启动工作流程。

您将看到工作流程的执行和每一步的实时日志。

使用 Testkube 简化分布式 Java 应用程序的 BDD 测试

您将看到基于测试的测试结果。在这种情况下,我们将测试修改为失败,因此,您将看到失败。

使用 Testkube 简化分布式 Java 应用程序的 BDD 测试

由于我们已经配置了工件,您可以导航到工件选项卡并查看它们 cucumber 生成的报告。 testkube 这些报告将保存在每次执行中,以便更容易分析和测试。

使用 Testkube 简化分布式 Java 应用程序的 BDD 测试

使用 Testkube 简化分布式 Java 应用程序的 BDD 测试

这是使用 gradle 创建 cucumber 进行测试工作流程 kubernetes 简单演示测试。为了更多地利用测试工作流程,您可以创建自定义的工作流程并将其导入 testkube。

概括

本文总结了运行情况 bdd 测试分布式 java 应用程序的复杂性。我们研究了流行程度 bdd 测试工具 cucumber,以及在 kubernetes 操作它的复杂性。

我们还探索了测试工作流程,将整个测试工作流程放入文件中,您可以管理测试的各个方面。演示显示了如何使用它 cucumber 进行 java 应用程序的 bdd 测试。

访问 testkube 网站,了解更多关于其他可集成测试工具的信息。如果您遇到任何困难,请随时活跃在我们身上 slack 在社区发表评论。

以上就是使用 Testkube 简化分布式 Java 应用程序的 BDD 详细的测试内容,请多关注图灵教育的其他相关文章!