Comment tester un service Web WCF avec JMeter?

J’ai un service Web WCF hébergé sur IIS qui expose une seule méthode qui prend trois parameters entiers. J’ai un client simple, basé sur une console, qui peut appeler cette méthode.

int InsertNewOrder(short quantity, int custID, int productID); 

Si ma compréhension est correcte, je dois fournir à JMeter une enveloppe SOAP avec les détails de la méthode à appeler et les parameters à transmettre. J’ai vu de nombreux exemples similaires à ci-dessous:

 ;   ${1} ${1} ${1}    

Cependant, en regardant ma documentation WSDL, je ne vois pas où il fait référence à aucun des parameters nécessaires pour passer à la méthode. J’ai également utilisé Fiddler pour examiner les messages de soap du client au service. Encore une fois, je ne vois pas où cela passe les parameters. Par conséquent, je ne sais pas comment créer une simple enveloppe SOAP que je peux utiliser avec JMeter pour tester ce service.

Quelqu’un peut-il expliquer pourquoi la documentation WSDL ne fournit aucun détail sur les parameters de méthode ou explique comment je peux créer l’enveloppe SOAP nécessaire pour une utilisation avec JMeter?

Je code en C # avec VS 2010, JMeter 2.4, IIS v6, wsHttpBinding.

Clause de non-responsabilité: je ne suis pas un expert en WSDL, je ne peux donc pas vous dire pourquoi la doc ne fournit pas de détails.

Pour générer l’enveloppe SOAP pour JMeter, j’ai utilisé la version gratuite de soapUI.

 Steps: 1. Import WSDL into soap 2. Create a default request for the method 3. Set the request view to RAW, and copy into JMeter 

Cela me fournit toutes les informations dont j’ai besoin pour jmeter, y compris les parameters, l’agent utilisateur, le point final, etc.

Utilisez “HTTP Proxy Server” de JMeter pour enregistrer les appels WCF avec votre client de test normal, puis relisez-les plus tard lors des tests. C’est ce que j’ai expérimenté comme étant le plus rapide et qui donne les meilleurs cas de test (parce que vous les enregistrez avec votre client normal, ou le client test de choix).

Configurez le serveur proxy HTTP JMeters conformément aux instructions . Assurez-vous ensuite que le client WCF (ou tout autre client SOAP) utilise ce proxy. La partie importante de la configuration du client WCF est (remplacez my … par la configuration normale):

   ...   ...     

proxyServerName est localhost, si le client WCF s’exécute sur le même ordinateur que JMeter (normal lors de la création des cas de test).

De plus, j’ai reçu un message d’erreur à l’aide du proxy HTTP, si je n’ai pas désactivé la sécurité, comme indiqué ci-dessus. Les mêmes parameters de sécurité doivent également figurer sur le serveur de service WCF.

Bon test! 🙂