随着分布式应用程序趋势的持续,测试 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。
在下一个屏幕上提供测试文件的来源。这可以是 git repo、字符串或文件。在这个例子中,我们将使用它 git 存储库。
它将在下一个屏幕上生成 yaml 标准文件并显示输出。
我们将在工件步骤中添加条件:始终更新 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 相关代码的测试。
单击“创建”创建测试工作流程。
执行测试工作流程准备好工作流程后,您将在屏幕上看到新的测试工作流程。单击并单击“立即运行”启动工作流程。
您将看到工作流程的执行和每一步的实时日志。
您将看到基于测试的测试结果。在这种情况下,我们将测试修改为失败,因此,您将看到失败。
由于我们已经配置了工件,您可以导航到工件选项卡并查看它们 cucumber 生成的报告。 testkube 这些报告将保存在每次执行中,以便更容易分析和测试。
这是使用 gradle 创建 cucumber 进行测试工作流程 kubernetes 简单演示测试。为了更多地利用测试工作流程,您可以创建自定义的工作流程并将其导入 testkube。
概括本文总结了运行情况 bdd 测试分布式 java 应用程序的复杂性。我们研究了流行程度 bdd 测试工具 cucumber,以及在 kubernetes 操作它的复杂性。
我们还探索了测试工作流程,将整个测试工作流程放入文件中,您可以管理测试的各个方面。演示显示了如何使用它 cucumber 进行 java 应用程序的 bdd 测试。
访问 testkube 网站,了解更多关于其他可集成测试工具的信息。如果您遇到任何困难,请随时活跃在我们身上 slack 在社区发表评论。
以上就是使用 Testkube 简化分布式 Java 应用程序的 BDD 详细的测试内容,请多关注图灵教育的其他相关文章!