Domanda

La mia organizzazione sta lavorando alla creazione di servizi web RESTful su JBoss Appserver. Il team di QA è abituato a testare i servizi Web SOAP finora utilizzando SoapUI. SoapUI ha una nuova versione con funzionalità REST. Stiamo pensando di usarlo.

  1. Esistono servizi RESTful disponibili al pubblico disponibili gratuitamente in rete che qualcuno potrebbe testare?
  2. Quali strumenti sono disponibili (e utilizzati) per testare i servizi Web RESTful?
È stato utile?

Soluzione

soapUI farà anche il lavoro, controlla questo post sul blog per iniziare.

Altri suggerimenti

Prova l'addon di Firefox Poster, che è semplice da usare e ti consente di iniziare rapidamente

Puoi esercitare i servizi web usando pezzi abbastanza banali di Python. A seconda della tua sicurezza, potresti semplicemente utilizzare urllib o urllib2 di Python per fare le tue richieste REST ed esaminare le tue risposte.

Inoltre, potresti voler usare Python unittest per controllare l'esecuzione dei test Python dei tuoi servizi REST.

class TestSomeREST( unittest.TestCase ):
    def setUp(self):
        REALM = "blah@blah.com"
        self.client= RESTClient( "localhost", 18000, "tester", "tester", REALM )
    def test_1_get(self):
        response = self.client.get('/this/that/other/2/')
        self.failUnlessEqual(200, response.status_code)
        j1= JSONDecoder().decode(response.content)
        self.assertEquals(2, j1[0]['pk'] )
        entity= j1[0]['fields']
        self.assertEquals('Some Other Group', entity['name'])
        self.assertEquals('E1G2', entity['customer_id'])

La classe RESTClient utilizza urllib2 per passare l'autenticazione digest per ogni richiesta. È piuttosto complesso, ma posso condividere l'essenza se è di interesse.

Scopri Fiddler

CURL Ti porta a metà strada. L'altra metà sta controllando le intestazioni, i codici di risposta e il contenuto dell'entità per assicurarsi che vada bene. Potresti usare una varietà di strumenti per questo (nella shell scripting land, il piping dell'intestazione e del contenuto nei file e diffonderli potrebbe semplicemente fare il trucco). Non sarebbe così difficile perfezionare ulteriormente il set di strumenti, magari accatastandoti con il framework di test di unità che preferisci.

Ho creato un pannello di test del servizio web di riposo con AJAX. In realtà non è stato affatto difficile. Hai alcuni problemi di sicurezza da risolvere (ad esempio assicurandoti di avere la suite di test sullo stesso server o magari firmato Javascript.)

Per testare un servizio REST puoi provare REST Assured che lo rende molto semplice per testare i servizi REST e convalidare la risposta in Java (usando JUnit o TestNG).

Guarda Postman - https://chrome.google.com/webstore/detail/fdmmgilgnpjigdokmcomp / . Questo è uno strumento su cui ho lavorato negli ultimi mesi e ultimamente dal feedback che sto ottenendo sta diventando abbastanza utile per grandi progetti REST mentre mi aiuta con i test di base sugli endpoint REST.

Il codice per questo è disponibile anche su Github. https://github.com/a85/POSTMan-Chrome-Extension

Il modo più semplice per testare il servizio web REST è usare curl nel terminale.

Ci sono alcuni codici che ho usato per testare il mio servizio web di rotaie. Puoi modificarli per adattarli ai tuoi servizi.

curl http://localhost:3000/courses.json

POST

curl -H "Content-Type:application/json"  -d '{"courseCode":"55555","courseName":"SEEEE","courseYr":999}' http://localhost:3000/courses.json

PUT in Raills: eg1 (con tutti i campi):

curl -H "X-Http-Method-Override: put" -H "Content-Type:application/json"  -d '{"courseCode":"123456","courseName":"AAAAAAAA","courseYr":12345}' http://localhost:3000/courses/5.json

eg2 (con solo il campo da modificare):

curl -H "X-Http-Method-Override: put" -H "Content-Type:application/json"  -d '{"courseYr":999999999}' http://localhost:3000/courses/3.json

ELIMINA in rotaie con ID fornito

 curl -H "X-Http-Method-Override: delete" -H "Content-Type:application/json"  -d '{"id":4}' http://localhost:3000/courses/5.json

Non l'ho ancora testato ma questa app Java sembra essere piacevole per testare i servizi REST. C'è anche un tutorial su Javalobby al riguardo.

App Java: http://code.google.com/p/rest-client /

Tuto: http://java.dzone.com/announcements/wiztoolsorg -restclient-21-rele

puoi utilizzare Simple REST Client è un'estensione anche per Google Chrome https: // chrome. google.com/webstore/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb

SOA Cleaner, è uno strumento di test che testa sia il sapone che il riposo (anche WCF, ma sembra che non ti serva quella funzione). È molto intuitivo e utilizzabile. Scritto in .NET. È disponibile anche una versione gratuita. può essere scaricato da http://xyrow.com . Buona fortuna!

Sto testando i servizi RESTful con un framework .NET interno (nessun problema nel portarlo in Java). Principi di base:

  • build client (per effettuare le chiamate)
  • classi di tipi di build (XML e JSON)
  • deserializza la risposta
  • affermare cose

Se vuoi maggiori informazioni, sono felice di parlare.

Sto utilizzando Estensione console REST per Google Chrome ed è di di gran lunga il migliore che abbia provato. Supporta anche vari meccanismi di sicurezza come OAuth

(aggiornamento 2: correzione link)

Per java, esiste anche RESTFuse , che consente di sviluppare test unitari che potrebbero assomigliare a questo :

@Rule
public Destination destination = new Destination("http://localhost:8080/rest/");


@HttpTest( method = Method.GET, path = "/status" ,authentications =
   @Authentication(type = AuthenticationType.BASIC, user = "joe", password = "doe")
)
public void testAuthRhqadmin() {
    com.eclipsesource.restfuse.Assert.assertOk(response);
}

Questo test viene eseguito su http: // localhost: 8080 / rest / status e si autentica come utente con password doe. Il corpo del metodo verifica quindi che la chiamata GET restituisca un codice di stato 200.

Prova httplib di Python. È molto semplice, specifichi il metodo, l'URL e usi urllib.urlencode per i parametri / POST body.

Questo può essere combinato con il modulo unittest incorporato, se lo desideri, per la segnalazione di errori.

Sto usando JMeter per questo, specialmente per cose come il test di carico. È simile a SoapUI (che ho anche usato), ma orientato maggiormente al test di pagine Web, il che lo rende abbastanza decente anche nel test di servizi RESTful.

Ho scritto un programma specifico per testare i servizi Web REST. È un'applicazione piuttosto semplice scritta in .NET 2.0 (l'ho testata solo su Windows Vista, ma dovrebbe funzionare anche su XP). L'applicazione utilizza HttpWebRequest per effettuare richieste e visualizza la risposta risultante, nonché le intestazioni per la richiesta e la risposta. Ho fatto un po 'di test, ma ho pensato che potesse aiutarti a testare i tuoi servizi web.

