Jmeter Calidad Software

Introducción JMeter es un proyecto de Apache que puede ser utilizado como una herramienta de prueba de carga para analiz

Views 44 Downloads 0 File size 203KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Introducción JMeter es un proyecto de Apache que puede ser utilizado como una herramienta de prueba de carga para analizar y medir el desempeño de una variedad de servicios, con énfasis en aplicaciones web. JMeter puede ser usado como una herramienta de pruebas unitarias para conexiones de bases de datos con JDBC, FTP, LDAP, Servicios web, JMS, HTTP y conexiones TCP (Transmission Control Protocol) genéricas. A veces se clasifica JMeter como herramienta de "generación de carga". JMeter soporta aserciones para asegurar que los datos recibidos son correctos, por lo que es una herramienta de realización de pruebas automáticas. JMeter es una herramienta de testing cuyas funcionalidades se pueden resumir en tres: a) Diseñar un testplan, esto es, generar un fichero. jmx b) Ejecutar un testplan. c) Ver de distintas formas los resultados de la ejecución de un testplan (vía listeners) Para diseñar un testplan, JMeter dispone de una interfaz GUI a modo de diseñador, en la que el tester puede ir agregando componentes de manera visual, y ejecutar los componentes agregados, viendo el resultado. Una vez finalizado el diseño del testplan, la herramienta permite grabar este como un fichero. jmx. La interfaz gráfica de usuario, conocida también como GUI (del inglés graphical user interface), es un programa informático que actúa de interfaz de usuario, utilizando un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. Reseña Histórica: Stefano Mazzocchi de la Apache Software Foundation fue el desarrollador original de JMeter. Lo escribió principalmente para probar el rendimiento de Apache JServ (un proyecto que desde entonces ha sido reemplazado por el proyecto Apache Tomcat). Rediseñamos JMeter para mejorar la GUI y agregar capacidades de prueba funcional. JMeter se convirtió en un proyecto Apache de nivel superior en noviembre de 2011, lo que significa que tiene un Comité de gestión de proyectos y un sitio web dedicado.

Datos técnicos históricos Licencia: Apache License 2.0 Escrito en: Java Versiones estables: 5.1.1 / 13 de marzo de 2019; hace 5 meses Desarrollador: Apache Software Foundation

Requerimientos: Para realizar pruebas de Carga con JMeter ante todo se debe de tener en cuenta. Hardware PC de 1 GB o superior de RAM. Software Instalación de una máquina virtual de Java. Sobre la Aplicación que se Somete a Pruebas: Hardware ● Datos sobre la velocidad y la capacidad del servidor de la aplicación. ● Distancia del servidor al laboratorio de pruebas.

Software ● Datos de software de la aplicación. ● Tipo de conexión y velocidad.

Para Interpretar los Resultados: ● ● ● ●

Cantidad de usuarios concurrentes que necesita soportar la aplicación. Tiempo de respuesta en situaciones de carga de una transacción. Tiempo de recuperación del sistema. Caso de prueba.

El proyecto debe realizar el caso de prueba donde describa los escenarios significativos que serán sometidos a la prueba. Dígase camino básico a realizar para llegar hasta esos escenarios.

El futuro:

Esperamos ver que las capacidades de JMeter se expandan rápidamente a medida que los desarrolladores aprovechen su arquitectura conectable. El objetivo principal de futuros desarrollos será: a) Soporte de protocolo HTTP / 2 b) Posible retrabajo de la arquitectura central para introducir un grupo de subprocesos o cambiar a un modelo asíncrono que nos permita aprovechar async io c) Mejoras en los protocolos de servicios web (REST / SOAP) d) Mejoras en la implementación del protocolo JMS Versiones de Jakarta JMeter

Versiones de Jakarta JMeter Versión

Fecha lanzamiento

de Descripción

1.0.2

9 de marzo de 2001

La primera archivo

10.253.65.65DRF 4

19 de marzo de 2008

Última versión

2.3RC3

11 de julio de 2007

2.3RC4

2 de septiembre de 2007

2.3

24 de septiembre de 2007

2.3.1

28 de noviembre de 2007

2.3.2

10 de junio de 2008

2.3.3

24 de mayo de 2009

2.3.4

21 de junio de 2009

Java 1.4+

en

2.4

14 de julio de 2010

Java 5+

2.5

17 de agosto de 2011

Java 5

2.5.1

3 de octubre de 2011

Java 5+

2.6

1 de febrero de 2012

Java 5+

2.7

27 de mayo de 2012

Java 5+

2.8

6 de octubre de 2012

Java 5+

