Professional Documents
Culture Documents
Hola compañeros en el día de hoy vamos a trabajar con la aplicación JMETER. Antes de
empezar una introducción y la interpretación de lo que significa para nosotros.
INTRODUCCIÓN
JMETER permitirá controlar y manejar las concurrencias de la base de datos, esto hará
más eficiente el control y la administración de las instancias. Y permitirá resolver
problemas como los cuellos de botellas, datos erróneos o inclusive bloqueos errados.
El concepto para el laboratorio es ese, sin embargo cabe aclarar que sirve para mucho
más. Pero bueno eso lo veremos más adelante.
Java Database Connectivity, más conocida por sus siglas JDBC, es una API que permite
la ejecución de operaciones sobre bases de datos desde el lenguaje de programación
Java, independientemente del sistema operativo donde se ejecute o de la base de
datos a la cual se accede, utilizando el dialecto SQL del modelo de base de datos que
se utilice.
El API JDBC se presenta como una colección de interfaces Java y métodos de gestión
de manejadores de conexión hacia cada modelo específico de base de datos. Un
manejador de conexiones hacia un modelo de base de datos en particular es un
conjunto de clases que implementan las interfaces Java y que utilizan los métodos de
registro para declarar los tipos de localizadores a base de datos (URL) que pueden
manejar. Para utilizar una base de datos particular, el usuario ejecuta su programa
junto con la biblioteca de conexión apropiada al modelo de su base de datos, y accede
a ella estableciendo una conexión; para ello provee el localizador a la base de datos y
los parámetros de conexión específicos. A partir de allí puede realizar cualquier tipo de
tarea con la base de datos a la que tenga permiso: consulta, actualización, creación,
modificación y borrado de tablas, ejecución de procedimientos almacenados en la base
de datos, etc.
CONCEPTO
Como se mencionó el JDBC es una API que permitirá la ejecución de operaciones sobre
base de datos utilizando el lenguaje JAVA. Significa lo siguiente, como ustedes sabrán
el lenguaje de programación JAVA y la base de datos ORACLE son del mismo
proveedor. Pero más allá de ese hecho la base de datos ORACLE en el trasfondo utiliza
sentencias SQL y está basada en ese lenguaje la mayoría de operaciones. La ventaja de
utilizar esta aplicación es que no solo funciona con ORACLE si no que se puede
emplear cualquier base de datos que utilice sentencias SQL. Por eso es que la
herramienta está diseñada para ser utilizada en aplicaciones WEB principalmente, la
prueba básicamente consiste en simular conexiones y ver cómo se comporta la
aplicación.
INSTALACIÓN DE JMETER
http://jmeter.apache.org/usermanual/build-db-test-plan.html
Ahora descomprimimos esos archivos. Les dejo el Link de la página oficial de JMETER
de por cierto es muy buena.
http://jmeter.apache.org/download_jmeter.cgi
Una vez descomprimido ya podemos abrirlo, sin embargo hay que tener en cuenta que
en el caso de nosotros ya teníamos instalado el JDBC con el SQLDEVELOPER, por lo
que no es necesario instalar esa excepción.
Otra aspecto a tener en cuenta son las variables de entorno, simplemente es irnos a
propiedades del sistema y CONFIGURAR el JAVA_HOME.
Eso ya lo habíamos realizado pero igual les dejo las imágenes para que vayan de la
mano con el curso. No les voy a mentir se ha avanzado bastante y podemos llegar a
perdernos por momentos. Por eso siempre les recalco los CONCEPTOS para que
puedan desarrollar todas las actividades.
En mi caso la aplicación abrió, pero vamos a ver si todo marcha sobre ruedas durante
la marcha.
Antes de continuar algo interesante, la versión más reciente de JMETER contiene el
JDBC, por lo que solamente tenemos que preocuparnos por la instalación del JAVA y la
configuración de las variables de entorno.
De hecho en la imagen de arriba podemos ver todos los servicios que soporta el
Jmeter.
PLAN DE PRUEBAS
Una vez hecho todo lo anterior aparecerá una nueva venta en nuestro árbol y es la de
la configuración JDBC. Pero para esta configuración en particular necesitamos unos
conceptos previos para que lograr configurar con éxito la conexión JDBC. Entonces la
idea de hoy es lograr entender y terminar todo el laboratorio.
Conceptos que se aprenderán hoy, hoy vamos a saber la importancia del JDK, donde se
encuentra el JDBC y otros conceptos que más adelante iremos adelantando.
QUE ES JDK, JRE Y JVM
JVM es la aplicación donde corren los programas hechos en JAVA, es nativa del sistema
operativo lo que significa que cada SO tiene su JVM independiente con características
obviamente diferentes. Cabe aclarar que con esta herramienta no es posible
desarrollar, solo puede desplegarse aplicaciones.
JRE es el complemento del JVM se puede decir que son las herramientas o el material
necesario para instalar el JVM y es el proceso del sistema operativo que permite correr
las aplicaciones.
Entonces el JRE es el software en sí que permite crear los registros y las llaves para que
la máquina virtual se mantenga en ejecución.
JAVA DEVELOPMENT KID
El JDK comprende todo lo anteriormente dicho y mucho más, es conocido como KID
para desarrolladores y en el podemos generar códigos y crear programas siempre y
cuando tengamos nociones del lenguaje de programación JAVA. En otras palabras
permite generar casi cualquier aplicación y lo más importante establecer los
parámetros para que otras computadores visualicen el proyecto, y entre esos
requisitos puede estar el tener instalado JAVA 7 o más reciente con sus complementos
por default como los JVM y JRE.
Todos los conceptos son muy importantes debido a que la aplicación JMETER utiliza
sentencias SQL combinadas con comandos JAVA para crear las pruebas de
concurrencias y si no tenemos claridad con respecto a ello, se puede convertir en un
dolor de cabeza. Cuando instalamos el SQLDEVELOPER instalamos gran parte de todo
lo mencionado anteriormente, entonces esto facilitara el proceso pero si no es el caso
tenemos que buscar esos paquetes e instalarlos, si quieren ahorrar tiempo con tan
solo que instalen el JDK es suficiente.
La configuración que vamos a ver a continuación varia respecto al SGDB que estemos
utilizando, pero prácticamente todos cumplen la misma lógica. En el caso de nosotros
el enfoque principal será en ORACLE.
Toda la configuración importante se reduce a la imagen anterior, el URL de la base de
datos es la conexión JDBC-ORACLE y algo importante la conexión puede ser remota,
siempre se utiliza el puerto 1521 y el nombre de la base de datos. Hasta el momento
no parece nada extraño, pero antes de todo esto tenemos que cargar el DRIVER y aquí
es cuando se complica la situación. Donde encontramos ese DRIVER.
En todos los motores de bases de datos encontraremos esos drivers, pero hay que
buscarlos. Les voy a enseñar la ruta en el caso de ORACLE.
Hay que tener muy en cuenta esa carpeta JDBC, porque en teoría ese el DRIVER para
crear la conexión entre el JMETER y la base de datos.
Como pueden ver en la imagen de arriba, están todos los DRIVERS. Listo pero ahora
como se configura eso. Sencillo nos dirigimos al JMETER.
PETICIÓN JDBC
Para crear una petición JDBC, nos dirigimos al grupo de hilos y seleccionamos la
pestaña muestre ador y por ultimo seleccionamos la pestaña petición JDBC.
Si todo sale bien, se desprenderá otra ventana con una nueva petición JDBC. Para esta
prueba necesitaremos dos peticiones que simularan consultas de dos usuarios a las
tablas EPS y PERSONA. Entonces vamos bien y haber que sucede!!!!
Antes de continuar las imágenes de las dos tablas con las que desarrollaremos el
ejercicio.
Lo primero es colocar el nombre con el que queremos identificar esa petición, después
el nombre de la variable es mismo nombre que colocamos en la conexión JDBC. y por
último, pero lo más importante es la sentencia SQL.
Por ultimo coloco los argumentos, pero realmente no tengo mucha claridad con
respecto a ese tema.
POR ÚLTIMO LOS INFORMES
ESTO ES SUMAMENTE IMPORTANTE
Los receptores principales desde mi punto de vista son los que se ven en la imagen
anterior. A los receptores no hay que configurarles nada.
REPORTE RESUMEN
Entonces para correr la prueba guardamos primero, por último damos clic en el icono
ver Play/Ejecutar.
Por último el contador de bucle que significa, buen aquí si entra un poco la lógica,
supongamos que el bucle va a ser 15. Eso significa que cada usuarios va a tener que
realizar el proceso 15 veces. Me explico en este caso solo se maneja un usuario que
tiene 20 hilos pero como el proceso se repite 15 veces entonces se multiplica
20*15=300 conexiones durante un periodo de 10 segundos. Para ello lo que hacemos
es 300/10=30 conexiones promedio durante cada segundo.
Vamos a realizar la prueba, para que logren entender el proceso. Recuerden al final es
importante captar el JMETER desde su plenitud.
En este caso hay dos usuarios o dos consultas simultáneas. Entonces segundo eso
datos el número total de conexiones es 300*2=600 total de conexiones. Para saber el
promedio de las conexiones por segundo es simplemente dividir 600/10 = 60
conexiones cada segundo. Y este análisis lo podemos observar en el reporte resumen.
Como pueden observar en la imagen de arriba todo concuerda. Eso significa que
efectivamente si estamos haciendo las cosas bien. Este tema es bastante profundo y es
de continuo estudio pero en general lo hemos hecho sobresaliente.
Vamos a crear el plan de pruebas y en general todo el ejercicio, manos a la obra con la
aplicación JMETER.
CONSULTA 1:
Listado con el número de identificación, nombre y apellido de las personas, además del
nombre de la EPS y la fecha de ingreso y salida.
CONSULTA 2:
Listado en que se visualiza las EPS con el nombre de los servicios que presta y el costo
de cada uno ellos.
BEGIN; SELECT e.nombre, t.descripcion, s.detalle, s.valor FROM eps e INNER JOIN
servicioeps s on e.ideps=s.ideps INNER JOIN tipoServicio t on
s.idtiposervicio=t.idtiposervicio ORDER BY e.nombre COMMIT;
CONSULTA 3:
Listado con el número de identificación, nombre y apellido de las personas, además del
tipo de afiliación que tiene.
-------------------------------------------------------------------------------------------------------------------
Ante empezar con JMETER es necesario asegurarnos que esas consultas realmente se
pueden realizar, porque de lo contrario estaríamos perdiendo nuestro tiempo.
CONSULTA 1
Tabla EPS
Tabla PERSONA
Tabla HISTORIALPERSONAL
CONSULTA 1
CONSULTA 2
Tabla EPS
Tabla SERVICIOEPS
Tabla TIPOSERVICIO
CONSULTA 3
Tabla PERSONA
Tabla HISTORIALPERSONAL
Tabla TIPOAFILIADO
Una vez sea corroborada las consultas se pasa al JMETER para iniciar con la última fase
del laboratorio.
JMETER EJERCICIO FINAL
Por último se realizaran varias pruebas con el fin de analizar el comportamiento de la
base de datos, pero más específicamente la instancia de la secretaria de SALUD.
PLAN DE No de Rendimiento
Desviación Media mediana
PRUEBA muestras / minuto
1. 30 10 197,239 17 12
2. 75 10 463,154 15 10
3. 150 9 908,907 15 10
4. 300 5 1795,332 12 9
5. 750 162 2859,867 67 13
6. 1500 524 3469,278 266 15
7. 3000 4367 3503,65 5493 6834
8. 4500 3905 3601,537 8402 9113
9. 6000 6158 3041,774 7462 9906
10. 9000 El servidor detuvo, se paralizo la operación debido a la
11. 12000 sobrecarga de peticiones.
Para controlar ese problema existen muchos mecanismos, entre ellos esta: