JMeter puede generar muestreadores de solicitudes HTTP actuando como un proxy de grabación local entre un navegador y una aplicación de destino autorizada. Las versiones actuales denominan a este componente Grabador de scripts de prueba HTTP(S) . Este graba el recorrido de un navegador en un Controlador de grabación, tras lo cual el script debe limpiarse, correlacionarse, validarse y ejecutarse como una prueba a nivel de protocolo.
¿Qué es el servidor proxy HTTP de JMeter?
La grabadora escucha en un puerto local, comúnmente 8888Un navegador envía solicitudes HTTP y HTTPS a ese proxy, y JMeter convierte el tráfico coincidente en muestras bajo un controlador seleccionado. Durante la reproducción, JMeter envía las solicitudes directamente; no inicia un navegador para cada usuario virtual.
¿Por qué grabar en lugar de escribir el guion a mano?
- Captura el orden de las solicitudes, las redirecciones, los formularios y las API en segundo plano de forma realista.
- Revela llamadas XHR o de obtención de datos que son fáciles de pasar por alto.
- Crea una base de referencia rápida para un recorrido de usuario complejo.
- Reduce los errores de transcripción en los encabezados y parámetros.
La construcción manual resulta más limpia para una API pequeña y documentada. El registro de datos es útil cuando aún no se comprende el comportamiento de la red del navegador. Para obtener información sobre la terminología, consulte nuestra guía sobre tipos de proxy.
Cómo grabar un script en JMeter 5.x
- Inicie JMeter en modo GUI para la creación de scripts.
- Agregue un grupo de subprocesos al plan de pruebas.
- Agregue un controlador de grabación en el grupo de subprocesos.
- Agregue la configuración predeterminada para las solicitudes HTTP y un administrador de cookies HTTP donde corresponda.
- Agregue el grabador de scripts de prueba HTTP(S) y seleccione el controlador de grabación como su destino.
- Utilice patrones de inclusión/exclusión para limitar el tráfico no relacionado.
La guía oficial de grabación de Apache JMeter es la referencia autorizada específica para cada versión.
Paso 1) Configurar el servidor proxy HTTP
8888, configure el controlador de destino y haga clic Comenzar.Configure el navegador de prueba con un servidor proxy HTTP y HTTPS. 127.0.0.1 y el mismo puerto. Si el navegador se ejecuta en otra máquina virtual o contenedor, localhost se refiere a ese entorno; utilice en su lugar una dirección privada accesible y aprobada.
Proxy host: 127.0.0.1
Proxy port: 8888
Include: https?://test.example.com/.*
Exclude: .*(.png|.jpg|.gif|.css|.woff2)(?.*)?$
No aplique filtros demasiado agresivos en la primera pasada, ya que la API de una aplicación podría usar otro subdominio. Registre los datos una vez, inspeccione los hosts y luego refine los patrones.
Paso 2) Registra tu actividad
- Inicie la grabadora y confíe en su certificado temporal únicamente en el navegador de prueba aislado.
- Abra el entorno de prueba autorizado.
- Realiza un viaje sin incidentes a velocidad humana.
- Deje de grabar inmediatamente después de finalizar la última acción comercial.
- Restaure la configuración normal del proxy del navegador.
Cambie el nombre de los muestreadores según la acción comercial y agrupe las solicitudes relacionadas en los controladores de transacciones. Elimine los análisis, los anuncios, las actualizaciones del navegador, los widgets de chat y los recursos estáticos duplicados, a menos que estén explícitamente incluidos en el ámbito de aplicación.
Inspeccione cada muestreador en busca de secretos. Las contraseñas deben provenir de datos de tiempo de ejecución protegidos, mientras que el cambio de tokens requiere correlación.
Paso 3) Ejecute su plan de prueba
Valida un usuario y una iteración antes de añadir carga. Utiliza temporalmente el Árbol de resultados, comprueba las redirecciones y los cuerpos de respuesta, y añade aserciones para el resultado de negocio esperado. El código HTTP 200 por sí solo no demuestra que el inicio de sesión o el pago se hayan realizado correctamente.
Threads: 1
Ramp-up: 1 second
Loop Count: 1
Tras la depuración, elimine los procesos que consumen muchos recursos y ejecute la aplicación sin interfaz gráfica:
jmeter -n -t recorded-test.jmx -l results.jtl -e -o html-report
El directorio de informes debe ser nuevo o estar vacío. Aumente la carga gradualmente y supervise tanto el sistema objetivo como JMeter.
Paso 4) Guarde el resultado de su prueba
Guarda el plan reutilizable como un .jmx Archivar y mantener separados los datos generados:
- JMX: muestreadores, controladores, aserciones, temporizadores, variables y configuración.
- JTL: Resultados de muestras sin procesar para su análisis.
- Panel de control HTML: percentiles, rendimiento, errores e hilos activos.
- Métricas del servidor: Telemetría de CPU, memoria, base de datos, cola y servicio.
Versiona el plan con propiedades no secretas y datos de prueba. Registra las versiones de JMeter y Java, la compilación objetivo, el entorno, el número de usuarios, el tiempo de preparación y la duración.
Registro de tráfico HTTPS y certificados
Para HTTPS, JMeter genera una autoridad de certificación temporal al iniciar la grabación. Impórtela únicamente en el navegador de prueba específico, grabe el sitio autorizado y, a continuación, elimínela.
- Inicie la grabadora de scripts de prueba HTTP(S).
- Localice el certificado ApacheJMeterTemporaryRootCA generado.
- Importarlo como autoridad de confianza en el perfil aislado.
- Registre la ruta HTTPS aprobada.
- Retire el certificado cuando haya terminado.
El anclaje de certificados, TLS mutuo, los navegadores gestionados, las aplicaciones móviles y los protocolos de transporte más recientes pueden bloquear la interceptación. No debilite los controles de seguridad de producción. Utilice una compilación de prueba, una especificación de API o un método de captura alternativo aprobado.
Correlación: Cómo hacer que un guion grabado sea reproducible
Los ID de sesión, los tokens CSRF, el estado de OAuth, las firmas de solicitud y los ID de recursos cambian entre ejecuciones. La correlación extrae un valor actualizado de una respuesta y lo sustituye en solicitudes posteriores.
- Localiza la respuesta que contiene primero el valor dinámico.
- Agregue un extractor de JSON, CSS, XPath o expresiones regulares.
- Almacene el resultado en una variable de JMeter con nombre.
- Sustituya posteriormente los valores codificados directamente en el código por la referencia de la variable.
- Fallará claramente cuando la extracción no devuelva ninguna coincidencia.
JSON Extractor
Variable: csrfToken
JSON Path: $.csrf.token
Default: NOT_FOUND
Later header:
X-CSRF-Token: ${csrfToken}
La parametrización proporciona datos de usuario independientes, a menudo procedentes de archivos CSV. La correlación captura los datos generados por el servidor durante la ejecución. Los planes realistas suelen requerir ambos.
Localización de averías
| Primaria | Causa probable | Solución |
|---|---|---|
| No se registraron solicitudes | Proxy incorrecto, grabador detenido, conflicto de puerto o regla de omisión | Confirme el host y el puerto, inicie la grabadora y elimine las exclusiones de destino. |
| Advertencia HTTPS | Falta o ha caducado el certificado de asistencia temporal. | Genere un nuevo certificado de grabadora e impórtelo únicamente en el perfil de prueba. |
| demasiado trafico | Extensiones, telemetría, otras pestañas o patrones generales | Utilice un perfil limpio y refine los filtros de inclusión/exclusión. |
| El intento de inicio de sesión falla. | Faltan cookies, tokens, flujo OAuth o correlación. | Agregue el Administrador de cookies, extraiga valores dinámicos e inspeccione las redirecciones. |
| Navegador sin conexión posteriormente | Todavía apunta al proxy local detenido. | Restaurar la configuración automática o sin proxy. |
| Error de memoria de JMeter | Oyentes de interfaz gráfica de usuario o almacenamiento de respuestas de gran tamaño | Utilice el modo sin interfaz gráfica de usuario y limite los datos de respuesta guardados. |
| Diferente del navegador | JMeter no renderiza ni ejecuta JavaScript de la página. | Pruebe las API subyacentes y utilice las herramientas del navegador para renderizar las métricas. |
JMeter es una herramienta de evaluación del rendimiento de protocolos. No puede medir por sí solo eventos visuales como Largest Contentful Paint.
Preguntas Frecuentes
¿Qué nombre reemplazó al del servidor proxy HTTP en JMeter?
El componente ahora se llama Grabador de scripts de prueba HTTP(S).
¿Qué puerto de grabación debo usar?
Cualquier puerto local no utilizado funciona. El puerto 8888 es común, y el navegador debe usar el mismo valor.
¿Puede JMeter registrar el tráfico HTTPS?
Sí, cuando el navegador de prueba aislado confía en el certificado de grabación temporal de JMeter.
¿Por qué falla un guion grabado al reproducirlo?
Los tokens dinámicos, las cookies, los flujos de autenticación, las diferencias de host y los datos faltantes suelen requerir correlación y parametrización.
¿Puede JMeter grabar en Chrome?
Sí. Configure un perfil limpio de Chrome para usar la grabadora local de JMeter.
¿Debo ejecutar las pruebas de carga desde la interfaz gráfica de JMeter?
No. Compile y depure en modo GUI, luego ejecute la carga en modo sin GUI.
¿JMeter se comporta como un navegador real?
No. Envía solicitudes de protocolo, pero no genera HTML ni ejecuta JavaScript del navegador.
¿Es seguro grabar un inicio de sesión de producción?
Se recomienda el uso de cuentas de prueba y de preproducción. La captura en producción requiere autorización explícita y un manejo estricto de la información confidencial.
