Compartir tecnología

jmetro distribuido (4)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. interfaz gráfica de usuario

La interfaz gráfica de usuario de jmeter se utiliza principalmente para depurar scripts.

1. Primero cree el script usando GUI

Primero haz un guión
Demostración: ¿Cómo escribir un guión para una escena mixta?
Utilice un ratio de negocio de 211

①Inicie el servicio de base de datos

Servicios de bases de datos: incluidos mysql, redis
puerto mysql predeterminado 3306

netstat -lntp | grep 3306
  • 1

En estado de escucha, 6379 es el puerto predeterminado de redis

netstat -lntp | grep 6379
  • 1

Puerto de servicio del proyecto 18089

netstat -lntp | grep 18089
  • 1

②Accede a la arrogancia del documento de la interfaz

El 211 se puede convertir en dos servicios de pruebas de estrés.

Una es registrarse, la otra es registrarse e iniciar sesión para agregar productos.
Ambos son 50%

③Agregar grupo de hilos

jmeter—agregar grupo de subprocesos-agregar-subproceso-grupo de subprocesos-usuario

Convertir dos servicios de pruebas de estrés

④Agregar controlador de rendimiento

jmeter—controlador lógico agregado—controlador de rendimiento

Convierta dos servicios de pruebas de estrés.
La primera prueba de estrés empresarial incluye registrarse, iniciar sesión y agregar productos.
La segunda prueba de estrés para el negocio es el registro.

Insertar descripción de la imagen aquí

50% cada uno
Insertar descripción de la imagen aquí

⑤Agregar solicitud http de muestra

solicitud-http-agregar-sampler-jmeter
Convertir dos servicios de pruebas de estrés
Insertar descripción de la imagen aquí

La primera prueba de estrés empresarial incluye registrarse, iniciar sesión y agregar productos.

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

El segundo negocio es el registro.

Escriba de acuerdo con la arrogancia de registro, ingrese los parámetros
Insertar descripción de la imagen aquí
Generalmente, no es necesario completar el ID al insertarlo.
Tampoco es necesario completar Addtime
Copie y pegue los datos del parámetro en jmeter
Insertar descripción de la imagen aquí

ruta basada en URL
Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

⑥Agregue el administrador de encabezados http,

Todos pasan json
Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

⑦Agregar valor predeterminado de solicitud http

Complete la ip y el puerto según el documento de la interfaz
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

⑧Agregue un oyente y vea el árbol de resultados

Insertar descripción de la imagen aquí

⑨Agregar afirmación

Lo mejor es agregar afirmaciones.

Insertar descripción de la imagen aquíInsertar descripción de la imagen aquí

2. Sin interfaz gráfica de usuario

-nEjecutar jmeter en modo sin interfaz gráfica de usuario
-t ejecuta la ubicación del archivo de prueba. Especifica el script para ejecutar jmeter. No está en la ruta actual. Es necesario escribir la ruta completa.
-l especifica el archivo de resultados generado, que es un archivo jtl
-e Una vez completada la prueba, genera un informe de prueba.
-o especifica la ubicación de almacenamiento del html del informe de prueba
-r inicio remoto

1. Prensa de una sola máquina

①Solicitar prensa

Instale jdk y jmeter en linux press
Instalar bajo usr/local
Cargue directamente jmeter en la ventana a la prensa de Linux, porque los complementos involucrados en el script de depuración también están disponibles.
Insertar descripción de la imagen aquí

②Subir el guión a la prensa.

Nota: Si el script incluye un archivo de parámetros csv, debe cargar el archivo de parámetros csv en el directorio bin de jmeter en Linux.
Los informes de agregación y los oyentes deben desactivarse antes de cargarlos.

5 hilos, agrega uno cada 30s, es decir 150

La duración debe ser mayor que el tiempo de llamada de 150. Si se ejecuta durante otros 50 segundos, configúrelo en 200.
Insertar descripción de la imagen aquí

Después de cargar jmeter exitosamente, verifique la versión de jmeter y si está disponible.

Insertar descripción de la imagen aquí

