Desde JMeter podemos realizar un test de aplicaciones que ofrecen servicios web mediante SOAP. La diferencia con las pruebas de una aplicación web normal, es que en vez de simular una navegación deberemos crear manualmente las peticiones al servicio web.
En estos casos no podemos capturar la cadena de llamadas y tendremos que crear de manera explicita cada una de las llamadas HTTP que queramos realizar a nuestro servicio SOAP.
Para ello crearemos una petición HTTP por cada petición SOAP que realicemos.
Una vez tengamos creada la petición HTTP deberemos configurarla de la siguiente manera:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:umu:eadmin:servicios:capacitacion:esquema" xmlns:ns2="urn:umu:eadmin:services:common:schema"> <soapenv:Header/> <soapenv:Body> <urn:ObtieneInformacionCapacidadRequest Perfil="?"> <NIF>xxxxxxx</NIF> <EntradasOpcionales> <ns2:ClaimedIdentity> <ns2:Name>xxxxxxx/TEST</ns2:Name> </ns2:ClaimedIdentity> <ns2:DevuelveCapacidadCompleta/> </EntradasOpcionales> </urn:ObtieneInformacionCapacidadRequest> </soapenv:Body> </soapenv:Envelope>
Tras configurar la petición deberemos ir, en el árbol de la petición al elemento HTTP Header Manager y crear la variable SOAPAction para que concuerde con el servicio al que queremos llamar
En caso de tener que hacer varias peticiones, es suficiente con ir poniéndolas unas detrás de otras y guardar las respuestas en variables si fuera necesario usarlas en algún punto del test.
Para los servicios REST la configuración es similar, pero lo que se envía y recibe depende del tipo de intercambio definido por el servicio (texto plano, Json, XML…)