Alors que la tendance vers les applications distribuées se poursuit, tester les applications Java est devenu de plus en plus complexe. Les systèmes distribués impliquent de nombreux microservices, ce qui rend essentiel la garantie de la cohérence, la gestion des pannes et la vérification de l'intégrité des données sur tous les composants. Des tests complets de bout en bout sont essentiels pour garantir que l'application se comporte comme prévu.
Le développement piloté par le comportement (BDD) relève ces défis en définissant le comportement des applications en langage naturel, simplifiant ainsi l'explication et la compréhension des cas de test pour les applications distribuées.
Cependant, l'intégration de BDD dans le test d'applications Java distribuées présente son propre ensemble de défis. La maintenance de scénarios BDD pour plusieurs services, l'orchestration des environnements de test et la gestion des services et des données de test peuvent être des tâches ardues.
Dans cet article de blog, nous explorerons comment Testkube peut rationaliser les tests BDD à l'aide de Cucumber pour les applications Java distribuées, rendant le processus plus efficace et plus gérable.
Le concombre est l'un des outils de test BDD les plus utilisés. Il utilise Gherkin, qui permet aux équipes de définir les fonctionnalités de l'application en langage naturel. Il inclut la prise en charge de différents langages de programmation, dont Java. Il s'intègre également bien aux frameworks de développement populaires, ce qui en fait un choix populaire. Enfin, il génère des rapports détaillés, vous donnant un aperçu des tests.
Bien que Cucumber soit un excellent outil pour implémenter BDD, il présente des défis lors du test d'applications distribuées, en particulier dans un environnement Kubernetes.
La gestion des données de test peut être intimidante, en particulier dans un environnement distribué comme Kubernetes. Le concombre nécessite le partage des données d'état et de test entre les étapes, garantissant ainsi que l'isolement est complexe mais critique.
Les ressources telles que le calcul, la mémoire et le stockage sont provisionnées de manière dynamique dans Kubernetes. Cucumber a besoin d'accéder à ces ressources, et sa configuration est difficile.
L'agrégation des résultats des tests distribués sur Cucumber est un défi et peut nécessiter une configuration supplémentaire pour les regrouper tous sous un seul tableau de bord.
Bien que Kubernetes automatise les déploiements, la mise à l'échelle et la gestion des applications, il ajoute une couche d'abstraction supplémentaire qui doit être gérée en même temps que la configuration de Cucumber pour qu'il fonctionne avec. C'est là qu'un outil comme Testkube entre en scène.
Testkube fournit un cadre de test unifié conçu pour Kubernetes afin de simplifier et de rationaliser l'ensemble du processus de test. L'équipe de test peut stocker, exécuter et gérer des tests sur des clusters Kubernetes. Il définit les tests comme des CRD Kubernetes pour fournir une solution moderne pour gérer tous vos tests et les mettre à l'échelle en cas de besoin.
Avec Testkube, vous pouvez créer des flux de travail de test qui incluent tout, depuis le provisionnement des composants d'infrastructure nécessaires jusqu'à l'intégration transparente avec d'autres outils de test et l'orchestration de tests complexes. Reportez-vous à nos workflows de test pour en savoir plus.
Examinons comment utiliser Cucumber avec Testkube pour les tests BDD. Nous allons créer un workflow de test à l'aide de Gradle et y intégrer des tests Cucumber.
Ce dépôt contient tous les fichiers requis pour cet exemple.
Obtenez un compte Testkube.
Cluster Kubernetes - nous utilisons un cluster Minikube local.
Agent Testkube configuré sur le cluster.
Une fois les conditions préalables remplies, vous devriez disposer d'un cluster Kubernetes cible prêt avec un agent Testkube configuré.
Accédez à l'onglet Workflows de test et cliquez sur « Ajouter un nouveau workflow de test ».
Cela vous offrira trois options :
Créer à partir de zéro - utilisez l'assistant pour créer un flux de travail de test.
Partez d'un exemple - utilisez des exemples de k6, de cyprès et de dramaturge existants.
Importer depuis yaml - importez votre propre flux de travail de test.
Nous choisirons l’option « créer à partir de zéro » pour créer ce workflow.
Fournissez un nom pour le flux de travail et choisissez le type Gradle.
Fournissez la commande d'exécution. Dans ce cas, nous fournirons un test de fin d'études.
Fournissez une version Gradle, nous utiliserons 8.5.0-jdk11.
Sur l'écran suivant, fournissez la source du fichier de test. Il peut s'agir d'un dépôt Git, d'une chaîne ou d'un fichier. Dans ce cas, nous utiliserons un dépôt Git.
Sur l'écran suivant, il générera le fichier de spécifications yaml et affichera le résultat.
Nous mettrons à jour le yaml en ajoutant la condition : toujours dans les étapes des artefacts pour garantir que les journaux sont toujours collectés, qu'une étape ait échoué ou non.
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: - '**/*'
Le fichier YAML est explicite car il répertorie les détails que vous avez fournis dans le YAML. Vous trouverez ci-dessous le fichier de fonctionnalités Cucumber qui explique ce que nous testons.
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
Le référentiel contient d'autres fichiers, notamment des étapes de test et un exécuteur de test, qui contiennent le code associé pour exécuter le test Cucumber.
Cliquez sur « Créer » pour créer le workflow de test.
Une fois le workflow prêt, vous verrez le workflow de test nouvellement créé à l'écran. Cliquez dessus et cliquez sur « Exécuter maintenant » pour démarrer le flux de travail.
Vous verrez le flux de travail s'exécuter ainsi que les journaux en temps réel de chaque étape.
Vous verrez le résultat du test basé sur l’exécution du test. Dans ce cas, nous avons modifié le test pour qu'il échoue, et par conséquent, vous verrez l'échec.
Puisque nous avons configuré les artefacts pour cela, vous pouvez accéder à l'onglet artefacts et consulter les rapports générés par Cucumber. Testkube enregistre ces rapports pour chaque exécution, ce qui facilite l'analyse des tests.
Il s'agissait d'une démonstration simple de création d'un flux de travail de test Cucumber à l'aide de Gradle pour les tests Kubernetes. Pour profiter davantage des workflows de test, vous pouvez créer des workflows personnalisés et les importer dans Testkube.
Cet article résume les subtilités de l'exécution de tests BDD pour tester des applications Java distribuées. Nous avons examiné Cucumber, un outil de test BDD populaire, et les complexités de son exécution sur Kubernetes.
Nous avons également exploré les flux de travail de test, qui regroupent l'ensemble du flux de travail de test dans un seul fichier dans lequel vous pouvez gérer tous les aspects de vos tests. La démo a montré comment utiliser Cucumber pour les tests BDD des applications Java.
Visitez le site Web Testkube pour en savoir plus sur les autres outils de test avec lesquels vous pouvez intégrer. Si vous rencontrez des difficultés, n'hésitez pas à publier une note dans notre communauté Slack active.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!