SnapLogic Test Automation with Robot Framework : Une solution de test complète

Photo de Sriswapna Pothana
8 min read
Résumez cela avec l'IA

Dans le paysage actuel de l'intégration, qui évolue rapidement, il est crucial de garantir la fiabilité et les performances de vos pipelines SnapLogic. Nous sommes ravis de présenter un cadre d'automatisation des tests complet qui combine la puissance de Robot Framework avec les API de SnapLogic pour offrir une solution de test robuste, évolutive et facile à utiliser.

Cette approche s'appuie sur la bibliothèque snaplogic-common-robot [bibliothèque publiée par PyPI] pour fournir des mots-clés Robot Framework préconstruits pour interagir avec les API publiques SnapLogic, intégrées dans un environnement basé sur Docker.

Cela permet aux équipes de faire tourner des environnements SnapLogic complets à la demande - y compris Groundplex, les bases de données et les services de messagerie - afin que les tests s'exécutent de la même manière partout.

Cet article de blog explore deux éléments clés de notre écosystème de test :

  • snaplogic-common-robot: Une bibliothèque publiée par PyPI https://pypi.org/project/snaplogic-common-robot/ fournissant des mots-clés réutilisables du Robot Framework pour l'automatisation de SnapLogic.
  • snaplogic-robotframework-examples: Un référentiel public fournissant un cadre de test complet avec des suites de tests de référence et une infrastructure basée sur Docker pour une validation complète du pipeline de bout en bout.

Principales caractéristiques et avantages

1. Tests basés sur des modèles

Le cadre prend en charge les cas de test basés sur des modèles, ce qui vous permet de.. :

  • Définir des modèles de test réutilisables
  • Paramétrer l'exécution des tests
  • Maintenir la cohérence entre des scénarios de test similaires

2. Gestion intelligente de l'environnement

Le cadre se met en place automatiquement :

  • Charge les variables d'environnement à partir de plusieurs fichiers .env
  • Détecte automatiquement les valeurs JSON et les convertit en variables appropriées du Robot Framework.
  • Valide les variables d'environnement requises avant l'exécution du test

Pourquoi Robot Framework pour les tests SnapLogic ?

Robot Framework offre plusieurs avantages pour l'automatisation des tests SnapLogic :

  • Syntaxe lisible par l'homme: Les tests sont rédigés en anglais simple, ce qui les rend accessibles aux membres de l'équipe technique et non technique.
  • Approche axée sur les mots-clés: Favorise la réutilisation et réduit la duplication du code
  • Un écosystème étendu: Intégration transparente avec les bases de données, les API et divers outils de test.
  • Rapports complets: Rapports HTML intégrés avec journaux d'exécution détaillés
  • Compatible CI/CD: intégration facile avec Jenkins, GitLab CI et d'autres plates-formes d'automatisation

La puissance de l'infrastructure de test basée sur Docker

L'une des caractéristiques les plus puissantes de notre cadre est son architecture basée sur Docker.

  1. Environnements de test isolés: Chaque test fonctionne dans son propre environnement conteneurisé.
  2. Contrôle Groundplex: Démarrage et arrêt automatiques des instances Groundplex pour les tests.
  3. Services de base de données: Conteneurs préconfigurés pour Oracle, PostgreSQL, MySQL, SQL Server, DB2, etc.
  4. Systèmes de file d'attente de messages: Prise en charge intégrée de Kafka, ActiveMQ et d'autres plateformes de messagerie
  5. Services de stockage: MinIO pour les tests de stockage d'objets compatibles avec S3

Cette architecture offre les possibilités suivantes :

  • Tester dans des environnements similaires à ceux de la production sans affecter les systèmes de production réels
  • Fournir et démanteler rapidement des piles de tests complètes
  • Exécuter des tests en parallèle avec des ressources isolées
  • Assurer la cohérence entre les différents environnements de test

Bibliothèque snaplogic-common-robot

Installation

La bibliothèque snaplogic-common-robot est publiée sur PyPI, ce qui facilite son installation https://pypi.org/project/snaplogic-common-robot/

pip install snaplogic-common-robot

Composants essentiels

La bibliothèque fournit les éléments suivants

  1. API SnapLogic: Mots clés de bas niveau pour les interactions directes avec les API
  2. Mots-clés SnapLogic: Mots clés de haut niveau orientés métier pour les opérations courantes
  3. Utilitaires courants: Connexions aux bases de données, opérations sur les fichiers et fonctions utilitaires.
  4. Bibliothèques de dépendances: Installez toutes les bibliothèques de dépendances nécessaires à l'exécution des tests Robot Framework pour SnapLogic. Ces bibliothèques prennent en charge les tests d'API, les opérations de base de données, les tests de conteneurs Docker, la messagerie JMS et les outils d'intégration AWS.

Les bibliothèques suivantes sont automatiquement installées en tant que dépendances lorsque vous installez snaplogic-common-robot, fournissant un support API complet. Cet écosystème de bibliothèques continue de s'étendre au fur et à mesure que nous ajoutons la prise en charge de fonctionnalités et de capacités supplémentaires.

