Devo prendere in giro il complicato servizio web java e sto cercando la soluzione giusta. Un modo per farlo sarebbe usare Soap UI, ma ho bisogno di qualcosa che sarebbe in grado di modificare lo stato del server, ad es. una richiesta influenzerebbe le richieste future.Il modo migliore per simulare il servizio web java
In questo caso particolare, potrebbe essere eseguito rapidamente salvando gli oggetti serializzati sul disco e talvolta generando risposte asincrone al servizio web del client di origine.
Questi due requisiti mi impediscono di utilizzare SoapUI - la logica groovy sarebbe piuttosto complicata e probabilmente difficile da mantenere.
Le mie domande:
1) Ci sono altri vantaggi SoapUI in questo contesto (ad esempio, una facile migrazione alla nuova versione di WSDL) su Java personalizzato finta esecuzione.?
2) Quale sarebbe il modo più appropriato per generare il servizio web da wsdl e anche essere in grado di collegarsi con alcune funzionalità personalizzate, ad es. collegando alcuni ganci che potrebbero essere modificati in file separati (per facilitare ulteriore rigenerazione del codice wsd da wsdl aggiornato)?
Devo anche notare che la simulazione non è solo a scopo di test e dovrebbe lasciare la parte client così com'è, vale a dire. ci deve essere una normale comunicazione http, solo le modifiche dell'endpoint. Quindi immagino che il framework di derisione non funzionerà in questo caso. – aaimnr
Se parli di test di integrazione, proverei a rispecchiare il tuo ambiente di produzione il più vicino possibile e utilizzerei il vero servizio web su un database UAT/QA. Se il servizio web non è sotto il tuo controllo, cerca di creare i dati "test" che utilizzi durante i test.IMHO creando un "mock"/stub del servizio web ti dà un falso senso di sicurezza perché il tuo "mock"/stub è basato sulle tue ipotesi su come si comporterà il servizio web. Questo è ok nei test unitari ma per un test di integrazione completo devi usare la cosa reale per essere sicuro che funzioni. –
Non proprio test di integrazione, piuttosto pensare di usarlo per scopi di formazione. Poiché i webservices utilizzati dal frontend sono davvero difficili da rispecchiare (molti dati sensibili) è più facile creare un leggero simulacro, ma abbastanza intelligente da mantenere lo stato e quindi fornire la possibilità di scenari di allenamento logico. – aaimnr