2012-02-03 14 views
8

Sto provando a creare un framework di test automatizzato per alcuni dei nostri servizi Web interni (java) al lavoro. Ogni servizio ha un insieme di API (3-5), anche se questo potrebbe essere relativamente facile da ottenere, il problema viene fornito con alcune API che non si comportano come pure funzioni, ad esempio: persistX, questo potrebbe memorizzare qualcosa in un database e restituisce un'eccezione in caso di errore. Non esiste un modo semplice per convalidare poiché non vi è alcun output qui.Framework di test automatico

Quindi mi chiedevo se questo potesse essere un po 'generalizzato, diciamo mentre testavo l'API, l'utente poteva fornire un semplice plugin o script al framework di qualche tipo che potesse validare il test. Questa è solo un'idea sarebbe grandiosa se qualcuno potesse dirmi qualcosa di meglio o qualche risorsa sullo stesso.

Grazie

risposta

6

vi consiglio il robot framework. È un framework basato su parole chiave scritto in python. Per questo motivo, è possibile eseguirlo nella JVM con jython, il che significa che è possibile estenderlo con codice java (o python, ovviamente). L'ho usato con successo per chiamare le API, quindi verificare il risultato sbirciando in un database o interrogando il file system.

Funziona anche su piattaforma .NET, ha un modulo di selenio per testare il front-end, un plugin jenkins e molti altri strumenti. È molto estensibile e flessibile.

4

Quello che stai guardando è l'applicazione di test black-box e white-box e gli strumenti che supportano entrambi.

Per i servizi Web che restituiscono una risposta adeguata, è possibile eseguire test black-box verificando i dati nella risposta restituita. SoapUI è lo strumento migliore per questo.

per le API, che non si comportano funzioni come pure, fate test white-box, verificando le sue effetti collaterali come la persistenza, generazione di eventi, la registrazione ecc Per questo ti piace strumenti programmabili e SoapUI può o non può essere l'opzione corretta

Facciamo sia al nostro lavoro e dopo aver valutato più strumenti/quadri (SoapUI, RSSPec, Robotframework), ho scelto Spock. Perché spock?

  1. Esso consente di scrivere i test intenzione rivelando in stile BDD
  2. Siamo negozio di Java e vogliamo usare la stessa lingua desiderata per l'automazione come pure, ma con lo zucchero syntatic semplificata. E Spock è tutto basato su groovy.
  3. Eccellente WebDriver/Selenio 2 supporto (comprese le PageFactory) con Geb
  4. E 'costruito in cima a JUnit così tutti i plugin di JUnit possono essere sfruttate (copertura del codice, Hudson/Jenkins integrazione, ecc)
  5. Lot of API webservice e DSL XML (non c'è bisogno di lavorare con XPATH per gli scenari semplici)
  6. configurazione semplificata (a differenza robotframework doesnt richiede python, di impostazione Jython)

ecc ....

Problemi correlati