Tutorial sul test API: cos'è l'automazione del test API?
⚡ Riepilogo intelligente
Il test delle API convalida le interfacce di programmazione delle applicazioni per garantirne funzionalità, affidabilità, prestazioni e sicurezza, utilizzando chiamate basate sul codice anziché interazioni con l'interfaccia grafica.

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.
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
Il test di automazione delle API richiede un'applicazione con cui sia possibile interagire tramite un'API. Per testare un'API, è necessario:
- Utilizzare uno strumento di test per guidare l'API
- Scrivi il tuo codice per testare l'API
Alcuni punti da notare:
- Il test delle API si differenzia dagli altri tipi di test in quanto non è disponibile un'interfaccia grafica e occorre configurare un ambiente che richiami l'API con i parametri richiesti e che permetta di esaminare i risultati del test.
- Configurare un ambiente di test per l'automazione dei test API sembra un po' complesso.
- Il database e il server devono essere configurati in base ai requisiti dell'applicazione.
- Una volta completata l'installazione, è necessario richiamare la funzione API per verificare se l'API funziona correttamente.
Tipi di output di un'API
L'output di un'API potrebbe essere:
- Qualsiasi tipo di dato
- Stato (ad esempio superato o fallito)
- Chiama un'altra funzione 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.
add (1234, 5656)
È necessario gestire le eccezioni se il numero supera il limite intero.
Esito (Superato o non superato)
Si considerino le seguenti funzioni API:
- Serratura()
- Sbloccare()
- Elimina ()
Restituiscono un valore qualsiasi come True (in caso di successo) o False (in caso di errore) come output. Un più accurato caso di prova Richiamerebbe le funzioni presenti in uno qualsiasi degli script e in seguito verificherebbe la presenza di modifiche nel database o nell'interfaccia grafica dell'applicazione.
Chiamata di un'altra API/evento
In questo caso, richiamiamo una funzione API che a sua volta ne richiamerà un'altra. Ad esempio, la prima funzione API può essere utilizzata per eliminare un record specifico nella tabella e questa funzione, a sua volta, richiama un'altra funzione per AGGIORNARE il database.
Casi di test per il collaudo delle API
I casi di test per il collaudo delle 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 un evento o un interrupt, allora questi eventi e listener di interrupt dovrebbero essere tracked
- 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
L'approccio al test delle API è una strategia o un metodo predefinito che il team di QA adotterà per eseguire i test delle API dopo che la build sarà pronta. Questi test non includono il codice sorgente. L'approccio al test delle 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 a definire un approccio per il test delle API:
- Comprendere la funzionalità del programma API e definire chiaramente l'ambito del programma
- Applica tecniche di test come classi di equivalenza, analisi dei valori limite e ipotesi di errori e scrivi casi di test per l'API
- I parametri di input per l'API devono essere pianificati e definiti in modo appropriato.
- Esegui i casi di test e confronta i risultati attesi e quelli effettivi.
Come testare l'API
Oltre al normale processo SDLC, i test di automazione delle API dovrebbero includere almeno i seguenti metodi di test:
- 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
Differenza tra test API e test unitari
| Test unitari | Test 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 si esegue prima del check-in | Esecuzione del test dopo la creazione della build |
Migliori pratiche di test delle API
- I casi di test delle API devono essere raggruppati per categoria di test.
- In cima a ogni test, dovresti includere le dichiarazioni delle API chiamate.
- La selezione dei parametri deve essere specificata esplicitamente nel caso di test stesso.
- Assegna priorità alle chiamate alle funzioni API in modo che siano facili da testare per i tester.
- Ogni caso di test dovrebbe essere il più possibile autonomo e indipendente dalle dipendenze.
- Evitate di concatenare i test durante lo sviluppo.
- Occorre prestare particolare attenzione quando si gestiscono funzioni di chiamata singola come Elimina, Chiudi finestra, ecc.
- La sequenza delle chiamate deve essere eseguita e pianificata con cura.
- 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à, tra cui difficoltà di connessione e di ottenimento di una risposta dall'API
- Le questioni di sicurezza
- Problemi di multithreading
- Problemi di prestazioni dovuti a tempi di risposta API molto elevati
- 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 automatizzare i test API
Di seguito sono riportate guide dettagliate per automatizzare i test delle API:
- Come testare l'API con Stia tranquillo
- Come testare l'API con Postman
- Come testare l'API con UFT
Inoltre, ce ne sono altri strumenti per i test API.
Come l'IA sta trasformando i test delle API
L'intelligenza artificiale è reshaping Test delle API tramite l'automazione delle attività manuali. Gli algoritmi di machine learning possono analizzare le specifiche delle API, generare casi di test e identificare casi limite che i tester umani potrebbero trascurare.
L'intelligenza artificiale migliora anche i test di sicurezza individuando le vulnerabilità. Tuttavia, l'IA dovrebbe integrare, non sostituire, le competenze umane, poiché gli ingegneri QA apportano conoscenze specifiche del settore che l'IA non è in grado di replicare.
Sfide del test API
- Le principali sfide nel test delle API web riguardano la combinazione dei parametri, la selezione dei parametri e la sequenza delle chiamate.
- Non è disponibile un'interfaccia grafica per testare l'applicazione, il che rende difficile inserire i valori di input.
- Per i tester, convalidare e verificare l'output in un sistema diverso risulta un po' difficile.
- La selezione e la categorizzazione dei parametri devono essere note ai tester.
- La funzione di gestione delle eccezioni deve essere testata.
- Per i tester è necessaria la conoscenza della programmazione.
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.



