SnapLogic Test Automation con Robot Framework: Una soluzione di test completa

Immagine frontale di Sriswapna Pothana
8 lettura minima
Riassumere questo con l'AI

Nell'odierno panorama dell'integrazione, caratterizzato da ritmi incalzanti, garantire l'affidabilità e le prestazioni delle pipeline SnapLogic è fondamentale. Siamo lieti di presentare un framework di automazione dei test completo che combina la potenza di Robot Framework con le API di SnapLogic per offrire una soluzione di test robusta, scalabile e facile da usare.

Questo approccio sfrutta snaplogic-common-robot [libreria pubblicata su PyPI] per fornire parole chiave precostituite del Robot Framework per interagire con le API pubbliche di SnapLogic, integrate in un ambiente basato su Docker....

Ciò consente ai team di creare ambienti SnapLogic completi su richiesta, compresi Groundplex, database e servizi di messaggistica, in modo che i test vengano eseguiti nello stesso modo ovunque.

Questo blog post esplora due componenti chiave del nostro ecosistema di test:

  • snaplogic-common-robot: Una libreria pubblicata su PyPI https://pypi.org/project/snaplogic-common-robot/ che fornisce parole chiave riutilizzabili del Robot Framework per l'automazione di SnapLogic.
  • snaplogic-robotframework-examples: Un repository pubblico che fornisce un framework di test completo con suite di test di base e un'infrastruttura basata su Docker per la validazione completa della pipeline end-to-end.

Caratteristiche e vantaggi principali

1. Test basati su modelli

Il framework supporta casi di test guidati da modelli, consentendo di:

  • Definire modelli di test riutilizzabili
  • Parametrizzare l'esecuzione dei test
  • Mantenere la coerenza tra scenari di test simili

2. Gestione intelligente dell'ambiente

Il quadro di riferimento è automatico:

  • Carica le variabili d'ambiente da più file .env
  • Rileva automaticamente i valori JSON e li converte in variabili appropriate del Robot Framework.
  • Convalida le variabili d'ambiente richieste prima dell'esecuzione del test.

Perché Robot Framework per i test SnapLogic?

Robot Framework offre diversi vantaggi per l'automazione dei test di SnapLogic:

  • Sintassi leggibile: I test sono scritti in inglese semplice, rendendoli accessibili sia ai membri tecnici che a quelli non tecnici del team.
  • Approccio basato sulle parole chiave: Promuove la riusabilità e riduce la duplicazione del codice
  • Ampio ecosistema: Si integra perfettamente con database, API e vari strumenti di test.
  • Reportistica completa: Rapporti HTML integrati con registri di esecuzione dettagliati
  • CI/CD friendly: facile integrazione con Jenkins, GitLab CI e altre piattaforme di automazione.

Il potere dell'infrastruttura di test basata su Docker

Una delle caratteristiche più potenti del nostro framework è la sua architettura basata su Docker.

  1. Ambienti di test isolati: Ogni esecuzione di test opera in un proprio ambiente containerizzato
  2. Controllo Groundplex: Avvio e spegnimento automatico delle istanze Groundplex per i test
  3. Servizi di database: Contenitori preconfigurati per Oracle, PostgreSQL, MySQL, SQL Server, DB2 e altro ancora.
  4. Sistemi di coda di messaggi: Supporto integrato per Kafka, ActiveMQ e altre piattaforme di messaggistica.
  5. Servizi di archiviazione: MinIO per il test di archiviazione degli oggetti compatibile con S3

Questa architettura consente le seguenti funzionalità:

  • Test in ambienti simili a quelli di produzione senza influenzare i sistemi di produzione reali
  • Predisporre e smontare rapidamente stack di test completi
  • Esecuzione di test paralleli con risorse isolate
  • Garantire la coerenza tra i diversi ambienti di test

snaplogic-common-robot Biblioteca

Installazione

La libreria snaplogic-common-robot è pubblicata su PyPI, rendendo l'installazione semplice https://pypi.org/project/snaplogic-common-robot/.

pip installare snaplogic-common-robot

Componenti principali

La libreria fornisce i seguenti componenti

  1. API SnapLogic: Parole chiave di basso livello per interazioni dirette con le API
  2. Parole chiave di SnapLogic: Parole chiave di alto livello orientate al business per operazioni comuni.
  3. Utilità comuni: Connessioni al database, operazioni sui file e funzioni di utilità.
  4. Librerie di dipendenza: Installare tutte le librerie di dipendenza necessarie per eseguire i test di Robot Framework per SnapLogic. Queste librerie supportano i test API, le operazioni di database, i test dei container Docker, la messaggistica JMS e gli strumenti di integrazione AWS.

Le seguenti librerie vengono installate automaticamente come dipendenze quando si installa snaplogic-common-robot, fornendo un supporto API completo. Questo ecosistema di librerie continua ad espandersi con l'aggiunta del supporto per ulteriori funzionalità e capacità.

