Tutorial sul test API: cos'è l'automazione del test API?

Cos'è il test API?

Test API è un tipo di test software che convalida le interfacce di programmazione delle applicazioni (API). Lo scopo del test API è di verificare la funzionalità, l'affidabilità, le prestazioni e la sicurezza delle interfacce di programmazione. Nel test API, 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 e la funzionalità di un'applicazione. Si concentrano principalmente sul livello di logica aziendale dell'architettura software.

Immagine di test API

Per lo sfondo, API (interfaccia di programmazione dell'applicazione) è un'interfaccia informatica che consente la comunicazione e lo scambio di dati tra due sistemi software separati. Un 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 le richieste, i formati dei dati che possono essere utilizzati, ecc., tra due sistemi software.

Configurazione dell'ambiente di automazione del test API

Automazione API Il test richiede un'applicazione con cui è possibile interagire tramite un'API. Per testare un'API, dovrai farlo

  1. Utilizza lo strumento di test per gestire l'API
  2. Scrivi il tuo codice per testare l'API

Pochi punti da notare

  • Il test dell'API è diverso da altri tipi di test del software poiché la GUI non è disponibile, tuttavia è necessario impostare l'ambiente iniziale che richiama l'API con un set di parametri richiesto e quindi esaminare infine il risultato del test.
  • Pertanto, la configurazione di un ambiente di test per i test di automazione delle API può sembrare un po' complessa.
  • Il database e il server devono essere configurati secondo i requisiti dell'applicazione.
  • Una volta completata l'installazione, è necessario richiamare 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 fallito)
  3. Chiama un'altra funzione API.

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

Qualsiasi tipo di dati

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

Long add(int a, int b)

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

La chiamata deve essere effettuata come

add (1234, 5656)

È necessario gestire le eccezioni se il numero supera il limite intero.

Stato (ad esempio superato o fallito)

Considera la funzione API seguente:

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

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

Uno più accurato Test Case sarebbe possibile richiamare le funzioni in uno qualsiasi degli script e in seguito verificare le modifiche nel database o nell'interfaccia utente grafica dell'applicazione.

Chiamata di un'altra API/evento

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 API:

I casi di test del test API si basano su

  • Valore restituito in base alla condizione di input: è relativamente facile da testare, poiché è possibile definire l'input e autenticare i risultati
  • Non restituisce nulla: Quando non è presente alcun valore restituito, è necessario verificare il comportamento dell'API sul sistema
  • Attiva qualche altra API/evento/interruzione: Se un output di un'API attiva alcuni eventi o interruzioni, è necessario tenere traccia di tali eventi e ascoltatori di interruzioni
  • Aggiorna la struttura dei dati: L'aggiornamento della struttura dei dati avrà qualche risultato o effetto sul sistema e ciò dovrebbe essere autenticato
  • Modifica alcune risorse: Se la chiamata API modifica alcune risorse, è necessario convalidarla accedendo alle rispettive risorse

Approccio al test dell'API

Approccio al test dell'API è una strategia predefinita o un metodo che il team di QA eseguirà per condurre il test dell'API dopo che la build sarà pronta. Questo test non include il codice sorgente. L'approccio al test dell'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 ad adottare un approccio di test API:

Approccio al test dell'API

  1. Comprendere la funzionalità del programma API e definire chiaramente l'ambito del programma
  2. Applica tecniche di test come classi di equivalenza, analisi dei valori limite e ipotesi di errori e scrivi casi di test per l'API
  3. I parametri di input per l'API devono essere pianificati e definiti in modo appropriato
  4. Esegui i casi di test e confronta i risultati attesi e quelli effettivi.

Differenza tra test API e test unitari

Test unitari Test dell'API
Gli sviluppatori lo eseguono I tester lo eseguono
Viene testata la funzionalità separata La funzionalità end-to-end viene testata
Uno sviluppatore può accedere al codice sorgente I tester non possono accedere al codice sorgente
Sono coinvolti anche i test dell'interfaccia utente Vengono testate solo le funzioni API
Vengono testate solo le funzionalità di base Tutti i problemi funzionali vengono testati
Di portata limitata Di portata più ampia
Di solito veniva eseguito prima del check-in Esecuzione del test dopo la creazione della build

Come testare l'API

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

  • Test di scoperta: Il gruppo di test deve eseguire manualmente la serie di chiamate documentate nell'API, ad esempio verificando che una risorsa specifica esposta dall'API possa essere elencata, creata ed eliminata in modo appropriato
  • 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 richiesta e se i dati sensibili sono crittografati tramite HTTP o entrambi
  • Test automatizzati: Il test dell'API dovrebbe culminare nella creazione di una serie di script o di uno strumento che possa 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 far parte del prodotto finale

migliori pratiche di test 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 menzionata esplicitamente nel test case stesso
  • Dai la priorità alle chiamate alle funzioni API in modo che sia facile per i tester testarle
  • Ogni caso di test dovrebbe essere il più autonomo e indipendente possibile dalle dipendenze
  • Evita il "concatenamento di test" nel tuo sviluppo
  • È necessario prestare particolare attenzione durante la gestione delle funzioni di chiamata una tantum come: Elimina, Chiudi finestra, ecc...
  • Il sequenziamento delle chiamate dovrebbe essere eseguito e ben pianificato
  • Per garantire una copertura completa dei test, crea 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
  • Bandiere inutilizzate
  • Funzionalità mancanti o duplicate
  • Problemi di affidabilità. Difficoltà nel connettersi e ottenere una risposta API.
  • Problemi di sicurezza
  • Problemi di multithreading
  • Problemi di prestazione. Il tempo di risposta dell'API è molto elevato.
  • Errori/avvisi impropri per un chiamante
  • Gestione errata dei valori degli argomenti validi
  • I dati di risposta non sono strutturati correttamente (JSON o XML)

Come eseguire l'automazione del test API

1) ProntoAPI

ProntoAPI è uno strumento leader per test funzionali, di sicurezza e di carico di RESTful, SOAP, GraphQL e altri servizi Web. In un'unica piattaforma intuitiva avrai a disposizione tre potenti strumenti: ReadyAPI Test, ReadyAPI Performance e ReadyAPI Virtualization. Con questi strumenti è possibile eseguire test funzionali, di sicurezza e di prestazioni/carico. Puoi anche simulare API e servizi web con il nostro robusto strumento di virtualizzazione. Inoltre, puoi facilmente integrare il tuo Conduttura CI/CD durante ogni costruzione.

ProntoAPI

Caratteristiche principali

  • ReadyAPI può essere integrato in qualsiasi ambiente.
  • Dispone di una funzionalità Smart Assertion che può creare rapidamente asserzioni in blocco contro centinaia di endpoint.
  • Supporto nativo per Git, Docker, Jenkins, Azure, ecc.
  • Supporta la riga di comando per i test automatizzati.
  • Supporta l'esecuzione parallela di test funzionali e accodamento dei lavori.
  • Promoriutilizzo del codice
  • Rimuove le dipendenze durante il test e lo sviluppo.

Visita ReadyAPI >>

Prova gratuita di 14 giorni (non è richiesta la carta di credito)

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

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

Sfide del test API

Le sfide del test API includono:

  • Le principali sfide nel test delle API Web sono Combinazione di parametri, selezione di parametri e sequenza di chiamate
  • Non è disponibile alcuna GUI per testare l'applicazione, 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
  • Funzione di gestione delle eccezioni deve essere testato
  • 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 aziendale. 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.