Dépôt Snaplogic RobotFramework-examples

Le dépôt snaplogic-robotframework-examples montre comment construire un cadre de test complet en utilisant la bibliothèque commune snaplogic. https://github.com/SnapLogic/snaplogic-robotframework-examples

Vue d'ensemble du cadre

Note: La structure de ce projet est en constante évolution ! Nous travaillons activement à rendre le framework plus facile et plus efficace à utiliser. La structure est sujette à des changements au fur et à mesure que nous améliorons l'expérience des développeurs et l'efficacité du framework.

Le cadre suit une architecture modulaire avec une séparation claire des préoccupations :

Couche de configuration

  • .env et .env.example gèrent les variables d'environnement pour les informations d'identification et les URL sensibles.
  • Le dossier env_files/ contient tous les détails nécessaires à la création de comptes.
  • Makefile fournit une interface de commande centrale pour toutes les opérations de construction et de test.
  • docker-compose.yml orchestre l'ensemble de l'environnement multi-conteneurs avec une seule commande

Automatisation de la construction

  • le répertoire makefiles/ contient des scripts modulaires organisés par type de service (bases de données, messagerie, mocks)
  • Chaque catégorie de service dispose de makefiles dédiés pour une gestion indépendante du cycle de vie.

Infrastructure

  • docker/ contient les configurations Docker pour tous les services (Groundplex, Oracle, PostgreSQL, Kafka)
  • env_files/ stocke les variables d'environnement spécifiques au service afin d'isoler la configuration
  • L'approche conteneurisée garantit des environnements de test reproductibles dans tous les systèmes.

Organisation du test

  • test/suite/ contient les suites de tests du Robot Framework organisées par fonctionnalité du pipeline
  • test/test_data/ fournit les fichiers d'entrée et les résultats attendus pour la validation
  • Les tests sont regroupés logiquement (Oracle, PostgreSQL+S3, Kafka) pour faciliter la maintenance.

Actifs liés aux pipelines

  • src/pipelines/ stocke les fichiers SnapLogic SLP testés.
  • src/tools/ inclut des utilitaires d'aide et requirements.txt avec les dépendances Python
  • La bibliothèque snaplogic-common-robot est installée via le fichier requirements.txt et fournit des mots-clés réutilisables.

Rapport d'essai

  • Robot Framework génère automatiquement des rapports de test complets après chaque exécution.
  • report.html fournit un résumé de haut niveau avec des statistiques de réussite ou d'échec et une chronologie d'exécution.
  • log.html offre des journaux d'exécution détaillés, étape par étape, avec des informations au niveau des mots-clés.
  • output.xml contient des résultats de tests structurés au format XML pour l'intégration CI/CD
  • Les rapports comprennent des captures d'écran, des messages d'erreur et une traçabilité détaillée pour le débogage.
  • Tous les rapports sont horodatés et peuvent être archivés à des fins d'analyse historique.

Composants de soutien

  • travis_scripts/ permet l'automatisation CI/CD pour les tests continus
  • README/ contient la documentation du projet et les guides d'installation

Principaux avantages de l'architecture

  • La conception modulaire permet une gestion indépendante des services
  • L'isolation de Docker garantit des environnements de test cohérents
  • L'automatisation des fichiers Makefile simplifie les opérations complexes
  • Une structure de répertoire claire améliore la facilité de maintenance
  • L'intégration CI/CD permet d'automatiser les workflows tests.

Intégration avec les pipelines CI/CD

L'un des aspects les plus puissants de notre solution de test Robot Framework est son intégration transparente avec les pipelines CI/CD. Cela permet de réaliser des tests en continu, en s'assurant que chaque modification de code est automatiquement validée par rapport à vos intégrations SnapLogic.

L'importance de l'intégration CI/CD

Dans les pratiques DevOps modernes, les tests manuels deviennent un goulot d'étranglement. En intégrant nos tests Robot Framework dans votre pipeline CI/CD, vous obtenez :

  • Exécution automatique des tests: Les tests s'exécutent automatiquement à chaque livraison, demande d'extraction ou intervalle programmé.
  • Détection précoce des bogues: Les problèmes sont détectés immédiatement, et non des jours ou des semaines plus tard dans la production.
  • Des tests cohérents: Les mêmes tests sont effectués à chaque fois, ce qui élimine l'erreur humaine et la variabilité.
  • Boucle de rétroaction rapide: Les développeurs savent en quelques minutes si leurs modifications ont perturbé les intégrations existantes.
  • Portes de qualité: Empêchent les déploiements si les tests échouent, garantissant que seul le code validé atteint la production.

Jenkins est l'un des outils CI/CD les plus populaires, et l'intégration de nos tests Robot Framework est simple. 

