lunes, 10 de junio de 2013

Puebas de carga y rendimiento con SOAPUI y WSO2.

En esta entrada veremos cómo podemos usar SOAPUI para realizar pruebas sobre los servicios web.
Usaremos el servicio creado en la entrada anterior, pueden usar el servicio seguro o inseguro, como gusten.

Seleccionan un mensaje request y le dan clic derecho y seleccionan “Add to TestCase”


Ahí le ponen un nombre o dejan el que está, porque estaremos creando una suite de pruebas y luego un caso de prueba. Verán entonces lo siguiente:

Les aparecen varias opciones, algunas son aserciones que permiten validar contra el XSD definido dentro del servicio, en el caso de la segunda opción que la marcaré, y en el caso de la primera se valida que el mensaje de respuesta  sea un mensaje SOAP y no un SOAPFault por ejemplo.
Luego dan OK.

Como verán se agrega una suite de prueba con un caso de prueba que tiene además un paso de prueba que se corresponde con la operación que usamos como base.

Si hacen una prueba verán como les devuelve un mensaje de respuesta válido. Además de que nos pone en verde las 2 aserciones que especificamos cuando creábamos el caso de prueba.

Ahora daremos clic derecho encima de “Load Test” y seleccionamos “New Load Test” , ponen un nombre y verán lo siguiente:


Ahora debemos ajustar los parámetros en funcion de nuestras necesidades.
Si queremos simular varios clientes consumiendo el servicio, vamos a la opción señalada en negro, por defecto aparecen 5 pero ustedes puedan variar ese número a discreción, tengan en cuenta que mientras más hilos más consumo del CPU.

Si queremos especificar una demora entre una petición y otra vamos a la opción señalada en rojo. Tengan en cuenta que es en milisegundos.

Si queremos determinar el tiempo de duración del servicio vamos a la opción señalada en verde y aquí se muestra que solo durará 60 segundos pero pueden cambiarla para especificar la cantidad de peticiones por hilo por ejemplo.

Luego es solo cosa de correr la prueba, como mismo se ejecuta una petición a un servicio y esperar los resultados.

En este caso hice una prueba con solo 1 hilo, con una demora de 1ms y con 100 ejecuciones por hilo. Ustedes varíen a su discreción y revisen sus resultados.

10 comentarios:

  1. Buen post está bien explicado pero hoy en día hay muchos programas de prueba de rendimiento y de pruebas de carga como agileload y otros que uno no sabe cual es el ideal para realizar este tipo de trabajo probaré con este programa.

    ResponderEliminar
  2. La herramienta SOAPUI es de las más recomendadas para las pruebas en los servicios web. viene de una suite de herramientas muy poderosas y con numerosos premios en este tema.

    ResponderEliminar
  3. Buenas noches quisiera saber como hago para validar que el resultado fue correcto

    ResponderEliminar
    Respuestas
    1. Antes de correr pruebas como estas debes definir casos de prueba, o sea primero tienes que tener claro los Requerimientos No Funcionales, RNF, de tus servicios. Estos RNF pueden ser el tiempo de respuesta, la latencia, nivel de concurrencia, seguridad, comportamiento en caídas ante fallos, etc, ... Y es entonces con estos RNF ya definidos que diseñas tus casos de prueba, que no es otra cosa que un documento donde defines pruebas bajo diferentes ambientes para comprobar que tus servicios web responden a tus RNF, y a estas pruebas es que sometes atus servicios web y esperas que se comporten acorde a los RNF definidos. Si cuando ejecutes las pruebas estos no se comportan como definiste sabes que tienes algo que resolver..

      Puedes incluir también que tus servicios cumplan con determinados estándares y el SOAPUI, si incluye esta validación la tendrá en cuenta siempre que se lo indiques.

      Eliminar
  4. Buenas tardes, quería hacerles una pregunta. ¿Cómo podría yo simular lo que hace SOAP desde un archivo web?

    Me explico, me gustaría poder automatizar tareas de testeo en una página web, de la que internamente no conozco nada de su programación, para mí es como una caja "negra".

    Si lo hago manualmente puedo validar un valor, pero me gustaría poder cargar un archivo en el que habrá varios campos a validar. No sé qué hace internamente el SOAPui para simular esto.

    Claro, ya se que me van a decir, que primero compruebe un valor, desde fuera,y que luego, ya me meta a comprobar de forma recursiva.

    muchas gracias de antemano.

    ResponderEliminar
  5. Hola buen día, espero alguien pueda ayudarme. estoy realizando pruebas de una interfaz por webservice , en esta prueba trato de enviar infpormacion de un punto a otro, es decir, hacer un request de 200 registros, pero al ejecutar SoapUI , el proceso no realiza nada, solo se queda como Response Failed, alguien pudiera orientarme si es problema de configuracion de soapui o algo que pueda ayudarme, se los agradezco. Saludos. Hugo Franco

    ResponderEliminar
  6. una duda en varios de mi request tengo un dato identificador, el cual debe ser único, como puedo modificar o programar ese dato para que cambie automáticamente durante la prueba, esto si quiero hacer una prueba de 3000 en un tiempo de 5 minutos

    ResponderEliminar
  7. Buenos días, quiero saber como puedo hacer que por hilo se envíe una tan sola petición, ya que coloque 1 en parámetro hilo, y reviso los logs de mi servicio y encuentro registrado 16 peticiones...(nadie mas que yo lo esta usando) y necesito sacar una estadística de cuanto se estresa mi servicio con 50 peticiones al mismo tiempo...

    ResponderEliminar
  8. ¿Porque no me carga SOAPUI? le clickeo para abrir y no lo abre, me habian comentado que al actualizarse un archivo de la carpeta se quita y hay que moverlo de otra pero no se que archivo es y solo así carga

    ResponderEliminar