Procesador en JMeter: Preprocesador y posprocesador
⚡ Resumen inteligente
Procesador en JMeter modifica las solicitudes del Sampler antes o después de la ejecución. El PreProcessor prepara los datos de la solicitud, mientras que el PostProcessor los procesa.tracts valores y controla el flujo de prueba, lo que permite la correlación, la parametrización dinámica y un comportamiento fiable en las pruebas de rendimiento.

Un procesador en Apache JMeter es un elemento del plan de pruebas que modifica los Samplers dentro de su ámbito. Se ejecuta automáticamente, ya sea justo antes de que una solicitud salga JMeter o inmediatamente después de que llegue una respuesta, lo que lo convierte en el principal mecanismo para manejar datos dinámicos durante un prueba de rendimiento.
Hay 2 tipos de procesadores:
- Preprocesador
- Postprocesador
El alcance decide hasta dónde llega un procesador. Un procesador colocado directamente debajo de un Plan de prueba Un grupo de subprocesos se aplica a todos los muestreadores que se encuentran debajo, mientras que un procesador anidado dentro de un único muestreador afecta solo a esa solicitud. Comprender esta regla evita los errores de configuración que se describen en la sección de solución de problemas de esta página.
Preprocesador
El preprocesador ejecuta alguna acción. antes haciendo una Solicitud de Muestra.
Considere un ejemplo simple: digamos que desea JMeter "arañar" a través del sitio web bajo prueba, analizar gramaticalmente enlace (verifique todos los enlaces en la página) y volvemos el HTML. Agregaría alguna acción como "analizador de enlaces HTML" a su controlador antes de crear una solicitud HTTP.
El diagrama anterior muestra el preprocesador situado entre el controlador y la solicitud saliente. Debido a que se ejecuta primero, es el lugar correcto para construir los datos de la solicitud: generar una marca de tiempo, leer un valor de una columna CSV, reescribir un identificador de sesión en el URLo asignando credenciales diferentes a cada usuario virtual.
Postprocesador
El posprocesador ejecuta alguna acción después de realizar una solicitud de muestra.
Considere un ejemplo simple: JMeter envía una solicitud HTTP al servidor web bajo prueba (etc. www.google.com) y obtener la respuesta. Quieres JMeter Para detener la prueba si la respuesta del servidor es un error, puede utilizar el postprocesador para realizar la tarea anterior de la siguiente manera:
Como ilustra el segundo diagrama, el Postprocesador lee la respuesta después de que el Sampler se completa. Esta es también la respuesta estándar a la correlación. Cuando un servidor devuelve un token, un ID de sesión o un número de pedido que cambia en cada ejecución, un Postprocesador captura ese valor en un JMeter variable para que el siguiente Sampler pueda reutilizarla.
Tipos de preprocesadores en JMeter
Apache JMeter Incluye un conjunto compacto de preprocesadores. Cada uno prepara un muestreador de una manera diferente, por lo que seleccionar el elemento correcto permite que el plan de pruebas sea legible y fácil de mantener.
- Tiempo de espera de ejemplo: Define una duración máxima para una solicitud. Cualquier Sampler que se ejecute durante más tiempo del valor configurado se marcará como fallido.
- Parámetros de usuario: Asigna valores específicos a las variables por usuario virtual, de modo que cada hilo envía su propio conjunto de datos.
- Analizador de enlaces HTML: El programa rastrea la página que se está probando, analiza los enlaces que encuentra y los incorpora a la siguiente solicitud HTTP.
- HTTP URL Modificador de reescritura: Inyecta un identificador de sesión en el URL para aplicaciones que track sesiones sin cookies.
- Parámetros de usuario de expresiones regulares: Rellena los parámetros de la solicitud utilizando valores capturados mediante una expresión regular de una respuesta anterior.
- Preprocesador JDBC: Ejecuta una instrucción SQL antes del Sampler, lo cual resulta útil para inicializar o restablecer los registros de la base de datos.
- Preprocesador JSR223: Ejecuta un Groovy or Java Script para cualquier lógica de preparación personalizada. Sustituye al antiguo BeanShell PreProcessor y ofrece un rendimiento significativamente superior bajo carga.
💡 Consejo: Prefiera el preprocesador JSR223 con el Groovy Lenguaje sobre BeanShell. Groovy Los scripts se compilan y se almacenan en caché, por lo que consumen mucha menos CPU cuando miles de hilos se ejecutan en paralelo.
Tipos de Postprocesadores en JMeter
Los postprocesadores se dividen en dos grupos: por ejemplotracLos muestreadores extraen valores de una respuesta, y los manejadores reaccionan al resultado de un muestreador. La tabla siguiente relaciona cada elemento con el formato de respuesta que mejor se ajusta a él.
| Postprocesador | Mejores adecuados para | Uso típico |
| Expresión regular Extractor | Cualquier respuesta de texto | Captura de tokens o identificadores desde HTML y texto plano. |
| Límite Extractor | Cualquier respuesta de texto | Capturar un valor usando un límite izquierdo y derecho en lugar de una expresión regular completa. |
| JSON Ejemplotractor | respuestas JSON | Lectura de campos de cargas útiles REST durante Pruebas de API |
| CSS/jQuery Extractor | Respuestas HTML | Seleccionar un elemento mediante un selector CSS. |
| XPath Extractor | Respuestas XML y XHTML | Navegación por un árbol de documentos estructurado |
| Postprocesador JDBC | Resultados de la base de datos | Verificar o limpiar filas después de una solicitud |
| Procesador posterior JSR223 | Cualquier respuesta | Análisis y aserciones mediante scripts personalizados |
| Controlador de acción de estado de resultado | Cualquier respuesta | Paradaping un hilo o toda la prueba cuando falla un Sampler |
El límite ExtracTor llegó en JMeter 4.0 y suele ser la opción más rápida de escribir, porque solo solicita el texto inmediatamente a la izquierda y a la derecha del valor. La expresión regular ExtracTor sigue siendo la opción más flexible cuando el marcado circundante varía entre las respuestas.
Diferencia entre preprocesador y postprocesador
Ambos elementos comparten las mismas reglas de alcance, pero resuelven problemas opuestos. La siguiente comparación resume la diferencia antes del ejemplo resuelto.
| Parámetro | Preprocesador | Postprocesador |
| Tiempo de ejecución | Se ejecuta antes de que el muestreador envíe su solicitud. | Se ejecuta después de que el muestreador recibe su respuesta. |
| Propósito primario | Prepara y modifica los datos de la solicitud. | Lee los datos de respuesta y reacciona a ellos. |
| Elementos típicos | Parámetros de usuario, analizador de enlaces HTML, preprocesador JSR223 | Expresión regular Extractor, JSON Extractor, Controlador de acciones de estado de resultado |
| Efecto sobre el flujo | No se puede detener la prueba, solo se puede dar forma a la solicitud. | Puede detener un hilo o toda la ejecución de la prueba. |
| Meta común | Parametrización | Correlación y manejo de errores |
En la práctica, ambos funcionan conjuntamente. Un PostProcessor captura un token de sesión de la respuesta de inicio de sesión, y un PreProcessor, en la siguiente solicitud, inyecta ese token antes de que se envíe la llamada. El siguiente ejemplo ilustra el funcionamiento del PostProcessor.
Ejemplo de posprocesador
Este tutorial le mostrará instrucciones paso a paso sobre cómo utilizar el posprocesador en JMeter. Comencemos con el sencillo script de prueba.
- JMeter envía una solicitud HTTP al servidor web bajo prueba www.google.com.
- JMeter obtiene respuesta de la Google servidor.
- Si la respuesta del servidor es un error, JMeter will detener la prueba.
- Si la respuesta del servidor OK (No hay error), JMeter will continue la prueba.
Aquí está la hoja de ruta de este ejemplo:
Condición previa:
We reutilizar el Paso 1 y el Paso 2 en el artículo JMeter Test de rendimiento. Si JMeter aún no está instalado, siga las instrucciones JMeter guía de instalación de antemano.
Paso 1) Agregar grupo de subprocesos
Haz clic derecho en la Plan de prueba y agregue un nuevo grupo de hilos: Agregar -> Hilos (Usuarios) -> Grupo de hilos
Pero en el panel de control del Grupo de subprocesos, ingrese Propiedades del subproceso de la siguiente manera:
Esta configuración permite JMeter Para crear 10 solicitud del usuario para http://www.google.com 10 veces.
Paso 2) Agregar JMeter elementos
- Agregar solicitud HTTP predeterminada
- Agregar solicitud HTTP
todavía hacemos JMeter Enviar petición http://www.google.com a Google servidor.
Paso 3) Agregar elemento posprocesador
Haga clic en Grupo de hilos -> Agregar -> Postprocesador -> Controlador de acción de estado de resultado
Controlador de acción de estado de resultado permite al usuario detener el hilo o toda la prueba si la solicitud del usuario falla.
En el panel de control de acción del estado del resultado, elija Detener la prueba ahora. Esta selección detendrá la prueba si JMeter Recibe el error de la respuesta del servidor.
Paso 4) Configurar la solicitud HTTP
Abra el panel de solicitud HTTP. Ingresar "a B C" al campo Ruta.
Cuando usted entre "a B C" al camino, JMeter creará un URL solicitud de Google servidor: http://www.google.com/abc. Este URL no existe en Google servidor. Es Mal URL solicitud así Google El servidor devolverá un error.
Paso 5) Agregar vista del árbol de resultados
Haga clic en Grupo de hilos -> Agregar -> Perfil -> Ver árbol de resultados
Paso 6) Ejecutar prueba
Seleccione Ver árbol de resultados, presione el botón Ejecutar en la barra de menú. Verás el error respuesta de Google El servidor y la prueba se detendrán. sin completando 100 hilos.
Ahora regrese al paso 4, abra el panel Solicitud HTTP, ingrese "calendario”al panel. Hace JMeter Para crear URL solicita https://calendar.google.com/calendar/u/0/r a la parte superior Google servidor. Esto es correcta URL solicitud así Google El servidor devolverá OK (sin error).
Seleccione Ver árbol de resultados, presione el botón Ejecutar en la barra de menú. Verás el OK respuesta de Google El servidor y la prueba continuarán hasta que se completen los 100 hilos.
Añadiendo un afirmación Junto con el controlador de acciones de estado de resultado, la comprobación se vuelve más estricta, ya que una aserción puede hacer que falle un Sampler que devolvió HTTP 200 pero entregó el contenido incorrecto.
Localización de averías
Si enfrenta el problema mientras ejecuta el escenario anterior, haga lo siguiente:
- Compruebe si se está conectando a Internet a través de un proxy. En caso afirmativo, elimine el proxy.
- Abrir una nueva instancia de Jmeter
- Abra el panel de ProcesadorTestPlan.jmx en jmeter
- Double-haga clic en Grupo de subprocesos -> Ver árbol de resultados
- Ejecutar la prueba
Si un Postprocesador parece no hacer nada, compruebe primero su posición. Un Postprocesador colocado fuera del ámbito del Sampler al que apunta nunca se ejecuta, que es la causa más frecuente de un error vacío.tracvariable ted. Elementos relacionados como controladores y pruebas distribuidas Sigue la misma lógica de alcance.









.gif)

.gif)