Test REST

Attualmente sto studiando l'app CLI di wsclient per questo scopo ( http://wso2.org/library/3362 ). È abbastanza promettente e può essere usato per hackerare un test rapido da una shell bash. Ovviamente, come molti menzionati qui, molti degli strumenti forniti con un sistema * nix faranno il lavoro con un po 'di codifica / scripting

Se ti piace usare Ruby c'è un gemma REST-Client per questo

Per i tester trovo che ruby ??sia un linguaggio davvero facile da imparare, e ha alcuni strumenti eccellenti come Cucumber per fare test di accettazione in stile BDD.

Ho provato numerosi client REST e di gran lunga il migliore che ho usato è l'app di Chrome: DHC .

  

DHC (aka Dev HTTP Client) è progettato e sviluppato da uno sviluppatore per gli sviluppatori per rendere più facile la scoperta, la manipolazione e il test diretti delle risorse HTTP. Oltre alla funzione principale, l'invio / la ricezione di richieste / risposte HTTP personalizzate, consente di salvare in modo permanente una richiesta in un repository locale per un successivo riutilizzo e inoltre la dichiarazione di richiesta può includere variabili specifiche del contesto. Con l'uso dei contesti è possibile passare facilmente da un ambiente all'altro senza modificare la dichiarazione di richiesta. (ad es. da un ambiente di test alla produzione)

Testare i servizi web completi REST è un'operazione facile da fare. Gli annunci gratuiti sono disponibili sui browser come client REST da cui è necessario inviare un servizio Web con il tipo di metodo previsto / richiesto: GET / POST / PUT / DELETE Se i parametri vengono abbinati, l'output verrà generato nel corpo del browser. inserisci qui la descrizione dell'immagine

So che è una domanda molto vecchia, ma potrebbe essere utile per gli altri. Solo per rispondere alla tua prima domanda puoi controllare qui per ottenere alcuni servizi web REST da testare.

Il plug-in Fiddler e Poster in Firefox può essere utilizzato per testare qualsiasi servizio Web REST. SoapUI viene fornito con il supporto di servizi web RESTful.

Per i test REST avanzati puoi provare HttpMaster .
Supporta parametri dinamici, visualizzatori intuitivi per XML / JSON e vari tipi di convalide dei dati di risposta che possono essere combinati in espressioni logiche.
Per richieste HTTP di base saranno sufficienti alcuni plugin del browser.

OnionTest ancora beta, ma piuttosto utile

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top