Repository Snaplogic RobotFramework-examples

Il repository snaplogic-robotframework-examples mostra come costruire un framework di testing completo utilizzando la libreria comune snaplogic. https://github.com/SnapLogic/snaplogic-robotframework-examples

Panoramica della struttura

Nota: La struttura del progetto è in continua evoluzione! Stiamo lavorando attivamente per rendere il framework più facile e più efficiente da usare. La struttura è soggetta a modifiche, in quanto si tratta di miglioramenti che migliorano l'esperienza degli sviluppatori e l'efficienza del framework.

Il framework segue un'architettura modulare con una chiara separazione delle preoccupazioni:

Livello di configurazione

  • .env e .env.example gestiscono le variabili d'ambiente per le credenziali e gli URL sensibili.
  • La cartella env_files/ contiene tutti i dettagli necessari per la creazione degli account.
  • Makefile fornisce un'interfaccia di comando centrale per tutte le operazioni di compilazione e test.
  • docker-compose.yml orchestra l'intero ambiente multi-contenitore con un singolo comando

Costruire l'automazione

  • La cartella makefiles/ contiene script modulari organizzati per tipo di servizio (database, messaggistica, mock).
  • Ciascuna categoria di servizi ha dei makefile dedicati per la gestione indipendente del ciclo di vita.

Infrastrutture

  • docker/ contiene le configurazioni Docker per tutti i servizi (Groundplex, Oracle, PostgreSQL, Kafka)
  • env_files/ memorizza le variabili d'ambiente specifiche del servizio per isolare la configurazione.
  • L'approccio containerizzato garantisce ambienti di test riproducibili su tutti i sistemi.

Organizzazione del test

  • test/suite/ contiene le suite di test del Robot Framework organizzate per funzionalità della pipeline.
  • test/test_data/ fornisce i file di input e gli output attesi per la validazione.
  • I test sono raggruppati logicamente (Oracle, PostgreSQL+S3, Kafka) per facilitare la manutenzione.

Attività del gasdotto

  • src/pipelines/ memorizza i file SLP di SnapLogic che vengono testati.
  • src/tools/ include le utilità di aiuto e il file requirements.txt con le dipendenze di Python.
  • La libreria snaplogic-common-robot viene installata tramite il file requirements.txt, fornendo parole chiave riutilizzabili

Rapporti di prova

  • Robot Framework genera automaticamente rapporti di prova completi dopo ogni esecuzione.
  • report.html fornisce un riepilogo di alto livello con le statistiche di superamento e fallimento e la cronologia di esecuzione.
  • log.html offre un registro dettagliato dell'esecuzione passo-passo con informazioni a livello di parole chiave.
  • output.xml contiene risultati di test strutturati in formato XML per l'integrazione CI/CD.
  • I report includono schermate, messaggi di errore e una tracciabilità dettagliata per il debug.
  • Tutti i report sono datati e possono essere archiviati per l'analisi storica.

Componenti di supporto

  • travis_scripts/ consente l'automazione CI/CD per i test continui.
  • README/ contiene la documentazione del progetto e le guide alla configurazione

Vantaggi dell'architettura chiave

  • Il design modulare consente una gestione indipendente dei servizi
  • L'isolamento di Docker garantisce ambienti di test coerenti
  • L'automazione dei makefile semplifica le operazioni complesse
  • Una chiara struttura di directory migliora la manutenibilità
  • L'integrazione CI/CD consente di automatizzare i flussi di lavoro di test.

Integrazione con le pipeline CI/CD

Uno degli aspetti più potenti della nostra soluzione di testing Robot Framework è la sua perfetta integrazione con le pipeline CI/CD. Ciò consente di eseguire test continui, assicurando che ogni modifica del codice sia automaticamente convalidata rispetto alle integrazioni SnapLogic.

Perché l'integrazione CI/CD è importante

Nelle moderne pratiche DevOps, i test manuali diventano un collo di bottiglia. Integrando i test del nostro Robot Framework nella vostra pipeline CI/CD, otterrete:

  • Esecuzione automatica dei test: I test vengono eseguiti automaticamente ad ogni commit, richiesta di pull o intervallo programmato.
  • Rilevamento precoce dei bug: I problemi vengono rilevati immediatamente, non giorni o settimane dopo in produzione.
  • Test coerenti: Gli stessi test vengono eseguiti ogni volta, eliminando l'errore umano e la variabilità.
  • Rapido ciclo di feedback: Gli sviluppatori sanno in pochi minuti se le loro modifiche hanno infranto le integrazioni esistenti.
  • Cancelli di qualità: Impediscono le distribuzioni se i test falliscono, assicurando che solo il codice convalidato raggiunga la produzione.

Jenkins è uno degli strumenti CI/CD più diffusi e l'integrazione dei test del nostro Robot Framework è semplice. 

