Question

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

  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?
Était-ce utile?

La solution

soapUI fera également l'affaire, consultez cet article de blog pour commencer.

Autres conseils

S'il vous plaît, essayez l'addard de Firefox Poster, qui est simple à utiliser et vous permet de fonctionner rapidement

Vous pouvez exercer des services Web en utilisant des morceaux de Python assez triviaux. En fonction de votre sécurité, vous pourrez peut-être simplement utiliser urllib ou urllib2 de Python pour faire des requêtes REST et examiner vos réponses.

De plus, vous pouvez utiliser unittest pour contrôler l'exécution des tests Python de vos services 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 utilise urllib2 pour transmettre l’authentification Digest à chaque requête. C'est assez complexe, mais je peux partager l'essentiel si c'est intéressant.

Découvrez Fiddler

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 leur qualité. Vous pouvez utiliser divers outils pour cela (dans les scripts de shell, lier l'en-tête et le contenu aux fichiers, et les différencier peut faire l'affaire). Il ne serait pas si difficile d’affiner le jeu d’outils, peut-être de les empiler 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 la suite de tests est installée sur le même serveur, ou peut-être que le code Javascript est signé.)

Pour tester un service REST, vous pouvez essayer REST Assured , ce qui le rend très simple. pour tester les services REST et valider la réponse en Java (à l'aide de JUnit ou TestNG).

Découvrez Postman - https://chrome.google.com/webstore/detail/fdmmgilgnpjj / . C’est un outil sur lequel je travaille depuis plusieurs 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 facilitant les tests de base des terminaux REST.

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

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 s’adapter à vos services.

OBTENIR

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 dans 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 l'identifiant fourni

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

Je ne l'ai pas encore testée, mais cette application Java semble être intéressante 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

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

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!

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 passer les appels)
  • classes de type de construction (XML et JSON)
  • désérialiser la réponse
  • affirmer des choses

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

J'utilise extension de la console REST pour Google Chrome et de par 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 correction)

Pour Java, il existe également RESTFuse , ce qui permet de développer des tests unitaires pouvant 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 fonctionne sur http: // localhost: 8080 / rest / status et s'authentifie en tant qu'utilisateur joe avec mot de passe doe. Le corps de la méthode vérifie ensuite que l'appel GET renvoie un code d'état 200.

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 de POST.

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

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

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 sous 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 essais, mais je pensais que cela pourrait vous aider à tester vos services Web.

Test REST

J'enquête actuellement sur l'application CLI wsclient à cette fin ( http://wso2.org/library/3362 ). C'est assez prometteur et peut être utilisé pour pirater un test rapide à partir d'un shell bash. 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 une friandise de codage / script

Si vous aimez utiliser Ruby, un bijou REST-Client est disponible

.

Pour les testeurs, je trouve que le ruby ??est un langage très facile à apprendre. Il dispose d’excellents outils, tels que Cucumber, pour effectuer des tests d’acceptation de style BDD.

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

  

DHC (alias 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 ré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)

Il est facile de tester les services Web complets REST. Des add-ons gratuits sont disponibles sur 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 sera générée dans le corps du navigateur. entrez la description de l'image ici

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 plug-ins 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.

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

OnionTest toujours en version bêta, mais très utile

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top