web-dev-qa-db-fra.com

Essai REST services Web

Mon organisation travaille à la création de services Web RESTful sur le serveur d'applications JBoss. L'équipe d'assurance de la qualité est habituée à tester jusqu'à présent les services Web SOAP à l'aide de SoapUI. SoapUI a une nouvelle version qui a REST des capacités. Nous envisageons d'utiliser cela.

  1. Existe-t-il gratuitement sur le net des services RESTful disponibles au public que quelqu'un pourrait tester? 
  2. Quels outils sont disponibles (et utilisés) pour tester les services Web RESTful?
63
anjanb

soapUI fera le travail également, consultez cet article de blog pour commencer.

28
Ole Lensmar

S'il vous plaît essayer l'addon Firefox Poster, qui est simple à utiliser et vous permet de démarrer rapidement

25
user28192

Vous pouvez exercer des services Web en utilisant des morceaux de Python assez triviaux. Selon votre sécurité, vous pourrez peut-être simplement utiliser les variables urllib ou urllib2 de Python pour effectuer vos demandes REST et examiner vos réponses.

De plus, vous pouvez utiliser Python unittest pour contrôler l'exécution des tests Python de vos services REST.

class TestSomeREST( unittest.TestCase ):
    def setUp(self):
        REALM = "[email protected]"
        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 utilise urllib2 pour transmettre l’authentification Digest pour chaque demande. C'est assez complexe, mais je peux partager l'essentiel si c'est intéressant.

20
S.Lott

Départ Fiddler

12
TheSoftwareJedi

Pour tester un service REST, vous pouvez essayer REST Assured , ce qui simplifie considérablement le test des services REST et la validation de la réponse en Java (à l'aide de JUnit ou TestNG).

8
Johan

CURL vous amène à mi-chemin. L'autre moitié vérifie les en-têtes, les codes de réponse et le contenu de l'entité pour s'assurer de sa qualité. Vous pouvez utiliser divers outils à cet effet (dans Shell scripting land, rediriger l'en-tête et le contenu vers des fichiers et les différencier pourrait faire l'affaire). Il ne serait pas si difficile d’affiner le jeu d’outils, en empilant peut-être avec le framework de tests unitaires de votre choix.

J'ai construit un panneau de test de services Web de repos avec AJAX. Ce n'était pas si difficile du tout en fait. Vous avez des problèmes de sécurité à résoudre (c’est-à-dire s’assurer que vous avez la suite de tests sur le même serveur, ou peut-être un code Javascript signé). 

8
Jonathan Arkell

Découvrez Postman - https://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcm/ . C’est un outil sur lequel j’ai travaillé au cours des derniers mois et dernièrement, grâce au retour d’information que je reçois, il devient très utile pour les grands projets REST tout en aidant aux tests de base des paramètres REST.

Le code correspondant est également disponible sur Github. https://github.com/a85/POSTMan-Chrome-Extension

8
Abhinav

Le moyen le plus simple de tester le service Web REST consiste à utiliser curl dans un terminal.

J'ai utilisé certains codes pour tester mon service Web de Rails . Vous pouvez les modifier pour les adapter à vos services.

GET

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 (avec tous les champs): 

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 (avec le champ seulement être édité):

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

SUPPRIMER dans les rails avec identifiant fourni  

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

Je ne l'ai pas encore testée, mais cette application Java semble être agréable pour tester les services REST. Il existe également un tutoriel sur Javalobby à ce sujet.

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

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

4
Valentin Jacquemin

vous pouvez également utiliser le simple REST client, une extension de Google Chrome également https://chrome.google.com/webstore/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb } _

3
Chuck Mah

SOA Cleaner est un outil de test qui teste à la fois le savon et le repos (également WCF, mais il semble que vous n’ayez pas besoin de cette fonctionnalité). C'est très intuitif et utilisable. Écrit en .NET. Une version gratuite est également disponible. peut être téléchargé à partir de http://xyrow.com . Bonne chance!

2
Clangon

J'utilise l'extension de la console REST pour Google Chrome et c'est de loin le meilleur que j'ai essayé . Il prend également en charge divers mécanismes de sécurité, tels que OAuth.

(mise à jour 2: lien de réparation)

1
Michael Bavin

Pour Java, il existe aussi RESTFuse , ce qui permet de développer des tests unitaires qui peuvent ressembler à ceci:

@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);
}