③Inicialización

Hay dos lugares
Primero, la ruta para almacenar el script de prueba debe crear un directorio para almacenar el informe html.

Insertar descripción de la imagen aquí
Antes de ejecutar el script, el directorio res debe estar vacío
En segundo lugar, limpie los datos en la tabla de la base de datos sin considerar los datos existentes.
Insertar descripción de la imagen aquí

④Ejecutar script

Insertar descripción de la imagen aquí

⑤Ver resultados

resultado
Completó 548 solicitudes en 13 segundos.

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Abrir informe agregado
El número de solicitudes ko fallidas.

Insertar descripción de la imagen aquí
tiempo de respuesta tiempo de respuesta
Insertar descripción de la imagen aquí

TPS

Insertar descripción de la imagen aquí

¿Cómo ver archivos jtl?
jtl se puede abrir en cualquier escucha, como ver el árbol de resultados, el informe agregado, los tps y el tiempo de respuesta.
Si se abre en un informe agregado, haga clic en Examinar
Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí
Como tps, tiempo de respuesta
Veamos primero los tps
agregar tps
Haga clic para navegar

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

Tiempo de respuestaInsertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

2. Distribuido

A veces una imprenta no puede lograr el objetivo y se necesita una imprenta distribuida.
Después de todo, los recursos de una sola máquina son limitados y es difícil admitir una gran concurrencia. Las prensas de una sola máquina también tienen cuellos de botella.

2.1 Principio de distribución

Página web oficial:https://jmeter.apache.org/usermanual/prueba_distribuida_de_jmeter_paso_a_paso.html

Una máquina servidor sirve como máquina de control.
El resto de máquinas se utilizan como máquinas de carga.
El servicio solicitado por target
El controlador controla de forma remota el arranque y la parada de la máquina de carga mediante el envío de señales y, al mismo tiempo, recopila datos y resúmenes de la máquina de carga.
La máquina de carga inicia principalmente subprocesos para acceder al servidor y apuntar al servidor bajo prueba de estrés.
Generalmente, el trabajador inicia la máquina de control del servidor jmeter para controlar de forma remota la máquina de carga. La máquina de carga inicia el hilo y solicita al objetivo que obtenga los datos y luego los envía de regreso a la máquina de control.

¿Dónde se colocan los guiones cuando se distribuyen?
Un controlador, varios trabajadores.
Cuando se ejecuta sin interfaz gráfica de usuario, el script se transmite al servidor. Ahora que está distribuido, ¿dónde se debe transmitir el script?
El script se transmitirá al controlador. Durante la ejecución, el script se enviará a cada máquina de carga, es decir, cada trabajador después de que la carga obtenga el script, comenzará a ejecutarlo. Después de la ejecución, se pasarán los datos. a la máquina de control para su resumen.

2.2 Precauciones para pruebas de presión distribuida