2.9

28 de enero de 2013

Java 6+

2.10

21 de octubre de 2013 Java 6+

2.11

5 de enero de 2014

2.12

10 de noviembre de Java 6+ 2014

2.13

14 de marzo de 2015

Java 6+

3.0

17 de mayo de 2016

Java 7+

3.0

19 de noviembre de Java 7+ 2016

Java 6+

Características generales de Apache JMeter

● Una GUI amigable. Resulta fácil de utilizar y no lleva tiempo familiarizarse con la interfaz del programa. ● Plataforma independiente. El programa es Java 100%, por lo tanto, puede ejecutarse en múltiples plataformas. ● Multi-threading. JMeter permite el muestreo simultáneo de diferentes funciones por un grupo de hilos diferente. ● El resultado de la prueba se puede visualizar en un formato diferente como gráfico, tabla, árbol y archivo de registro. ● Altamente extensible. JMeter también admite complementos de visualización que permiten ampliar nuestras pruebas. ● Estrategia de pruebas múltiples. JMeter admite muchas estrategias de prueba, como la prueba de carga, las pruebas distribuidas y las pruebas funcionales. ● JMeter también permite la ejecución de pruebas distribuidas entre distintos ordenadores, que actuarán como clientes. ● Simulación. Esta aplicación puede simular múltiples usuarios con subprocesos simultáneos, crear una gran carga contra la aplicación web bajo prueba. ● Soporte de protocolo múltiple. No solo es compatible con las pruebas de aplicaciones web, sino que también evalúa el rendimiento del servidor de la base de datos. Todos los protocolos básicos como HTTP, JDBC, LDAP, SOAP, JMS, FTP, TCP, etc … son compatibles con JMeter. ● Record & Playback registra la actividad del usuario en el navegador. ● Script Test. JMeter se puede integrar con Bean Shell & Selenium para pruebas automatizadas. ● Licencia de código abierto. Este programa es totalmente gratuito. Si queremos conocer el código fuente o más en profundidad las características de esta aplicación, podemos consultar la página de GitHub del proyecto.

En todo proyecto de desarrollo software es muy importante la realización de planes de pruebas que garanticen que se cumplen los requisitos funcionales de la aplicación. Pero no todo el trabajo de un QA son las pruebas funcionales. Además de éstas, existen otras que pueden marcar la calidad de una aplicación: de seguridad, de usabilidad, de rendimiento. Las pruebas de rendimiento son, desde la perspectiva más evidente, las que se realizan para determinar lo rápido que un sistema realiza una tarea en unas determinadas condiciones de trabajo. ¿Para qué sirven las pruebas de rendimiento? Para alcanzar un buen nivel de rendimiento de un sistema es fundamental que las pruebas comiencen en el inicio del desarrollo del software. Al igual que en las pruebas funcionales, el coste de solucionar defectos se ve aumentado conforme más se tarde en detectarlos. Además, si queremos que los resultados sean lo más fiables posible, nuestro entorno de pruebas debe ser lo más parecido posible al de producción, y no cruzarlo nunca con el de desarrollo ni el de otras pruebas. La pruebas de rendimiento sirven, entre otras cosas, para:

● ●

Demostrar que el sistema cumple los criterios de rendimiento.

● ●

Comparar dos sistemas para saber cuál de ellos funciona mejor.

Validar y verificar atributos de la calidad del sistema: escalabilidad, fiabilidad, uso de los recursos. Medir qué partes del sistema o de carga de trabajo provocan que el conjunto rinda mal.

Tipos de prueba de rendimiento: Prueba de Carga.- Éste es el tipo más sencillo de pruebas de rendimiento. Una prueba de carga se realiza generalmente para observar el comportamiento de una aplicación bajo una cantidad esperada de peticiones. Esta carga puede ser el número esperado de usuarios concurrentes, utilizando la aplicación que realizan un número específico de transacciones, durante el tiempo que dura la carga. Esta prueba puede mostrar los tiempos de respuesta de todas las transacciones importantes de la aplicación. Si también se monitorizan otros aspectos como la base de datos, el servidor de aplicaciones, etc., entonces esta prueba puede mostrar el cuello de botella en la aplicación.

Prueba de estrés.- Se utiliza normalmente para romper la aplicación. Se va doblando el número de usuarios que se agregan a la aplicación y se ejecuta una prueba de carga hasta que se rompe. Este tipo de prueba se realiza para determinar la solidez de la aplicación en los momentos de carga extrema. Esto ayuda a los administradores para determinar si la aplicación rendirá lo suficiente en caso de que la carga real supere a la carga esperada.

