Test REST webservices [fermé]
mon organisation travaille à la construction de RESTful webservices sur l'appserveur JBoss. L'équipe QA est habituée à tester les services web de SOAP en utilisant SoapUI. SoapUI a une nouvelle version qui a des capacités de repos. Nous envisageons l'aide que.
- y a-t-il des services RESTful accessibles au public disponibles gratuitement sur le net que quelqu'un pourrait tester ?
- quels sont les outils disponibles(et utilisés) pour les essais? RESTful web services ?
24 réponses
s'il vous plaît essayer Firefox Addon Poster , qui est simple à utiliser et vous permet de fonctionner et rapidement
vous pouvez exercer des services web en utilisant des bits assez triviaux de Python. Selon votre niveau de sécurité, Vous pouvez simplement utiliser les urllib
ou urllib2
de Python pour faire vos demandes de repos et examiner vos réponses.
de plus, vous pourriez vouloir utiliser Python unittest
pour contrôler l'exécution des tests Python de vos services de repos.
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 passer par l'authentification digest pour chaque demande. C'est assez complexe, mais je peux partager l'essence si c'est intéressant.
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 qu'il est bon. Vous pourriez utiliser une variété d'outils pour cela (dans shell scripting land, piping l'en-tête et le contenu aux fichiers, et les diffuser pourrait tout simplement faire l'affaire). Il ne serait pas si difficile de peaufiner l'ensemble d'outils, peut-être en cumulant avec le cadre de test de l'Unité de votre choix.
j'ai construit un panneau de test rest webservice avec l'AJAX. Il n'était pas difficile du tout, en fait. Vous avez quelques problèmes de sécurité à régler (par exemple, s'assurer que vous avez la suite de test sur le même serveur, ou peut-être signé Javascript.)
pour tester un service de repos vous pouvez essayer repos assuré ce qui rend très simple de tester les services de repos et de valider la réponse en Java (en utilisant JUnit ou TestNG).
découvrez Facteur - https://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcm/ . Il s'agit d'un outil sur lequel j'ai travaillé au cours des derniers mois et récemment, d'après les commentaires que j'ai reçus, il devient très utile pour les grands projets de repos tout en aidant avec les tests de base des points de fin de repos.
le code correspondant est également disponible sur Github. https://github.com/a85/POSTMan-Chrome-Extension
la façon la plus simple de tester le service REST web est d'utiliser curl
dans le terminal.
il y a des codes que j'ai utilisés 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 rills: 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'id 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é, mais cette application Java semble être agréable pour tester les services REST. Il y a aussi un tutoriel sur Javalobby à ce sujet.
Java App: http://code.google.com/p/rest-client /
Tuto: http://java.dzone.com/announcements/wiztoolsorg-restclient-21-rele
vous pouvez utiliser le Client REST Simple est une extension pour 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 (aussi WCF, mais il semble que vous n'avez pas besoin de cette fonctionnalité). Il est très intuative, et utilisable. C'est écrit .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 maison (aucun problème de portage en Java). Principes de base:
- client de construction (pour faire les appels)
- construire des classes de type (XML et JSON)
- désérialiser réponse
- d'affirmer des trucs
si vous voulez plus d'informations, je suis heureux de parler.
j'utilise REST console extension pour Google Chrome et c'est de loin le meilleur que j'ai essayé. Il supporte également divers mécanismes de sécurité comme OAuth
(mise à jour 2: correction lien)
pour java, il existe aussi RESTFuse , 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 s'exécute contre http://localhost:8080/rest/status
et s'authentifie comme utilisateur joe avec mot de passe doe. Le corps de la méthode vérifie ensuite que L'appel GET renvoie un code de statut 200.
j'ai utilisé JMeter pour cela, en particulier pour des choses comme les essais de charge. Il est similaire à SoapUI (que j'ai également utilisé), mais orienté plus vers les pages Web de test, ce qui le rend assez décent à tester les services RESTful, aussi.
j'ai écrit un programme spécifique pour tester les services REST Web. C'est une application assez simple écrite dans .NET 2.0 (Je l'ai seulement testé sur Windows Vista, mais devrait fonctionner sur XP aussi). L'application utilise HttpWebRequest pour faire des requêtes, et affiche la réponse résultante, ainsi que les en-têtes pour la requête et la réponse. J'ai fait un peu de tests, mais j'ai pensé qu'il pourrait vous aider à tester vos services web.
j'enquête actuellement sur WSClient CLI app à cet effet ( http://wso2.org/library/3362 ). Il est très prometteur, et peut être utilisé pour pirater un test rapide à partir d'un shell bash. Bien sûr, comme beaucoup l'ont mentionné ici, la plupart des outils qui viennent avec un système * nix feront le travail avec un peu de codage /scripting
si vous aimez utiliser Ruby il ya un REST-client gem pour elle
pour les testeurs, je trouve que ruby est une langue très facile à apprendre, et il a quelques outils excellents comme le concombre pour faire des tests D'acceptation de style BDD.
j'ai essayé de nombreux clients REST et de loin le meilleur que j'ai utilisé est L'application Chrome: DHC .
DHC (alias Client HTTP Dev) 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 directs des ressources HTTP. En plus de la fonction principale, envoyer/recevoir des requêtes/réponses HTTP personnalisées, il permet de sauvegarder en permanence une requête vers un dépôt local pour une réutilisation ultérieure et de plus la déclaration de requête peut inclure des variables spécifiques au contexte. Avec l'utilisation de contextes, vous pouvez facilement passer d'un environnement à l'autre sans modifier la déclaration de requête. (par exemple, d'un environnement d'essai à la production)
test repos services web complets est une tâche facile à faire. Les annonces gratuites sont disponibles sur les navigateurs comme Client REST d'où vous devez envoyer un service web avec type de méthode attendue/requise: GET / POST / PUT / DELETE Si les paramètres sont appariés alors la sortie sera générée dans le corps de navigateur.
je sais que c'est une question très ancienne, mais qui pourrait être utile à d'autres. Juste pour répondre à votre première question, vous pouvez cocher ici pour obtenir un peu de repos webservices à tester.
Fiddler et plug Poster dans Firefox peut être utilisé pour tester tous les services REST web. SoapUI est également livré avec le soutien de RESTful webservices.
pour les tests de repos avancés, vous pouvez essayer HttpMaster .
il supporte les paramètres dynamiques, les visionneuses conviviales pour XML/JSON, et divers types de validations de données de réponse qui peuvent être combinés en expressions logiques.
Pour les requêtes http de base, un certain plugin de navigateur sera suffisant.