Come funziona?

  • Fase 1: Preparare l'ambiente Installare la libreria comune di SnapLogic Robot e le dipendenze necessarie.
  • Fase 2: Avvio dei servizi Docker Avvia i contenitori Groundplex, Oracle DB, Kafka e MinIO
  • Fase 3: Esecuzione dei test del framework Robot Eseguire le suite di test in parallelo su 4 thread utilizzando pabot
  • Fase 4: Pubblicazione dei risultati dei test Generare report HTML, risultati XML e artefatti di test e caricarli su S3.
  • Fase 5: Invio di notifiche Distribuisce i risultati dei test tramite Slack.
  • Messaggio: Pulizia Elimina i contenitori, rimuove i file temporanei e archivia i log.

Le notifiche di Slack includono i seguenti dettagli

La nostra pipeline CI/CD invia automaticamente rapporti dettagliati sull'esecuzione dei test a Slack, fornendo una visibilità immediata dei risultati dei test a tutto il team.

I rapporti HTML hanno i seguenti dettagli

Robot Framework genera automaticamente rapporti HTML completi dopo ogni esecuzione di test, fornendo informazioni dettagliate su risultati, prestazioni e modelli di esecuzione.

Vantaggi nel mondo reale

Ecco cosa significa per il vostro team:

Per gli sviluppatori

  • Spingete il codice con fiducia - I test vengono eseguiti automaticamente
  • Ottenere un feedback in pochi minuti - Non è necessario attendere i cicli di QA.
  • Risolvere i problemi immediatamente, mentre il codice è ancora fresco nella vostra mente.

Per i team QA

  • Concentrarsi sui test esplorativi - Lasciare che l'automazione gestisca la regressione
  • Migliore copertura dei test: i test vengono eseguiti su ogni singola modifica.
  • Rapporti chiari: per vedere esattamente cosa è stato testato e cosa no.

Miglioramenti futuri

Stiamo migliorando continuamente il framework e le funzionalità previste includono:

  • Supporto migliorato per un maggior numero di punti finali
  • Integrazione con i servizi di cloud storage 
  • Funzionalità avanzate di test delle prestazioni
  • Funzionalità di test di sicurezza migliorate

Conclusione

La combinazione della libreria snaplogic-common-robot e di snaplogic-robotframework-examples fornisce una soluzione potente e scalabile per l'automazione dei test di SnapLogic. Sfruttando le capacità di containerizzazione di Docker, la semplicità di Robot Framework e le robuste API di SnapLogic, i team possono:

  • Riduzione del tempo di test da ore a minuti
  • Aumentare la copertura dei test con scenari end-to-end automatizzati
  • Migliorare l'affidabilità attraverso test coerenti e ripetibili
  • Abilitare i test continui nelle pipeline CI/CD

Sia che si tratti di semplici trasformazioni di pipeline o di complesse integrazioni multi-sistema, questo framework fornisce gli strumenti e i modelli necessari per un test SnapLogic completo.

Coinvolgimento

Siamo lieti di ricevere contributi dalla comunità SnapLogic! Ecco come partecipare:

  1. Provare il framework: Installare snaplogic-common-robot ed eseguire i test di esempio
  2. Segnalazione di problemi: Aiutateci a migliorare segnalando bug o suggerendo miglioramenti.
  3. Contribuire al codice: Invia richieste di pull con nuove parole chiave o modelli di test.
  4. Condividete la vostra esperienza: Fateci sapere come utilizzate il quadro di riferimento nella vostra organizzazione.

Risorse

Iniziate ad automatizzare i vostri test SnapLogic oggi stesso e sperimentate la potenza dell'automazione dei test completa e containerizzata!

Domande? Siamo qui per aiutarvi!

Ci auguriamo che questa guida completa vi aiuti a iniziare i test automatizzati per le vostre integrazioni SnapLogic. La combinazione di snaplogic-common-robot e dell'infrastruttura basata su Docker fornisce una base potente per costruire un'automazione dei test affidabile e scalabile.

Avete domande o bisogno di assistenza per l'implementazione di questo framework?

Il team SLIM (SnapLogic Intelligent Modernization) è qui per supportarvi! Saremo lieti di conoscere i vostri casi d'uso, di aiutarvi a superare eventuali difficoltà o di discutere di come questo framework possa essere personalizzato per le vostre esigenze specifiche.

Contattare il team SLIM:

  • Contattateci direttamente attraverso i forum della comunità SnapLogic.
  • Inviateci un'e-mail a: [email protected] 

Siamo impegnati ad aiutarvi a raggiungere l'eccellenza nei test e siamo ansiosi di vedere come sfrutterete questo framework per migliorare il vostro percorso di automazione SnapLogic!

Buon test!
Il team SLIM

Immagine frontale di Sriswapna Pothana
Responsabile QA presso SnapLogic
Categoria: Tecnica