Tutorial sul test delle API: che cos'è l'automazione del test delle API? Come testare

Prima di andare al tutorial sul test delle API, capiamo prima

Cos'è l'API?

API (Application Programming Interface) è un'interfaccia di elaborazione che consente la comunicazione e lo scambio di dati tra due sistemi software separati. Il sistema software che esegue un'API include diverse funzioni / subroutine che un altro sistema software può eseguire. L'API definisce le richieste che possono essere effettuate, come effettuare richieste, formati di dati che possono essere utilizzati, ecc. Tra due sistemi software.

Cos'è il test API?

API TESTING è un tipo di test del software che convalida le API (Application Programming Interfaces). Lo scopo del test API è controllare la funzionalità, l'affidabilità, le prestazioni e la sicurezza delle interfacce di programmazione. In API Testing, invece di utilizzare input utente standard (tastiera) e output, si utilizza il software per inviare chiamate all'API, ottenere output e annotare la risposta del sistema. I test API sono molto diversi dai test GUI e non si concentrano sull'aspetto di un'applicazione. Si concentra principalmente sul livello di logica aziendale dell'architettura software.

Automazione delle API I test richiedono un'applicazione che possa essere interagita tramite un'API. Per testare un'API, sarà necessario

  • Usa lo strumento di test per guidare l'API
  • Scrivi il tuo codice per testare l'API

In questo tutorial sul test delle API, imparerai di più su:

  • Configurazione dell'ambiente API Test
  • Tipi di output di un'API
  • Casi di test per il test delle API
  • Approccio al test delle API
  • Differenza tra test API e test unitario
  • Come testare l'API
  • Best practice per il test delle API
  • Tipi di bug rilevati da API Testing
  • Come eseguire API Test Automation
  • Sfide del test API

Configurazione dell'ambiente API Test

  • Il test API è diverso dagli altri tipi di test del software poiché la GUI non è disponibile, eppure è necessario configurare l'ambiente iniziale che richiama l'API con un set di parametri richiesto e quindi esamina infine il risultato del test.
  • Quindi, la configurazione di un ambiente di test per i test di automazione delle API sembra un po 'complessa.
  • Il database e il server devono essere configurati secondo i requisiti dell'applicazione.
  • Al termine dell'installazione, è necessario chiamare la funzione API per verificare se l'API funziona.

Tipi di output di un'API

Un output dell'API potrebbe essere

  1. Qualsiasi tipo di dato
  2. Stato (ad esempio Superato o Non superato)
  3. Chiama un'altra funzione API.

Diamo un'occhiata a un esempio di ciascuno dei tipi precedenti in questo tutorial sul test delle API

Qualsiasi tipo di dati

Esempio: esiste una funzione API che dovrebbe aggiungere due numeri interi.

Aggiungi lungo (int a, int b)

I numeri devono essere forniti come parametri di input. L'output dovrebbe essere una somma di due numeri interi. Questo output deve essere verificato con un risultato atteso.

La chiamata deve essere eseguita come

aggiungi (1234, 5656)

Le eccezioni devono essere gestite se il numero supera il limite di numeri interi.

Stato (ad esempio Superato o Non superato)

Considera la seguente funzione API:

  1. Serratura()
  2. Sbloccare()
  3. Elimina()

Restituiscono qualsiasi valore come True (in caso di successo) o false (in caso di errore) come output.

Un test case più accurato sarebbe, può chiamare le funzioni in uno qualsiasi degli script e successivamente verificare le modifiche nel database o nella GUI dell'applicazione.

Chiamata di un'altra API / evento

In questo caso, chiamiamo una delle funzioni API che a sua volta chiamerà un'altra funzione.

Ad esempio: la prima funzione API può essere utilizzata per eliminare un record specificato nella tabella e questa funzione, a sua volta, chiama un'altra funzione per AGGIORNARE il database.

Casi di test per il test delle API:

I casi di test dei test API si basano su

  • Valore di ritorno basato sulla condizione di input: è relativamente facile da testare, poiché l'input può essere definito e i risultati possono essere autenticati
  • Non restituisce nulla: quando non è presente alcun valore di ritorno, deve essere verificato un comportamento dell'API sul sistema
  • Attiva qualche altra API / evento / interruzione: se un output di un'API attiva qualche evento o interruzione, allora quegli eventi e ascoltatori di interrupt dovrebbero essere tracciati
  • Aggiorna la struttura dei dati: l' aggiornamento della struttura dei dati avrà qualche risultato o effetto sul sistema e questo dovrebbe essere autenticato
  • Modifica alcune risorse: se la chiamata API modifica alcune risorse, è necessario convalidarla accedendo alle rispettive risorse

Approccio al test delle API

L'API Testing Approach è una strategia predefinita o un metodo che il team QA eseguirà per condurre il test API dopo che la build è pronta. Questo test non include il codice sorgente. L'approccio di test API aiuta a comprendere meglio le funzionalità, le tecniche di test, i parametri di input e l'esecuzione dei casi di test.

