karate framework tutorial
Questo tutorial è un'introduzione al test delle API utilizzando Karate Framework. Scopri la struttura di Karate Test Script e i passaggi per creare il primo script di test:
API è un acronimo che sta per Application Programming Interface. In termini semplici, possiamo definirlo come un intermediario software che consente la comunicazione tra le applicazioni.
Abbiamo bisogno di test API perché:
- I risultati vengono pubblicati più velocemente, quindi non è più necessario attendere per vedere se l'API funziona correttamente.
- Con la risposta più rapida, anche la distribuzione di queste API diventa più veloce, consentendo quindi tempi di consegna rapidi.
- Il rilevamento precoce dei guasti, anche prima della creazione dell'interfaccia utente dell'app, ci consente di mitigare i rischi e correggere i guasti.
- Consegna su larga scala possibile in un periodo più breve.
Per poter lavorare su API Testing, abbiamo vari strumenti disponibili sul mercato come Postman, Mocha e Chai. Questi hanno dimostrato buoni risultati e un utilizzo efficace per testare le API, tuttavia sono fortemente influenzati dal codice. Per poterli utilizzare, è necessario essere tecnicamente validi e familiarità con i linguaggi di programmazione.
Il Karate Framework risolve magnificamente questo problema dei suoi strumenti software precedenti.
Cosa imparerai:
Cos'è il Karate Framework
Karatè? Parliamo di Karate. È quello del Giappone? Cosa ne pensi? Potrebbe essere che il grande Bruce Lee lo avesse sviluppato nel suo tempo libero.
Anche se vorremmo approfondire le radici interessanti del Karate, per ora parliamo di Strumento di karate che è stato sviluppato da Peter Thomas , uno dei fantastici strumenti che vengono in soccorso dei tester API.
La struttura del karate segue lo stile di scrittura del programma Cucumber che segue l'approccio BDD. La sintassi è di facile comprensione da parte dei non programmatori. E questo framework è l'unico strumento di test delle API che ha combinato l'automazione delle API e il test delle prestazioni in un unico strumento autonomo.
Fornisce agli utenti la possibilità di eseguire i casi di test in parallelo ed eseguire i controlli JSON e XML.
Con queste informazioni, è possibile dedurre alcuni punti chiave per comprendere ulteriormente lo strumento di Karate in dettaglio:
- Karate è un framework di test BDD invece di un TDD.
- È progettato per essere facile per i non programmatori. Questa funzione è un punto di svolta in quanto consente un maggiore utilizzo e accesso da parte di molte persone indipendentemente dal loro background tecnico o capacità.
- Utilizza il file delle funzionalità Cucumber e il linguaggio Gherkins per scrivere il test che è molto facile da capire.
Tutte queste caratteristiche lo rendono uno degli strumenti di automazione più vantaggiosi oggi disponibili.
Storia del Karate Framework
Creato da ' Peter Thomas ' nel 2017, questo software mira a rendere le funzionalità di test prontamente disponibili per tutti. È stato scritto in Java e la maggior parte delle persone si aspettava che anche i suoi file fossero nella stessa lingua, tuttavia, fortunatamente, non è così.
Piuttosto, utilizza i file Gherkins, che è il risultato della sua relazione con il framework Cucumber. Il software di automazione è un'estensione di Cucumber, quindi eredita l'uso del file Gherkins nel suo funzionamento. La grande differenza tra i due è che Karate non utilizza Java durante i test, ma Cucumber sì.
Questo è il vero motivo per cui si rivolge ai non programmatori poiché la sintassi di Gherkins è super leggibile e completa. Questo è il motivo per cui il Karate è più adatto e consigliato per entrare nel mondo dei test API automatizzati.
Di seguito sono riportate alcune caratteristiche del Karate Testing Framework:
- Utilizza la lingua dei cetriolini di facile comprensione.
- Non richiede conoscenze di programmazione tecnica come Java.
- Si basa sui popolari standard di cetriolo.
- Facile creare un quadro.
- Il test parallelo è la funzionalità principale fornita dal Karate stesso, quindi non dobbiamo dipendere da Maven, Gradle , eccetera.
- Interfaccia utente per il debug di Test.
- Richiamo di un file di caratteristiche da un altro file.
- Fornisce il supporto per il test dei driver di dati che è costruito internamente, quindi non è necessario dipendere da framework esterni.
- Rapporti di riposo nativi incorporati. Inoltre, può essere integrato con Cucumber per migliori rapporti sull'interfaccia utente e maggiore chiarezza.
- Fornisce supporto interno per la commutazione della configurazione in diversi ambienti di test (QA, Stage, Prod, Pre-Prod).
- Supporto continuo per l'integrazione CI / CD che può essere utile.
- In grado di gestire varie chiamate HTTP:
- Supporto Web Socket
- Richiesta SOAP
- HTTP
- Gestione dei cookie del browser
- HTTPS
- Dati in formato HTML
- Richiesta XML
Confronto tra Karate e Riposo
Stia tranquillo : È una libreria basata su Java per testare i servizi REST. Utilizza il linguaggio Java per scrivere le righe di codice. Aiuta a testare numerose categorie di richieste, il che si traduce ulteriormente nella verifica di diverse combinazioni di logica di business.
Quadro di karate : Uno strumento basato su cetrioli / cetriolini, utilizzato per testare i servizi SOAP e REST.
La tabella seguente elenca alcune differenze più evidenti tra Rest-Assured e Karate Framework:
S.No | Base | Quadro di karate | Stia tranquillo |
---|---|---|---|
7 | Segnalazione | Fornisce report interni, quindi non è necessario che dipenda da plug-in esterni. Possiamo persino integrarlo con il plug-in di report Cucumber per una migliore interfaccia utente. | Devi dipendere da plugin esterni come Junit, TestNG |
1 | linguaggio | Usa una combinazione di cetriolo e cetriolini | Utilizza il linguaggio Java |
Due | Dimensione del codice | Di solito, la riga di codice è inferiore, poiché segue la struttura simile a Cucumber | La riga di codice è più poiché implica l'uso del linguaggio Java |
3 | Conoscenza tecnica richiesta | I non programmatori possono scrivere facilmente il codice Gherkins | La conoscenza tecnica è richiesta per scrivere codice Java |
4 | Test basato sui dati | È necessario utilizzare TestNG o equivalente per supportare lo stesso | I tag interni possono essere utilizzati per supportare il test dei dati |
5 | Fornisce supporto per chiamate SOAP | Sì, fornisce | È correlato solo a una richiesta REST |
6 | Test parallelo | Sì, il test parallelo è facilmente supportato anche con la generazione di report paralleli | Non in larga misura. Sebbene le persone abbiano provato a farlo, il tasso di fallimento è maggiore del tasso di successo |
8 | Supporto CSV per dati esterni | Sì, da Karate 0.9.0 | No, devo usare il codice Java o la libreria |
9 | Automazione dell'interfaccia utente Web | Sì, da Karate 0.9.5 Web-UI Automation è possibile | No, non è supportato |
10 | Esempio GET | Given param val1 = ‘name1’ | given(). |
Quindi, come dimostrato dalle differenze di cui sopra, è sicuro dire che il Karate è una delle cose più facili che chiunque possa fare.
Strumenti necessari per lavorare con Karate Framework
Ora, poiché abbiamo le nostre conoscenze di base sul Karate Framework, esaminiamo i processi e gli strumenti necessari per impostare l'ambiente di Karate.
# 1) Eclipse
Eclipse è un ambiente di sviluppo integrato utilizzato nel campo della programmazione di computer. Viene utilizzato principalmente per la programmazione Java. Come accennato in precedenza, Karate è scritto in Java, quindi ha più senso il motivo per cui Eclipse è l'IDE di riferimento per il software di test API. Un altro motivo è che si tratta di uno strumento open source, e questo è un motivo piuttosto valido per optare per questo strumento.
Nota: Potremmo persino usare IntelliJ, Visual Studio e altri diversi editor disponibili sul mercato.
# 2) Maven
Si tratta di uno strumento di automazione della compilazione utilizzato principalmente per la creazione di progetti Java. È un modo per creare un ambiente di karate e scrivere il codice. Per configurare Eclipse con i requisiti Maven, puoi fare clic su Qui per l'installazione di Maven.
Mentre lavori in Maven, usa le dipendenze di Maven che ti aiuterebbero a supportare Karate Framework.
Le seguenti dipendenze verranno utilizzate con Maven in pom.xml.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Nota: Le ultime versioni potrebbero essere disponibili nel repository Maven.
qual è la tua chiave di sicurezza di rete
# 3) Gradle
Gradle è un'alternativa a Maven e può essere utilizzato in egual misura. Hanno le loro somiglianze e differenze, ma possono essere ugualmente usati nella creazione di un ambiente per i nostri codici di karate.
È più facile da usare, flessibile e si consiglia di utilizzare quando la nostra applicazione ha alcuni requisiti di modularizzazione e gestione con una serie di plug-in. Il codice di configurazione di Gradle sarebbe simile a questo,
testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'
Nota: Puoi usare entrambi ESPERTO DI o GRADLE.
# 4) Configurazione dell'ambiente Java nel tuo sistema
È necessario configurare l'ambiente JDK e JRE per iniziare con gli script Karate Framework.
Struttura del test di Karate Script
Un copione di prova di Karate è noto per il possesso dell'estensione '.feature'. Questa proprietà è ereditata da Cucumber. Anche l'organizzazione dei file nella convenzione Java è ugualmente consentita. Sei libero di organizzare i tuoi file secondo le convenzioni del pacchetto Java.
Tuttavia, le linee guida Maven indicano che l'archiviazione dei file non Java deve essere eseguita separatamente. Sono fatti in a src / test / resources struttura. E i file Java vengono conservati sotto src / main / java .
Ma secondo i creatori del Karate Framework, credono fermamente che teniamo fianco a fianco i file Java e non Java. Secondo loro, è molto più facile cercare i file * .java e * .feature quando sono tenuti insieme, piuttosto che seguire la struttura standard di Maven.
Questo può essere fatto facilmente modificando il tuo pom.xml come segue (per Maven):
src/test/java **/*.java ...
Di seguito è riportato lo schema della struttura generale del Karate Framework:
Ora, poiché questo Karate Framework utilizza il file Runner, che è necessario anche in Cucumber per eseguire i file delle funzionalità, la maggior parte della scrittura seguirà gli standard di Cucumber.
Ma, a differenza di Cucumber, i passaggi non richiedono una definizione chiara nel Karate e che, a loro volta, migliorano la flessibilità e la facilità delle operazioni. Non abbiamo bisogno di aggiungere la colla extra che di solito dobbiamo aggiungere quando seguiamo il framework Cucumber.
La classe 'Runner' è il più delle volte nominata TestRunner.java.
Quindi il file TestRunner.java assumerà la forma di:
import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }
E parlando del .feature file, contiene tutti gli scenari di test che devono essere testati per assicurarsi che l'API funzioni secondo i requisiti previsti.
Un file generale * .feature ha un aspetto simile a quello mostrato di seguito:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200
Creazione del primo script di base del test di Karate
Questa sezione ti aiuterà a iniziare con la creazione del tuo primo Test Script, che ti sarà utile per convertire le API sotto forma di un framework di Karate.
Prima di scrivere gli script di base del test di Karate, installa i seguenti requisiti sulla tua macchina:
- Eclipse IDE
- Esperto di. Imposta il percorso Maven appropriato.
- JDK e JRE. Imposta il percorso appropriato.
Diamo uno sguardo all'approccio passo passo:
# 1) Crea un nuovo file ESPERTO DI Progetto in Eclipse Editor
- Apri Eclipse
- Fare clic su File. Seleziona Nuovo progetto.
- Seleziona Maven Project
- Scegli la posizione dell'area di lavoro.
- Seleziona l'archetipo (di solito scegliamo ' Maven-archetipo-avvio rapido 1.1 'Per semplici progetti Maven).
- Fornisci l'ID gruppo e l'ID artifact (abbiamo utilizzato i seguenti valori nel nostro esempio).
- ID gruppo : Karate
- ID artefatto: KarateTestScriptsSample
- Fare clic su Fine per completare la configurazione.
#Due) Una volta creato, ora sarai in grado di vedere la seguente struttura nella finestra Project Explorer.
# 3) Includi tutte le tue dipendenze.
Il nostro primo passo, dopo la configurazione, dovremo farlo includere tutte le dipendenze che sarà richiesto per l'esecuzione. Manterremo tutti i tag sotto POM.xml (supponendo che tu sia già a conoscenza dell'utilizzo di POM.xml).
- Apri POM.xml e copia il codice seguente sotto il tag di dipendenza e salva il file.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Clic Qui per fonte.
# 4) Facciamo un brainstorming sullo scenario, cosa testeremo in questo Karate Basic Test Script.
Scenario:
Testeremo un'API con questo URL.
Sentiero: api / utenti / 2
Metodo: OTTENERE
E dobbiamo convalidare , se la richiesta restituisce un file Codice di successo (200) o no.
In termini semplici, testeremo solo un'API di esempio per vedere se viene eseguita con successo o meno.
Nota: Stiamo prendendo un'API di esempio disponibile per i test. Puoi scegliere qualsiasi PERCORSO o fare riferimento alla tua API.
Clic Qui per fonte.
# 5) Ora il nostro prossimo passo sarebbe creare un file .feature file.
Come discusso nella sezione introduttiva, il .feature file è la proprietà che è stata ereditata da Cucumber. In questo file, scriveremo gli scenari di test che devono essere eseguiti per eseguire il test API.
- Vai alla cartella src / test / java nel tuo progetto.
implementazione dell'algoritmo di dijkstra in java
- Fare clic destro su di esso e creare un nuovo file - userDetails.feature. Quindi fare clic sul pulsante Fine.
Ora vedrai il seguente file sotto la cartella src / test / java
Il Icona colorata di verde assomiglia al .funzione fi le in Cucumber che abbiamo appena creato.
- Una volta creato il file, ora scriveremo i nostri scenari di test che verranno discussi nella sezione seguente.
# 6) Dal momento che abbiamo lo scenario e il vuoto. caratteristica file pronto, ora iniziamo con il nostro primo script. Cominciamo a programmare
Scrivi la seguente riga di codice nel file userDetails.feature che abbiamo creato nel passaggio 5:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200
Cerchiamo di capire i componenti che sono scritti nel file sopra:
- Caratteristica: La parola chiave spiega il nome della funzione che stiamo testando.
- Sfondo: Questa è una sezione facoltativa che viene considerata come una sezione dei prerequisiti. Questo può essere utilizzato per definire ciò che è necessario per testare l'API. Contiene INTESTAZIONE, URL E PARAM opzioni.
- Scenario: Ogni file di funzionalità che vedrai avrà almeno una funzionalità (sebbene possa dare multiple scenari). È la descrizione del test case.
- Dato: È il passaggio che deve essere eseguito prima di eseguire qualsiasi altro passaggio del test. È un'azione obbligatoria da eseguire.
- Quando: Specifica la condizione che deve essere soddisfatta per eseguire la fase di test successiva.
- Poi: Ci dice che cosa dovrebbe accadere nel caso in cui la condizione menzionata nel file quando è soddisfatto.
Nota: Tutte le parole chiave sopra menzionate provengono dalla lingua dei cetriolini. Questi sono il modo standard di scrivere gli script di test usando Cucumber.
E alcune altre parole usate nel file delle caratteristiche sono:
- 200: È il codice di stato / risposta che ci aspettiamo (Fare clic su Qui per l'elenco dei codici di stato)
- OTTENERE: È il metodo API come POST, PUT, ecc.
Ci auguriamo che questa spiegazione sia stata facile da capire. Ora sarai in grado di metterti in relazione con ciò che è scritto esattamente nel file sopra.
Ora dobbiamo creare un file TestRunner.java
Come spiegato nella sezione precedente, Cucumber necessita di un file Runner che sarebbe necessario per eseguire il .feature file che contiene gli scenari di test.
- Vai alla cartella src / test / java nel tuo progetto
- Fai clic destro su di esso e crea un nuovo file Java: TestRunner.java
- Una volta che il file è stato creato, posizionare le seguenti righe di codice sotto di esso:
import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
- Test Runner è il file che verrà ora eseguito per eseguire lo scenario desiderato che è stato scritto nel passaggio 5.
# 7) Ora siamo pronti con entrambi i file TestRunner.Java e userDeatils.feature. L'unico compito che ci resta è farlo Correre il copione.
- Vai al file TestRunner.java e fai clic con il pulsante destro del mouse sul file come mostrato nell'immagine sottostante.
- Scegli Run As -> Junit Test
- Ora, una volta selezionato, inizierai ad osservare che il test case è ora iniziato.
- Attendi l'esecuzione dello script di test. Una volta fatto, osserverai qualcosa come mostrato nell'immagine qui sotto nella tua finestra.
- Infine, possiamo dire di aver creato con successo il nostro primo basic Script di test usando il Quadro di karate.
# 8) Infine, il framework Karate fornisce anche una presentazione di report HTML per l'esecuzione che è stata eseguita.
- Vai a Target Folder -> surefire-reports-> Qui vedrai il tuo report HTML che puoi aprire.
** Ti suggeriamo anche di aprire lo stesso utilizzando il browser Chrome per un aspetto migliore.
- Il seguente rapporto HTML ti verrà mostrato raffigurante Scenari e test che è stato eseguito per lo scenario menzionato:
Conclusione
In questo tutorial, abbiamo discusso il test delle API, diversi strumenti di test disponibili sul mercato e come il Karate Framework sia un'opzione migliore rispetto alle sue controparti.
Abbiamo seguito un approccio passo passo per creare il nostro primo script di test di base. Abbiamo iniziato con la creazione di un basic Progetto Maven in Eclipse IDE per creare un file .feature, che contiene tutto lo scenario di test e un file Runner per eseguire il test case menzionato nel file .feature.
Alla fine dei molteplici passaggi, potremmo vedere il report di esecuzione dei risultati del test.
Ci auguriamo che questo tutorial sia stato utile per i principianti nell'imparare a costruire il loro primo script di test utilizzando il Karate Framework ed eseguire il test API. Questo approccio dettagliato passo dopo passo è un modo meraviglioso per eseguire ed eseguire vari test sull'API.
Lettura consigliata
- Come configurare il framework di test Node.js: Tutorial Node.js
- Tutorial Parasoft SOAtest: strumento di test API senza script
- Tutorial Mockito: Mockito Framework per Mocking in Unit Testing
- Tutorial sul test delle API: una guida completa per principianti
- Tutorial TestNG: Introduzione a TestNG Framework
- Tutorial Jest - Test di unità JavaScript utilizzando Jest Framework
- Tutorial sui test distruttivi e non distruttivi
- Come utilizzare Postman per testare diversi formati API?