(https://img-blog.csdnimg.cn/e3de7b8b65a1447db3bc3618876f62d3.png)
Es necesario cerrar el firewall. Si el firewall no está cerrado, es necesario abrir el puerto.
Todos los clientes deben estar en la misma subred.
Asegúrese de que jmeter pueda acceder al servidor
Asegúrese de que las versiones de jmeter y java sean las mismas
desactivar ssl

2.3 Preparación del entorno

Requiere 3 máquinas virtuales
Utilice 181 como controlador (máquina de control)
Utilice 182,183 como trabajador (cargar máquina)
Al mismo tiempo, estas tres máquinas virtuales deben instalar jdk y jmeter.
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Ver versión jdk
Insertar descripción de la imagen aquí
Instale jmeter en tres máquinas virtuales
El jmeter de la máquina local se transfiere al directorio usr/local de la máquina virtual.
Verifique la versión de jmeter después de cargar
Insertar descripción de la imagen aquí

2.4 Configuración distribuida

①Trabajador

182、182
Primero haga una copia de seguridad del archivo de configuración jmeter.properties
Insertar descripción de la imagen aquí

server_port se puede modificar o no. El valor predeterminado es 1099.
Insertar descripción de la imagen aquí

desactivar ssl
server.rmi.ssl.disable=false, cambie falso a verdadero
Insertar descripción de la imagen aquí

Iniciar sesión
./servidor jmeter
Insertar descripción de la imagen aquí
Verifique el puerto 182 para ver si está en estado de escucha

Insertar descripción de la imagen aquí

verificar
Haga Telnet desde la máquina de control a la máquina de carga para ver si se puede acceder al puerto.
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

②Controlador

Antes de configurar la máquina de control, depure en jmeter en la ventana.
ganar: para depurar
Primero haga una copia de seguridad del archivo de configuración jmeter.properties
Insertar descripción de la imagen aquí
De forma predeterminada, esta máquina se utiliza como máquina de carga.
La máquina de carga actual es una máquina de carga remota, cambie remote_hosts=127.0.0.1 a remote_hosts=192.168.117.182:1099
La IP y el puerto de la máquina de carga remota deben escribirse aquí. Si son múltiples, sepárelos con comas.
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
desactivar ssl
Cambie server.rmi.ssl.disable=false a server.rmi.ssl.disable=true
Insertar descripción de la imagen aquí

Primero depuralo a través de esta máquina.
Reinicie jmeter y vuelva a leer el archivo de configuración
Insertar descripción de la imagen aquí
Después de depurar en la ventana, vaya a Linux para realizar la configuración.

Configurar en 181
Primero haga una copia de seguridad del archivo de configuración jmeter.properties

Insertar descripción de la imagen aquí

La máquina de carga actual es una máquina de carga remota, queremote_hosts=127.0.0.1Cambiar aremote_hosts=192.168.117.182:1099
La IP y el puerto de la máquina de carga remota deben escribirse aquí. Si son múltiples, sepárelos con comas.

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

servidor.rmi.ssl.disable=falso
Voluntadserver.rmi.ssl.disable=falseCambiar aserver.rmi.ssl.disable=true
Insertar descripción de la imagen aquí
Cuando el script se transmite a la máquina de control, el script se distribuirá automáticamente a cada máquina de carga.
Inicio de sesión de escenario único de prueba independiente
Insertar descripción de la imagen aquí
Después de cargar el script, ejecútelo.
Ejecutar mediante carga remota

/usr/local/apache-jmeter-5.1.1/bin/jmeter -n -r -t test.jmx
  • 1

Insertar descripción de la imagen aquí

Cada máquina de carga de trabajo (prensa) tiene 5 hilos, y la máquina de control total tiene 10 hilos.
Insertar descripción de la imagen aquí

Preparación ambiental
Dos máquinas virtuales. Hay un maestro y dos esclavos. La máquina Windows actúa como maestro y el esclavo usa una máquina virtual.
Fuente: https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

Problemas que surgen:
java.rmi.RemoteException: No se puede iniciar. localhost.localdomain es una dirección de loopback

Objeto remoto creado: UnicastServerRef2 [liveRef: [endpoint:127.0.0.1:43474,objID:[-5a8dd143:17e2852fe88:-7fff, 3673082414768940798]]]
El servidor no pudo iniciarse: java.rmi.RemoteException: No se puede iniciar. localhost.localdomain es una dirección de bucle invertido.
Se produjo un error: No se puede iniciar. localhost.localdomain es una dirección de bucle invertido.
Insertar descripción de la imagen aquí
Información de excepción: Excepción de inicio del servidor: la llamada al método remoto de Java arrojó una excepción: No se puede iniciar el servicio. localhost.localdomain es una dirección de loopback local

El nombre de host obtenido mediante el comando hostname es localhost.
Verifique la configuración de los hosts mediante el comando cat /etc/hosts localhost localhost.localdomain localhost4... apunta a 127.0.0.1.
Insertar descripción de la imagen aquí
Solución:
Especifique la dirección IP del host del servidor remoto (rmi.server.hostname)
Comience especificando el comando de terminal
./jmeter-server -Djava.rmi.server.hostname=192.168.2.2
Insertar descripción de la imagen aquíInsertar descripción de la imagen aquí