I seguenti punti aiutano l'utente a eseguire l'approccio al test API:

  1. Comprendere la funzionalità del programma API e definire chiaramente l'ambito del programma
  2. Applicare tecniche di test come classi di equivalenza, analisi del valore limite e indovinare gli errori e scrivere casi di test per l'API
  3. I parametri di input per l'API devono essere pianificati e definiti in modo appropriato
  4. Eseguire i casi di test e confrontare i risultati attesi ed effettivi.

Differenza tra test API e test unitario

Test di unità Test delle API
  • Gli sviluppatori lo eseguono
  • I tester lo eseguono
  • Viene testata una funzionalità separata
  • Viene testata la funzionalità end-to-end
  • Uno sviluppatore può accedere al codice sorgente
  • I tester non possono accedere al codice sorgente
  • È coinvolto anche il test dell'interfaccia utente
  • Vengono testate solo le funzioni API
  • Vengono testate solo le funzionalità di base
  • Tutti i problemi funzionali vengono testati
  • Portata limitata
  • Ambito di applicazione più ampio
  • Di solito viene eseguito prima del check-in
  • Eseguito dopo la creazione della build

Come testare l'API

I test di automazione API dovrebbero coprire almeno i seguenti metodi di test oltre al normale processo SDLC

  • Test di rilevamento: il gruppo di test deve eseguire manualmente la serie di chiamate documentate nell'API, come verificare che una specifica risorsa esposta dall'API possa essere elencata, creata ed eliminata a seconda dei casi
  • Test di usabilità: questo test verifica se l'API è funzionale e facile da usare. E l'API si integra bene anche con un'altra piattaforma
  • Test di sicurezza: questo test include il tipo di autenticazione richiesto e se i dati sensibili sono crittografati su HTTP o su entrambi
  • Test automatizzati: i test delle API dovrebbero culminare nella creazione di una serie di script o di uno strumento che può essere utilizzato per eseguire regolarmente l'API
  • Documentazione: il team di test deve assicurarsi che la documentazione sia adeguata e fornisca informazioni sufficienti per interagire con l'API. La documentazione dovrebbe essere una parte del deliverable finale

Best practice per il test delle API:

  • I casi di test API devono essere raggruppati per categoria di test
  • In cima a ogni test, dovresti includere le dichiarazioni delle API chiamate.
  • La selezione dei parametri dovrebbe essere esplicitamente menzionata nel test case stesso
  • Assegna la priorità alle chiamate di funzione API in modo che sia facile per i tester eseguire il test
  • Ogni test case dovrebbe essere il più possibile autonomo e indipendente dalle dipendenze
  • Evita il "concatenamento di test" nel tuo sviluppo
  • È necessario prestare particolare attenzione durante la gestione di funzioni di chiamata una tantum come: Elimina, Chiudi finestra, ecc ...
  • La sequenza delle chiamate dovrebbe essere eseguita e ben pianificata
  • Per garantire una copertura completa dei test, creare casi di test API per tutte le possibili combinazioni di input dell'API.

Tipi di bug rilevati dai test API

  • Non riesce a gestire correttamente le condizioni di errore
  • Flag inutilizzati
  • Funzionalità mancante o duplicata
  • Problemi di affidabilità. Difficoltà nel connettersi e ottenere una risposta dall'API.
  • Problemi di sicurezza
  • Problemi di multi-threading
  • Problemi di prestazione. Il tempo di risposta dell'API è molto alto.
  • Errori / avvisi impropri a un chiamante
  • Gestione errata dei valori degli argomenti validi
  • I dati di risposta non sono strutturati correttamente (JSON o XML)

Come eseguire API Test Automation

I seguenti tutorial forniscono una guida dettagliata per automatizzare il test delle API.

Come testare l'API con REST Assured

Come testare l'API con Postman

Come testare l'API con UFT

Inoltre ci sono altri strumenti per il test delle API. Controllali qui

Sfide del test API

Le sfide del test delle API includono:

  • Le sfide principali nel test dell'API Web sono la combinazione di parametri, la selezione dei parametri e la sequenza delle chiamate
  • Non è disponibile alcuna GUI per testare l'applicazione, il che rende difficile fornire valori di input
  • Convalidare e verificare l'output in un sistema diverso è un po 'difficile per i tester
  • La selezione e la categorizzazione dei parametri devono essere note ai tester
  • La funzione di gestione delle eccezioni deve essere testata
  • La conoscenza della codifica è necessaria per i tester

Conclusione:

L'API è costituita da un insieme di classi / funzioni / procedure che rappresentano il livello della logica di business. Se l'API non viene testata correttamente, potrebbe causare problemi non solo nell'applicazione API ma anche nell'applicazione chiamante. È un test indispensabile nell'ingegneria del software.

Articoli interessanti...