Questa suite di test è progettata per verificare il corretto funzionamento dei microservizi BING (pn-ec, pn-ss, pn-statemachinemanager e pn-pdfraster) tramite test comportamentali (BDD) basati su Cucumber.
- Java 17 o superiore
- Session Manager Plugin di AWS (mandatorio per i test su ambiente reale)
- Plugin Gherkin per IntelliJ IDEA (opzionale, per eseguire scenari singoli)
git clone https://github.com/pagopa/pn-microservices-test.git
cd pn-microservices-testLa configurazione dell'ambiente viene gestita tramite file .properties:
- Il file principale è
application.properties - Può fare riferimento a profili specifici impostando la property:
spring.profiles.active=devIn questo caso, verrà caricato automaticamente anche il file application-dev.properties.
All'interno degli scenari Gherkin, i parametri prefissati con @ fanno riferimento a una property di sistema.
Esempio:
Given invio una richiesta POST con body @requestBodyIn questo caso, il valore effettivo di requestBody sarà cercato tra le system properties o quelle definite nei file .properties.
Per eseguire i test sull'ambiente reale, è necessario avere un tunnel SSM attivo verso l'infrastruttura di destinazione.
Assicurati di avviare correttamente la sessione SSM (ad esempio tramite aws ssm start-session) prima di eseguire i test, così che il traffico venga instradato correttamente verso i servizi interni.
La suite può essere eseguita in diversi modi:
Esegue tutte le suite di test.
./mvnw testOppure, se Maven è installato:
mvn testPuoi eseguire singolarmente le suite principali:
EcCucumberTest– suite per i test del microservizio ECSsCucumberTest– suite per i test del microservizio SS
Questo può essere fatto da un IDE come IntelliJ IDEA o Eclipse cliccando sul test JUnit, oppure via terminale con Maven:
mvn -Dtest=EcCucumberTest testUtilizzando un plugin apposito, come il plugin Gherkin per IntelliJ IDEA, è possibile eseguire singoli scenari direttamente dall'editor. Dopo aver installato il plugin, apri il file .feature desiderato e utilizza l'opzione "Run" accanto allo scenario specifico.
È possibile filtrare l'esecuzione dei test in base ai tag definiti negli scenari Gherkin impostando l'argomento cucumber.filter.tags. Ad esempio, per eseguire solo gli scenari con il tag @SmokeTest:
mvn test -Dcucumber.filter.tags="@invioPEC"Per eseguire scenari con più tag, puoi utilizzare operatori logici. Ad esempio:
mvn test -Dcucumber.filter.tags="@invioPEC or @invioEMAIL"Per escludere scenari:
mvn test -Dcucumber.filter.tags="not @invioSMS"Dopo ogni esecuzione, viene generato uno o più report HTML nella cartella:
target/cucumber-reports
Apri i file .html presenti in questa cartella con un browser per visualizzare i risultati dettagliati.
src/test/resources/features/: scenari scritti in Gherkinsrc/test/java/it/pagopa/pn/cucumber/steps: implementazioni dei passi (StepDefinition)application.properties: configurazione baseapplication-<profile>.properties: configurazioni specifiche per ambiente
Puoi passare variabili al test direttamente da linea di comando:
mvn test -DrequestBody='{"example":"value"}'Oppure impostare più variabili con un file .properties e richiamarle nel test tramite @chiave.
Questa suite consente di automatizzare e standardizzare il testing dei microservizi utilizzando scenari leggibili e configurabili. Personalizza le proprietà in base al tuo ambiente e scegli la modalità di esecuzione più adatta alle tue esigenze.