Prueba de estabilidad (Soak Testing).- Normalmente se hace para determinar si la aplicación puede aguantar una carga esperada continuada. Generalmente esta prueba se realiza para determinar si hay alguna fuga de memoria en la aplicación.

Prueba De Pico (Spike Tessting).- La prueba de picos, como el nombre sugiere, trata de observar el comportamiento del sistema variando el número de usuarios, tanto cuando bajan como cuando tiene cambios drásticos en su carga. Esta prueba se recomienda que sea realizada con un software automatizado que permita realizar cambios en el número de usuarios mientras que los administradores llevan un registro de los valores a ser monitorizados.

Metodología

Según Microsoft Developer Network, la metodología de las pruebas de rendimiento consiste en las siguientes actividades:

1. Identificar el entorno de pruebas. Identificar el entorno físico de pruebas y el entorno de producción, así como las herramientas y recursos de que dispone el equipo de prueba. El entorno físico incluye hardware, software y configuraciones de red. Tener desde el principio un profundo conocimiento de todo el entorno de prueba permite diseños de pruebas más eficientes. Facilita también la planificación y ayuda a identificar problemas en las pruebas en fases tempranas del proyecto. En algunas situaciones, este proceso debe ser revisado periódicamente durante todo el ciclo de vida del proyecto.

2. Identificar los criterios de aceptación de rendimiento. Determinar el tiempo de respuesta, el rendimiento, la utilización de los recursos y los objetivos y limitaciones. En general, el tiempo de respuesta concierne al usuario, el rendimiento al negocio, y la utilización de los recursos al sistema. Identificar

3.

4.

5. 6.

7.

cuáles serían criterios de éxito de rendimiento del proyecto para evaluar qué combinación de la configuración da lugar a un funcionamiento óptimo. Planificar y diseñar las pruebas. Identificar los principales escenarios, determinar la variabilidad de los usuarios y la forma de simular esa variabilidad, definir los datos de las pruebas y establecer las métricas a recoger. Consolidar esta información en uno o más modelos de uso del sistema a implantar, ejecutarlo y analizarlo. Configurar el entorno de prueba. Preparar el entorno de prueba, las herramientas y recursos necesarios para ejecutar cada una de las estrategias, así como las características y componentes disponibles para la prueba. Asegurarse de que el entorno de prueba se ha preparado para la monitorización de los recursos según sea necesario. Aplicar el diseño de la prueba. Desarrollar las pruebas de rendimiento de acuerdo con el diseño del plan. Ejecutar la prueba. Ejecutar y monitorizar las pruebas. Validar las pruebas, los datos de las pruebas y recoger los resultados. Ejecutar pruebas válidas para analizar, mientras se monitoriza la prueba y su entorno. Analizar los resultados, realizar un informe y repetirlo. Consolidar y compartir los resultados de la prueba. Analizar los datos, tanto individualmente como con un equipo multidisciplinario. Volver a priorizar el resto de las pruebas y a ejecutarlas en caso de ser necesario. Cuando todas las métricas estén dentro de los límites aceptados, ninguno de los umbrales establecidos hayan sido rebasados y toda la información deseada se ha reunido, las pruebas han acabado para el escenario definido por la configuración.

Referencias Linkográficas: Nikolas Bravo(5 nov. 2015),Pruebas de Carga & Stress: JMeter: https://www.youtube.com/watch?v=CdH9Y3MQ33g

Methods & Tools Software Development Magazine(2010) Apache JMeter - Open Source Functional and Load Testing Tool: http://www.methodsandtools.com/tools/tools.php?jmeter JUNTA DE ANDALUCÍA (01/03/2013),Introducción a JMeter: Conceptos Básicos:

http://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/388#Interfaz_GU I Gustavo Terrera(2016), JMETER (I). PRIMEROS PASOS: https://testingbaires.com/2011/10/23/jmeter-primeros-pasos/ programador novato(15 oct. 2017), 02.- Prueba de carga a una página con jmeter: https://www.youtube.com/watch?v=T8mWjZmVQPU Por Cecilio Álvarez Caule(24 abril, 2014) , “Introducción a JMeter y pruebas de carga” : https://www.arquitecturajava.com/introduccion-jmeter-y-pruebas-de-carga/ Apache JMeter (2019), http://jmeter.apache.org/index.html (PAGINA OFICIAL) ejemplo:https://sdos.es/blog/pruebas-de-rendimiento-con-jmeter-ejemplos-basicos riptutorial(2019), APACHE JMETER: https://riptutorial.com/Download/apache-jmeter-es.pdf