J'écris des tests d'acceptation pour valider un système et son accès aux données se fait à travers des appels de service Web.Regroupement d'appels de service Web .NET?
Malheureusement, parce que je fais tant d'appels, si vite, je lance dans l'erreur suivante
System.Net.Sockets.SocketException: Une seule utilisation de chaque adresse de socket (protocole/adresse réseau/port) est normalement autorisé
J'ai localement mis en cache autant d'appels que possible, mais ce n'est pas suffisant. Je ne peux pas simuler ou me moquer de ces appels. Ils doivent être réels pour que ce niveau de tests soit valide.
Existe-t-il un moyen de regrouper les appels de service Web fréquents?
Ou de vérifier si une connexion peut être établie au service avant de tenter l'appel, et attendre jusqu'à ce qu'un socket disponible existe?
En production, les appels ne sont jamais effectués à cette vitesse, donc le problème ne se pose pas ... mais il serait bien d'avoir du code en place pour permettre aux tests de fonctionner, et de limiter ou de partager les connexions .
Merci
Utilisez-vous les services WCF ou les anciens services ASMX? Comment faites-vous les appels? Comment les cachez-vous? –
Exécutez-vous ce test sur un serveur distant ou sur le serveur Web hébergeant le service? Assurez-vous d'exécuter ces tests à distance. – jwmiller5
@John, Ils sont vieux ASMX.La mise en cache se fait sur les méthodes qui font l'appel, bref, ils gardent la trace des appels et gardent le résultat en mémoire, et au lieu d'appeler le web-service une seconde fois avec les mêmes paramètres, il renvoie l'objet en mémoire . – CaffGeek