Comment cela fonctionne-t-il ?

  • Étape 1 : Préparation de l'environnement Installer la bibliothèque SnapLogic Common Robot et les dépendances requises.
  • Étape 2 : Démarrer les services Docker Lance les conteneurs Groundplex, Oracle DB, Kafka et MinIO.
  • Étape 3 : Exécution des tests du cadre de Robot Exécuter les suites de tests en parallèle sur 4 threads en utilisant pabot
  • Étape 4 : Publier les résultats des tests Générer des rapports HTML, des résultats XML et des artefacts de test et les télécharger sur S3.
  • Étape 5 : Envoi de notifications Distribue les résultats des tests via Slack.
  • Post : Nettoyage Nettoie les conteneurs, supprime les fichiers temporaires et archive les journaux.

Les notifications Slack comprennent les informations suivantes

Notre pipeline CI/CD envoie automatiquement des rapports détaillés sur l'exécution des tests à Slack, offrant ainsi une visibilité immédiate sur les résultats des tests à l'ensemble de l'équipe.

Les rapports HTML contiennent les informations suivantes

Robot Framework génère automatiquement des rapports HTML complets après chaque exécution de test, fournissant des informations détaillées sur les résultats des tests, les performances et les modèles d'exécution.

Des avantages concrets

Voici ce que cela signifie pour votre équipe :

Pour les développeurs

  • Pousser le code en toute confiance - Les tests s'exécutent automatiquement
  • Obtenez un retour d'information en quelques minutes - Pas d'attente pour les cycles d'assurance qualité
  • Corriger les problèmes immédiatement - Pendant que le code est encore frais dans votre esprit

Pour les équipes d'assurance qualité

  • Se concentrer sur les tests exploratoires - Laisser l'automatisation gérer la régression
  • Meilleure couverture des tests - Les tests sont exécutés pour chaque changement.
  • Des rapports clairs - Pour savoir exactement ce qui a été testé et ce qui ne l'a pas été

Améliorations futures

Nous améliorons continuellement le cadre avec des fonctionnalités prévues :

  • Prise en charge améliorée d'un plus grand nombre de points d'extrémité
  • Intégration avec des services de stockage cloud 
  • Capacités avancées de test de performance
  • Fonctionnalités améliorées des tests de sécurité

Conclusion

La combinaison de la bibliothèque snaplogic-common-robot et de la bibliothèque snaplogic-robotframework-examples fournit une solution puissante et évolutive pour l'automatisation des tests SnapLogic. En tirant parti des capacités de conteneurisation de Docker, de la simplicité de Robot Framework et des API robustes de SnapLogic, les équipes peuvent.. :

  • Réduire la durée des tests de plusieurs heures à quelques minutes
  • Augmenter la couverture des tests grâce à des scénarios automatisés de bout en bout
  • Améliorer la fiabilité grâce à des tests cohérents et reproductibles
  • Permettre des tests continus dans les pipelines CI/CD

Que vous testiez de simples transformations de pipeline ou des intégrations multi-systèmes complexes, ce cadre fournit les outils et les modèles nécessaires pour des tests complets de SnapLogic.

S'impliquer

Les contributions de la communauté SnapLogic sont les bienvenues ! Voici comment vous pouvez participer :

  1. Essayez le Framework: Installez snaplogic-common-robot et exécutez les tests d'exemple.
  2. Signaler des problèmes: Aidez-nous à nous améliorer en signalant des bogues ou en suggérant des améliorations.
  3. Contribuer au code: Soumettre des demandes de téléchargement avec de nouveaux mots-clés ou de nouveaux modèles de test
  4. Partagez votre expérience: Faites-nous savoir comment vous utilisez le cadre dans votre organisation.

Ressources

Commencez à automatiser vos tests SnapLogic dès aujourd'hui et découvrez la puissance de l'automatisation des tests complète et conteneurisée !

Vous avez des questions ? Nous sommes là pour vous aider !

Nous espérons que ce guide complet vous aidera à démarrer les tests automatisés pour vos intégrations SnapLogic. La combinaison de snaplogic-common-robot et de l'infrastructure basée sur Docker constitue une base puissante pour construire une automatisation des tests fiable et évolutive.

Vous avez des questions ou besoin d'aide pour mettre en œuvre ce cadre ?

L'équipe SLIM (SnapLogic Intelligent Modernization) est là pour vous aider ! Nous serions ravis de connaître vos cas d'utilisation, de vous aider à surmonter vos difficultés ou de discuter de la manière dont ce cadre peut être adapté à vos besoins spécifiques.

Contactez l'équipe SLIM :

  • Contactez-nous directement via les forums de la communauté SnapLogic.
  • Envoyez-nous un courriel à l'adresse suivante : [email protected] 

Nous nous engageons à vous aider à atteindre l'excellence en matière de tests et nous sommes impatients de voir comment vous utiliserez ce cadre pour améliorer votre parcours d'automatisation SnapLogic !

Joyeux test !
L'équipe SLIM

Photo de Sriswapna Pothana
Responsable de l'assurance qualité chez SnapLogic
Catégorie : Technique