Conceptos básicos de JMeter
1. Introducción a Jmeter
--->Genere informes de prueba en diferentes formatos
Tome las pruebas de rendimiento WEB como ejemplo: jmeter se puede utilizar como servidor web y navegador Una puerta de enlace proxy entre navegadores para capturar las solicitudes del navegador y las respuestas del servidor web para que los scripts de prueba de rendimiento se puedan generar fácilmente. Con el script de prueba de rendimiento, jmeter puede simular la presión de usuarios reales que acceden al servidor web a través de subprocesos. Esto es básicamente consistente con el principio de funcionamiento de LoadRunner (enviar una solicitud al servidor; obtener el resultado devuelto por la solicitud del servidor)
2. Descarga e instalación de JMeter
1 Requisitos del entorno de instalación
Unix (Solaris, Linux, etc), Windows (98, NT, 2000, XP, WIN8)
2. Descarga e instalación de JDK
<. p> Haga clic derecho en Propiedades de la computadora -> Configuración avanzada del sistema->Propiedades del sistema->Avanzado->Variables de entorno->Agregue las siguientes variables del sistema:Valor de la variable: D:Archivos de programaRuta de instalación de Javajdk1.8.0_92jdk
Valor de variable: .;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar
Ejecute cmd->Ingrese java -version->Si se muestra la versión de Java , significa que la instalación de jdk fue exitosa
3, descarga e instalación de JMeter
4. Configuración del entorno JMeter
Valor de la variable: E: apache-jmeter-4.0 (que es la ruta guardada por jmeter, es decir, la ruta de descompresión de jmeter)
Por ejemplo: JMETER_HOME=D:apache-jmetesapache-jmeter-4.0
Valor de variable: p>
;%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib /jorphan.jar;%JMETER_HOME%/lib/logkit-2.0.jar
5. Varios aspectos importantes archivos en el directorio Bin de Jmeter
6. Inicie Jmeter
3. Introducción a los componentes de JMeter (componentes comunes de JMeter)
1. Plan de prueba (Plan de prueba)
Nota: ¿Qué es un elemento?
Los diferentes componentes de JMeter se denominan Elementos. Cada elemento está diseñado para un propósito específico.
2. Grupo de subprocesos (Subprocesos)
Por ejemplo, si el número de subprocesos se establece en 100, JMeter creará y simulará 100 solicitudes de usuario al servidor bajo prueba
Todos los controladores y muestreadores están bajo un determinado grupo de subprocesos
3. Controlador lógico (Controlador lógico)
El controlador lógico permite definir el procesamiento en subprocesos El orden de las solicitudes; . Permite controlar "cuándo" las solicitudes de los usuarios se envían al servidor web. Por ejemplo, puede utilizar un controlador aleatorio para enviar solicitudes HTTP al servidor de forma aleatoria.
Por ejemplo: cuando recibimos correos electrónicos, solo necesitamos iniciar sesión en el buzón una vez para ver varios correos electrónicos.
Si implementamos este escenario en Jmeter, necesitamos controlar la cantidad de inicios de sesión. ¿Cómo lograr esto? Solo se puede realizar un controlador de tiempo en el controlador lógico Jmeter. Por supuesto, no existe sólo este controlador, hay muchos otros controladores para satisfacer nuestras diversas necesidades.
Además del valor de bucle especificado para el "grupo de subprocesos", el controlador de bucle hace que el sampler se ejecute un cierto número de veces. Por ejemplo, si
agrega una solicitud HTTP a un controlador de bucle con un recuento de bucles de 50
configure el recuento de bucles del "Grupo de subprocesos" en 2
luego, JMeter enviará un total de ***50 * 2 = 100 solicitudes HTTP.
Excepto por el valor del bucle = 2, que especificaste para el grupo de hilos anterior. Entonces JMeter enviará un total de ***2 * 50 = 100 solicitudes HTTP.
Otro ejemplo: establezca el número de bucles en 3 en el grupo de hilos y configure la prueba de bucle en 2 en el controlador de bucle,
Es decir : bucle y control de bucle del grupo de subprocesos El controlador tiene una relación padre-hijo y el controlador de bucle solo es válido para solicitudes secundarias
Nota: el bucle del script de grabación es el bucle coordinado en el bucle controlador
como nodo secundario del controlador de bucle, solo se ejecutará un controlador en la primera iteración de cada bucle
Solicitud HTTP, solicitud FTP, solicitud JDBC
Estas 3 solicitudes deben ejecutarse 5 veces. JMeter Se enviará un total de *** 5 solicitudes de usuario al servidor Baidu.
En orden, las solicitudes se envían en el siguiente orden: solicitud HTTP -> solicitud FTP -> solicitud JDBC, en orden aleatorio para cada ciclo, las solicitudes se envían aleatoriamente, solicitud FTP -> solicitud HTTP -> JDBC request O solicitud JDBC -> Solicitud FTP -> Solicitud HTTP, etc.
4. Elemento de configuración (elemento Config)
Por ejemplo, CVS Data Set Config, que puede ayudarnos a leer pruebas a partir de datos de archivos. Además, Jmeter también proporciona muchas funciones para ayudarnos a generar datos dinámicos.
Cache Manager), registra automáticamente la información de caché devuelta por el servidor. En pocas palabras, proporciona datos preliminares al muestreador y luego el muestreador
emite una solicitud.
Ingrese diferentes credenciales de inicio de sesión. Esta información de inicio de sesión (por ejemplo, nombre de usuario, contraseña) se puede almacenar en un archivo de texto. JMeter tiene un elemento que le permite leer diferentes parámetros de este archivo de texto. Es una "Configuración de conjunto de datos CSV" que lee líneas de un archivo y las divide en variables.
Este es un ejemplo de datos CSV. Este es un archivo de texto que contiene el usuario y la contraseña utilizados para iniciar sesión en el sitio web de destino.
La contraseña se almacenará como una cookie en su computadora. La próxima vez que visite www.baidu.com, no será necesario volver a iniciar sesión, ya que el navegador utilizará su cookie como datos de usuario para iniciar sesión.
El administrador de cookies almacena automáticamente esta cookie y la utiliza para todas las solicitudes futuras a ese sitio web específico.
Este elemento le permite establecer el valor predeterminado utilizado por el controlador de solicitudes HTTP
nombre del servidor = google.com
PD: Hay una excepción en el Orden de ejecución. El elemento de configuración "Variable definida por el usuario" siempre se ejecuta durante la fase inicial de la prueba, independientemente de su posición en el árbol de prueba. Por eso recomiendo personalmente ponerlo al principio del grupo de hilos.
5. Temporizador (temporizador fijo: tiempo para pensar)
JMeter solicita crear un usuario 100 veces
Entre cada solicitud de usuario el retraso es de 5000 milisegundos p>
6. Preprocesadores (por procesadores)
7. Samplers (muestras)
"Descargará archivos" por FTP o se enviará una solicitud de "carga de archivos" al servidor FTP.
JMeter envía el comando FTP al servidor FTP ftp.example.com y luego descarga el archivo Test.txt del servidor.
Puedes configurar JMeter para enviar consultas SQL a este servidor para recuperar datos.
Si quieres probar tu servidor de correo, puedes utilizar el muestreador SMTP. Este sampler se utiliza para enviar correos electrónicos utilizando el protocolo SMTP
8. Postprocesadores
9. Afirmaciones
Los lectores LR de JMeter utilizados deben conocer el punto de control Función, que puede ayudarnos a determinar si la solicitud se devuelve correctamente y cumple con los requisitos. En Jmeter, no lo llamamos punto de control, lo llamamos afirmación. Aquellos que han estado en contacto con selenio también entenderán este concepto. Es utilizar un resultado preestablecido (valor, expresión, duración de tiempo y otras condiciones) para que coincida con el resultado real. Si coincide, tendrá éxito; de lo contrario, fallará.
APLICAR a: Ámbito de aplicación
Muestra principal y submuestras: actúa sobre el muestreador del nodo principal y el muestreador del subnodo correspondiente
Solo muestra principal: solo Actúa en el muestreador del nodo principal
Solo submuestras: actúa solo en el muestreador del nodo secundario
Variable JMeter: actúa sobre la variable jmeter (el nombre de la variable jmeter se puede ingresar en el cuadro de entrada)
Campos de respuesta a probar: Elementos a verificar
Mensaje de respuesta
Documeng(texto): Archivo de prueba
Ejemplo de URL
Código de respuesta
Información de respuesta
Encabezados de respuesta: encabezados de respuesta
Ignorar estado: ignora el código de estado del mensaje de respuesta devuelto
Reglas de coincidencia de patrones:
Incluir: el resultado devuelto incluye el contenido que especificó
Coincidencia: (Parece que no hay muchas comprobaciones con Iguales, por lo que No puedo entender la diferencia)
Igual: el resultado devuelto es consistente con el resultado que usted especificó
Subcadena: el resultado devuelto es una cadena del resultado especificado
No: No hay coincidencias
Modo a probar: complete los resultados que especificó (puede completar varios) y agregue y elimine botones para administrar el contenido especificado
10. Oyente (Listener)
El oyente "Graph Results" muestra el tiempo de respuesta del servidor en un gráfico
El "View Results Tree" muestra los resultados de las solicitudes de los usuarios en HTML básico formato (Ver árbol de resultados)
Al visualizar en el árbol de resultados, podemos ver los resultados de cada solicitud, donde las rojas son solicitudes fallidas y las verdes se pasan.
Nombre del hilo: Nombre del grupo de hilos
Inicio de muestra: Hora de inicio
Tiempo de carga: Tiempo de carga
Latencia: Tiempo de espera
p>Tamaño en bytes: el tamaño total de los datos enviados
Tamaño de los encabezados en bytes: el tamaño del resto de los datos enviados
Recuento de muestras: envío de estadísticas
Recuento de errores: Estadísticas de errores de interacción
Código de respuesta: Código de retorno
Mensaje de respuesta: Información de devolución
Encabezados de respuesta: Información del encabezado devuelto
El verde aquí significa que la solicitud fue aprobada y el valor de retorno es 200. Si aparece el rojo, significa que la solicitud falló. En este momento, puede ver los resultados a través de los resultados del muestreador y. datos de respuesta a la derecha.
Ver resultados en la tabla
4. Secuencia de ejecución de los componentes
Dentro del mismo alcance del nombre de dominio (independientemente del controlador lógico), los componentes del plan de prueba se ejecutan en el siguiente orden.
(1) Elementos de configuración (config elements)
(2) Preprocesadores (Por-procesadores)
(3) Temporizadores (timers) p>
(4) Sampler (Sampler)
(5) Postprocesadores (Postprocesadores) (a menos que el resultado de retorno obtenido por Sampler esté vacío)
(6 ) Afirmaciones (a menos que el resultado obtenido por Sampler esté vacío)
(7) Oyentes (a menos que el resultado obtenido por Sampler esté vacío)
Preguntas
1. ¿Por qué utilizar jmeter? ¿En qué puede ayudarnos?
Jmeter se utiliza principalmente para pruebas de interfaz y de rendimiento. Admite muchos protocolos. Es una herramienta muy conveniente y rápida para probar la concurrencia de bases de datos y http. p>
2. ¿Cuándo usaremos jmeter?
· En un proyecto es posible que no hayamos completado el desarrollo antes y queramos echar un vistazo a los datos correspondientes del servidor.
· Por ejemplo, si verificamos si la base de datos ha sido verificada, podemos omitir el front-end
· Queremos ver cuánta concurrencia tienen la interfaz o múltiples interfaces y qué el rendimiento es.
3. ¿Quién lo está usando? ¿Por qué lo está usando?
Los usuarios generales son desarrolladores o testers.
Código abierto y gratuito, escrito en base a Java, se puede integrar en otros sistemas para expandir varios complementos funcionales
Admite pruebas de interfaz, pruebas de estrés y otras funciones, admite grabación y reproducción y es fácil de comenzar
p>
En comparación con escribir su propio marco u otras herramientas de código abierto, tiene una interfaz de usuario más completa, que es conveniente para la depuración de la interfaz
Soporte multiplataforma, se puede ejecutar en Linux, Windows y Mac
4. ¿Qué necesitas saber sobre el uso de jmeter? ¿Cómo lidiar con la conexión entre interfaces?
· Debemos comprender el principio de funcionamiento de la interfaz
· Necesitamos dominar los principios de solicitud de obtención y publicación en http
· Necesitamos dominar el encabezado de solicitud, encabezado de respuesta y solicitud ¿Qué significa cada campo y cuál es el significado de cada generación del valor de retorno del campo?
·¿Qué significan los códigos de estado de respuesta?
·¿Qué es json?
· Método de diseño de casos de prueba de interfaz y puntos de tiempo de prueba
La conexión entre interfaces:
Existe una conexión entre interfaces, como la anterior El valor de retorno de la interfaz es el parámetro de entrada de la siguiente interfaz, por lo que debemos asignar una variable al valor de retorno de la interfaz anterior para que llame la siguiente interfaz.
5. ¿Cómo se comparan los resultados esperados y los resultados reales al usar jmeter?
· Todas las pruebas que hacemos no son más que comparar los resultados esperados con los resultados reales. Si los resultados esperados se comparan con los resultados reales, entonces la interfaz está disponible. Si no son iguales, entonces. hay un problema con la interfaz.
·En jmeter, utilizamos aserciones para comparar los resultados reales y los resultados esperados. Proporciona muchos métodos de aserción, el más utilizado de los cuales son las aserciones de respuesta. Más adelante escribiré específicamente sobre las aserciones de respuesta y el uso de. algunas afirmaciones comunes.
· También necesitamos saber ¿cuál es el contenido de nuestra afirmación en jmeter? Esto es muy importante
7. ¿Qué mejoras hemos realizado con jmeter? ¿Cuál es la dirección principal de jmeter?
· Tener una mejor comprensión del principio de transmisión mutua de datos entre todo el front-end y el back-end
· Puede mejorar la eficiencia de las pruebas, participar temprano, descubrir problemas temprano y Reducir el costo de desarrollo, acortar todo el ciclo de lanzamiento del producto, brindar tiempo suficiente para realizar pruebas y garantizar la calidad del producto.
·Dominio de los puntos de prueba de las pruebas de interfaz y del método de diseño de casos de uso.
La dirección principal de las pruebas de jmeter:
· Se utiliza para pruebas de rendimiento y pruebas de estrés
· Pruebas de interfaz