web-dev-qa-db-fra.com

Quelle est la meilleure façon de tester les services WCF?

J'ai utilisé cet outil fourni par Microsoft avec Visual Studio car il est rapide et sale

http://msdn.Microsoft.com/en-us/library/bb552364.aspx

Mais c'est un peu maladroit et difficile à travailler. Y a-t-il d'autres clients de test utiles que vous utilisez et qui ne nécessitent pas de créer un nouveau projet Visual Studio et de compiler du code?

EDIT: Je recherche plus un outil de test graphique que je peux utiliser pour faire des tests ad hoc rapides de systèmes dans nos différents environnements sans avoir à écrire un tas de tests différents.

41
Nick

SoapUI est un autre outil de test de service Web. Je le recommande fortement.

16
Darin Dimitrov

Vous ne trouverez pas de meilleur outil pour créer des tests automatisés de services WCF que d'utiliser votre framework de test unitaire préféré et d'écrire des tests. Le client de test ni soapUI ne créeront un test pouvant s'exécuter dans un scénario d'intégration continue.

8
John Saunders

WCFStorm est utile pour tester la façon dont vous décrivez.

5
Kirsten Pasha
2
user1824408

J'ai exécuté WcfStorm avec son évaluation de 15 jours et j'en suis impressionné. Connectez-vous au service et toutes les méthodes sont exposées. Cliquez sur une méthode et vous pouvez créer plusieurs cas de test. Une fois que vous avez terminé, vous pouvez enregistrer ces tests (va conserver le mien en tant que fichier de solution avec le service) et lorsque vous apportez des modifications, vous pouvez exécuter tous les tests qui satisfont aux tests continus. Il dispose également d'une ligne de commande qui devrait vous permettre de vous intégrer dans votre machine de build pour de vrais tests continus.

Il prend également en charge IronPython afin que vous puissiez ajouter la suppression des enregistrements de votre test si vous êtes bon avec ce langage de script.

1
Mikhael

Il y a ce nouveau client de test appelé SOA Cleaner, je vous recommande de l'essayer. Il prend en charge WCF. Peut être trouvé à: http://xyrow.com .

1
Clangon

Eh bien, je finis par écrire des tests unitaires dans MS test. Avant chaque test, le service est hébergé par l'assembly de test, puis déchiré après. Bien sûr, ce ne sont pas des tests unitaires, donc les puristes vont frémir, mais cela signifie que je peux exécuter des tests aussi souvent que je le souhaite.

1
blowdart

Je ne voulais pas laisser entendre que soapUI ne fonctionne pas pour un service WCF exposé à l'aide de basicHttpBinding. L'utilisation de basicHttpBinding fonctionnerait car le service fonctionnerait comme un service Web legaxy ASMX. Cependant, si l'on veut passer la liaison (ou utiliser plusieurs liaisons) à netTcpBinding par exemple, je ne pense pas qu'il serait toujours possible d'invoquer les méthodes de ce service en utilisant soapUI. Le scénario que je décris est assez courant dans lequel vous avez un service WCF exposé sur le Web en utilisant le point de terminaison basicHttpBinding pour une interopérabilité maximale, et un autre point de terminaison comme netTcpBinding (pour les performances maximales) utilisé uniquement en interne.

1
fhunder

WCFStorm incroyable, mais je pense que c'est trop cher pour un développeur indépendant.

Comme l'a dit Darin, je recommande également soapUI.

Mais il y a un cas particulier, que soapUI ne supporte pas la demande JSON lorsque vous utilisez REST dans WCF et envoyez la demande comme un message POST.

Dans ce cas, vous pouvez utiliser un outil que j'ai trouvé ici:

Test automatisé WCF RESTful JSON

0
Jordi

Si vous avez besoin de tester la logique client: vous pouvez utiliser le cadre de simulation/isolation pour bloquer les appels réels vers le serveur et utiliser un cadre de test unitaire pour écrire les tests unitaires appropriés.

Le test de la logique du serveur peut être encore plus facile - tout ce dont vous avez besoin est de tester l'appel à la logique métier et les appels de remplacement aux composants externes (c'est-à-dire la base de données).

Il n'y a aucun avantage réel à tester de manière unitaire l'interaction complète entre le client et le serveur car vous savez que WCF fonctionne à la place, ajoutez des tests d'intégration de tout l'environnement sur un serveur/clients dédié.

0
Dror Helper