Come simulare i servizi REST per il test

3

Attualmente sto costruendo un'applicazione che consiste in più piccoli servizi di resto che comunicano tra loro. Ad esempio, una richiesta di servizio A potrebbe rendere richieste ai servizi B e C in background.

La domanda è: come posso prendere in giro i servizi B e C per testare A (che include verificare se le richieste a B e C sono corrette)?

I servizi stessi sono scritti in python usando Flask e golang.

    
posta Paul92 27.09.2016 - 10:53
fonte

3 risposte

3

È possibile generare il codice per tutti i servizi al di fuori di una definizione formale. Quindi è possibile iniziare a codificare e sostituire ogni servizio individualmente e lavorare contro la simulazione esistente (generata dalla definizione).

Dai un'occhiata a raml ( link ) o swagger ( link ) che adottano entrambi una definizione formale del servizio / API (ad es. come json o yaml) e forniscono strumenti che consentono di generare il codice standard. .

Probabilmente ci sono altri strumenti per deridere gli apis, ma questi sono quelli che avevo nella mia testa ora. Puoi persino generare una bella documentazione per la tua API.

    
risposta data 27.09.2016 - 11:05
fonte
1

Mountebank ( link ) è un'eccellente doppia applicazione di prova esattamente per questo tipo di scopo. L'applicazione crea un listener HTTP su una porta, in cui è possibile creare risposte predefinite a un numero di route di richiesta che la propria API reale potrebbe servire. Puoi creare un impostore che si comporta come farebbe il servizio reale, tranne che restituirà sempre i tuoi dati di test falsi, quindi configura la tua applicazione in prova per indirizzare le sue richieste a Mountebank piuttosto che alla realtà.

Ogni instradamento nel sistema tiene un registro di tutte le richieste ricevute e puoi quindi interrogarle utilizzando un'API REST per determinare che le richieste corrette vengono inviate dall'applicazione sottoposta a test. È anche possibile configurare ciascun endpoint simulato per restituire risultati diversi, condizionali alla richiesta ricevuta, in modo da poter restituire una risposta di errore quando, ad esempio, non viene impostato un determinato parametro di stringa di query.

È abbastanza potente e flessibile, ma ti richiederà un po 'di tempo per configurarlo quando ne hai bisogno. Inoltre, è necessario disporre di una macchina con un'installazione NodeJs per eseguirla.

    
risposta data 28.09.2016 - 11:11
fonte
0

Ci sono una varietà di servizi per progettare, testare e documentare API RESTful, ecco due che mi vengono in mente.

Postino

link

Il postino può essere utilizzato per testare i servizi RESTful e creare raccolte di test.

Il postino ha una varietà di funzionalità utili per singoli sviluppatori e team.

L'uso di Postman con GitHub e un servizio di configurazione per garantire che tutte le nuove versioni continuino a funzionare come previsto può essere considerato essenziale per la longevità della salute delle applicazioni.

Apiario

link

L'apiario è una piattaforma di gestione API ampia e ben arrotondata, tuttavia i piani sono più focalizzati su progetti Open Source e clienti Enterprise.

L'apiario consente il test automatizzato di API pubbliche illimitate e ha un potente test automatico integrato

    
risposta data 28.09.2016 - 05:21
fonte

Leggi altre domande sui tag