Ce test est exécuté sur http://localhost:8080/rest/status et s’authentifie en tant qu’utilisateur joe avec le mot de passe doe. Le corps de la méthode vérifie ensuite que l'appel GET renvoie un code d'état 200.

1
Heiko Rupp

Je teste des services RESTful avec un framework .NET interne (aucun problème pour le porter en Java). Principes de base:

  • construire le client (pour faire les appels)
  • construire des classes de types (XML et JSON)
  • désérialiser la réponse
  • affirmer des choses

Si vous voulez plus d'informations, je suis heureux de parler. 

1

Je sais que la question est très ancienne, mais pourrait être utile aux autres. Juste pour répondre à votre première question, vous pouvez vérifier ici pour obtenir des services Web REST à tester. 

Les plugs Fiddler et Poster de Firefox peuvent être utilisés pour tester n’importe quel service Web REST. SoapUI est également fourni avec le support des services Web RESTful. 

0
Manoj

J'enquête actuellement sur l'application CLI de wsclient à cette fin ( http://wso2.org/library/3362 ). Il est assez prometteur et peut être utilisé pour pirater un test rapide d’une bash Shell. Bien sûr, comme beaucoup d’entre eux l’ont mentionné ici, de nombreux outils fournis avec un système * nix s’acquitteront de la tâche avec un minimum de codage/script.

0
verboze

J'ai écrit un programme spécialement pour tester les services Web REST. C'est une application assez simple écrite en .NET 2.0 (je ne l'ai testée que sous Windows Vista, mais devrait également fonctionner sur XP). L'application utilise HttpWebRequest pour effectuer des demandes et affiche la réponse obtenue, ainsi que les en-têtes de la demande et de la réponse. J'ai fait quelques tests, mais je pensais que cela pourrait vous aider à tester vos services Web.

REST Test

0
Ian Hopkins

J'utilise JMeter pour cela, notamment pour les tests de charge. Cela ressemble à SoapUI (que j'ai également utilisé), mais il est plus orienté vers le test des pages Web, ce qui le rend assez décent pour le test des services RESTful également.

0
Mike Desjardins

Essayez la httplib de Python. C'est très simple, vous spécifiez la méthode, l'URL et utilisez urllib.urlencode pour les paramètres/le corps du POST.

Ceci peut être combiné avec le module unittest intégré si vous le souhaitez, pour signaler les erreurs.

0
Andy

Si vous aimez utiliser Ruby, il existe un gem REST-Client for it 

Pour les testeurs, je trouve que Ruby est un langage très facile à apprendre et qu'il dispose d'excellents outils comme Cucumber pour effectuer des tests d'acceptation de style BDD. 

0

Il est facile de tester REST des services Web complets.] Des ajouts gratuits sont disponibles dans les navigateurs en tant que client REST à partir duquel vous devez envoyer un service Web avec le type de méthode attendu/requis : GET/POST/PUT/DELETE Si les paramètres correspondent, la sortie est générée dans le corps du navigateur.enter image description here

0
mohit sarsar

J'ai essayé de nombreux REST clients et le meilleur que j'ai utilisé est l'application Chrome: DHC .

DHC (aka Dev HTTP Client) est conçu et développé par un développeur pour les développeurs afin de faciliter la découverte, la manipulation et le test des ressources HTTP directes. Outre la fonction principale, envoi/réception de requêtes/réponses HTTP personnalisées, il permet de sauvegarder en permanence une requête dans un référentiel local pour une utilisation ultérieure. De plus, la déclaration de requête peut inclure des variables spécifiques au contexte. Avec l'utilisation de contextes, vous pouvez facilement basculer entre différents environnements sans modifier la déclaration de demande. (par exemple, d'un environnement de test à la production)

0
Andaris

Pour les tests REST avancés, vous pouvez essayer HttpMaster .
Il prend en charge les paramètres dynamiques, les visualiseurs conviviaux pour XML/JSON et divers types de validations de données de réponse pouvant être combinés en expressions logiques.
Pour les requêtes http de base, un plugin de navigateur suffit.

0
Joxi