Testing de Performance con JMeter

Iniciado por ANTRAX, Marzo 24, 2012, 10:14:06 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Marzo 24, 2012, 10:14:06 AM Ultima modificación: Marzo 24, 2012, 10:19:07 AM por ANTRAX
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Introducción:

Resumiendo un poco, Los testing de performance permiten conocer el mal desempeño de alguna aplicación.JMeter es uno de los programas más usados a la hora de hacer un testing de performance ya que es muy fácil de manejar. Carece de un buen reporte de resultados, pero aun así muestra todos los resultados necesarios para este tipo de testing.JMeter se puede usar para aplicaciones que manejen estos protocolos:

Web – HTTP, HTTPS
SOAP
Database via JDBC
LDAP (Lightweight Directory Access Protocol)
JMS (Java Message Service)Mail – POP3

Cabe aclarar que JMeter funciona con todos los navegadores.Sin más nada que decir, empezaremos a usarlo.

Primeros pasos con JMeter

Empezaremos descargando JMeter de su página oficial: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta Es una herramienta Open source y se darán cuenta cuando la descarguen.Una vez descargada, la descomprimimos y vamos al directorio bin y ejecutamos el archivo llamado jmeter.bat y veremos una pantalla similar a la siguiente imagen:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Para comenzar, añadiremos un grupo de hilos, que es el que contendrá todos los pasos a testear.Para ello vamos:
Plan de Pruebas  >>  Añadir  >>  Hilos (Usuarios)  >>  Grupo de Hilos
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Colocamos un nombre para identificarlo:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Como se puede ver, se puede aumentar el número de hilos, cada cuantos segundos queremos que se corran las iteraciones, etc.Ahora crearemos un banco de trabajo. Para ello clickeamos sobre Banco de trabajo con el click derecho del mouseY nos dirigimos a:
Añadir  >>  Elementos NoDePrueba  >>  Servidor Proxy HTTP
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Ahora configuraremos la conexión entre el programa y el navegador para que JMeter pueda recibir todo lo que se escucha por un puerto específico
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Como se puede ver, el primer recuadro rojo es para el puerto, este mismo puerto es el que debemos colocar en nuestro navegador.El segundo cuadro es para el Controlador Objetivo, en el cual pondremos el hilo que hemos creado en el plan de pruebas. Como se pueden crear muchos hilos, debemos seleccionar cual es el que deseamos grabar en ese momento. Entonces todo lo que naveguemos quedara guardado en ese controlador de objetivo que seleccionemos.Finalmente se puede excluir algunas extensiones. Yo en mi caso saque las imágenes, Pero eso ya es opcional.Una vez que tengamos hecho eso, configuraremos el navegador. Yo usare Firefox.Nos vamos a:
Herramientas  >>  Opciones
En las opciones avanzadas, vamos a la pestaña Red y entramos a las configuraciones de la conexión:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Seleccionamos la configuración manual del proxy, y en Proxy HTTP, colocamos localhost y en puerto, debemos poner el mismo que habíamos puesto en JMeter. Que en mi caso es el 8080.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Una vez que tenemos esto, damos aceptar.Volvemos al JMeter y ahora presionamos en Arrancar para empezar a grabar los pasos.
Grabando los pasos
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Ahora si podemos comenzar a navegar para guardar los pasos.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Una vez que finalizamos de hacer el recorrido de navegación, o los pasos a testear, frenamos el JMeter para dejar de grabar
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Bueno, con esto ya hemos grabado todos los pasos. Ahora vamos a ver un poco los resultadosSi miramos en la izquierda, aparece el icono del hilo y con una chincheta que se puede abrir
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Haciendo click en ella, podremos ver todos los pasos y todo lo que paso por entre medio al navegar.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Obteniendo resultadosAhora solo nos queda ver en que tiempo responde la navegación y demás. Para ello, añadimos un reporte de resumenCon el click derecho del mouse en Plan de Pruebas
Añadir  >>  Receptor  >>  Reporte Resumen
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Y como podemos ver, se añade debajo del hilo
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Ahora solo nos queda correr el hilo y ver los resultados.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Damos click en Arrancar, que es el botón verde con el Play y esperamos los resultados
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
En el reporte podemos ver los valores de respuesta de cada elemento de la página, si hay porcentaje de error y demás.Así como añadimos en este caso reporte de resumen, JMeter permite hacer graficas y otros reportes bastantes útiles que se añaden de la misma forma que el que acabamos de ver.A demás como dije antes, se pueden añadir iteraciones para simular el ingreso de más de un usuario a la aplicación y ver como responde esta.Espero que les haya gustado este paper y que les sea útil!
ANTRAX


Hola

Tengo un problema con mis pruebas.
Necesito grabar y probar un proceso de registro de expedientes, pero cuando llego a la parte de grabar los datos me sale un error.
Copio detalle del error que se presenta:

java.lang.NullPointerException
   at IpasWeb.Mark.Edit.MarkEditControllerImpl.updateEntityFromPage(MarkEditControllerImpl.java:4132)
   at IpasWeb.Mark.Edit.EditTrademarkSaveAllChanges._updateCurrentMarkFromPage(EditTrademarkSaveAllChanges.java:216)
   at IpasWeb.Mark.Edit.EditTrademarkSaveAllChanges.execute(EditTrademarkSaveAllChanges.java:121)
   at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
   at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
   at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
   at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
   at org.andromda.presentation.bpm4struts.ActionServlet.doPost(ActionServlet.java:48)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
   at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
   at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206)
   at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
   at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
   at IpasWeb.ApplContext.LoginFilter.doFilter(LoginFilter.java:57)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
   at webcontrol.CharsetFilter.doFilter(CharsetFilter.java:22)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
   at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
   at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
   at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
   at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
   at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
   at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
   at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
   at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
   at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
   at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
   at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
   at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
   at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
   at No tienes permitido ver los links. Registrarse o Entrar a mi cuenta(SelectionKeyContextTask.java:59)
   at No tienes permitido ver los links. Registrarse o Entrar a mi cuenta(ContextTask.java:71)
   at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
   at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
   at No tienes permitido ver los links. Registrarse o Entrar a mi cuenta(Thread.java:745)

Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta podrías poner un poco mas de info?
Como por ejemplo un screenshot?

Saludos!


necesita actualizar el contenido o funciona con el programa actualizar