Servidor proxy HTTP en JMeter: Guión de ejemplo de grabación
⚡ Resumen inteligente
JMeter El servidor proxy HTTP registra la actividad del navegador en un script de prueba reutilizable. El grabador se sitúa entre el navegador y el sitio web, captura cada solicitud en un controlador de grabación y el plan guardado se reproduce para múltiples usuarios virtuales.

¿Qué es el JMeter ¿Servidor proxy HTTP?
El JMeter HTTP Proxy Server es un grabador integrado que se sitúa entre el navegador y el sitio web que se está probando. Observa y registra la actividad del usuario mientras se navega por la aplicación normalmente, y convierte cada solicitud capturada en un muestreador de solicitud HTTP dentro del plan de prueba. Dado que JMeter 3.0 el elemento ha sido nombrado el Grabador de scripts de prueba HTTP(S)y ambos nombres describen el mismo componente.
Record las pruebas Ayuda al evaluador a registrar y reproducir la actividad realizada sobre un objetivo de prueba. Es un tipo de prueba automatizada, pero para varios usuarios a la vez.
¿Por qué grabar en lugar de escribir el guion a mano?
Un recorrido de usuario realista en un sitio web moderno produce docenas de solicitudes, cada una con sus propios encabezados, cookies y parámetros de formulario.ping Introducir todo eso manualmente en los muestreadores es lento y propenso a errores. La grabación captura el tráfico exacto que envió el navegador, lo que ofrece tres ventajas:
- Precisión: El orden de las cabeceras, las cookies y los campos ocultos del formulario se capturan exactamente como los recibe el servidor.
- Velocidad: Un viaje de diez páginas se registra en minutos y se escribe a mano en horas.
- Cobertura: Las llamadas AJAX en segundo plano que no son visibles en la interfaz siguen apareciendo en la grabación.
La grabación es un punto de partida más que una prueba terminada. Todavía necesita limpieza, correlación y parametrización antes de que pueda utilizarse para Prueba de cargaLas secciones siguientes cubren el camino completo desde un estado vacío. JMeter ventana a un script que se reproduce de forma fiable.
Aquí está la hoja de ruta de este ejemplo práctico
Cómo grabar un guion en JMeter 5.x
La versión actual es Apache JMeter 5.6.3, publicado el 9 de enero de 2024, y requiere Java 8 o posterior, con Java Se recomienda la versión 17. Si sigues el tutorial ilustrado más abajo en esta página, no encontrarás el nodo WorkBench, ya que se eliminó en la versión 5.0. La funcionalidad no desapareció, sino que se trasladó. Ahora, la grabadora se añade directamente al Plan de Pruebas y se denomina Grabadora de Scripts de Prueba HTTP(S).
La ruta más rápida es la plantilla empaquetada. Elija Archivo > Plantillas > Grabación y JMeter Genera un plan completo que contiene un grupo de subprocesos, valores predeterminados de solicitud HTTP, un controlador de grabación y la grabadora en sí, ya conectados entre sí. Para construir la misma estructura manualmente, siga los pasos que se indican a continuación.
- Construye el esqueleto del plan. Añade un grupo de subprocesos y, debajo, un controlador de grabación. Aquí es donde se almacenarán las muestras capturadas.
- Añade la grabadora al plan de pruebas. Haga clic con el botón derecho en el nodo Plan de prueba y elija Agregar > Elementos que no son de prueba > Grabador de scripts de prueba HTTP(S)Es un grupo hermano del Grupo de Hilos, no un grupo hijo.
- Configura el puerto. El puerto predeterminado es el 8888. Cualquier puerto libre funciona, siempre que el navegador esté configurado para coincidir.
- Elija el Target Controlador Seleccione el controlador de grabación creado en el paso uno, de modo que las solicitudes se agrupen donde usted espera, en lugar de estar dispersas en la raíz del plan.
- Agregar URL patrones de exclusión. En la pestaña Filtrado de solicitudes, excluya los recursos estáticos con un patrón como .*\.(bmp|css|js|gif|ico|jpe?g|png|svg|woff2?)Esto elimina la mayor parte de la limpieza manual que se describe más adelante.
- Enciende la grabadora. Haga clic en Comenzar en la parte superior del panel de la grabadora. JMeter escribe ApacheJMeterEl archivo TemporaryRootCA.crt se encuentra en su carpeta bin en este momento, lo que hace posible la grabación HTTPS.
- Dirige el navegador al proxy. Utilizando localhost y el puerto elegido, navegue por la aplicación con normalidad.
- Detente y ordena. Pulse Detener, elimine las llamadas restantes de terceros y guarde el plan.
- Validar antes de escalar. Haga clic con el botón derecho en el grupo de subprocesos y elija ValidarEsto ejecuta el plan una sola vez con un solo hilo, por lo que los fallos se manifiestan antes de que se aplique cualquier carga.
Otro hábito distingue un script funcional de uno confiable. Utilice la interfaz gráfica solo para compilar y depurar, luego ejecute la prueba real desde la línea de comandos con jmeter -n -t plan.jmx -l results.jtl -e -o report, que también genera un panel de control HTML. El mismo comando es la base de pruebas distribuidas a través de varios generadores de carga. La instalación está cubierta en el JMeter guía de instalacióny el procedimiento completo está documentado en el Apache JMeter página de la grabadora.
⚠️ Nota de versión: Las capturas de pantalla del tutorial que aparece a continuación se realizaron en un dispositivo más antiguo. JMeter versión que aún tenía el nodo WorkBench. WorkBench fue eliminado en JMeter 5.0. Todos los conceptos siguen siendo válidos; solo cambia la ubicación del registrador y el procedimiento actual es el que se ha indicado anteriormente.
Paso 1) Configurar el servidor proxy HTTP
Esta es una guía paso a paso para configurar el proxy.
- Comenzar JMeter
- Seleccionar Plan de prueba en el árbol
- Agregar Grupo de hilos. Haz clic derecho en el Plan de prueba y agregue un nuevo grupo de hilos: Agregar > Hilos (Usuarios) > Grupo de hilos
- Agregar Solicitud HTTPSeleccione el grupo de subprocesos; haga clic con el botón derecho. Agregar > Elemento de configuración > Valores predeterminados de solicitud HTTP
En el nuevo elemento Valores predeterminados de solicitud HTTP: en Nombre del servidor o IP, ingrese "google.com". Debes mantener los demás campos en blanco.
- Agregar Controlador de grabaciónHaz clic con el botón derecho en el “Grupo de hilos” y añade un controlador de grabación: Agregar > Controlador lógico > Controlador de grabación
- Agregar Proxy Server a Workbench. Haga clic con el botón derecho en Workbench y agregue el proxy HTTP: Agregar > Elementos que no son de prueba > Servidor proxy HTTP. En JMeter 5.x, haga clic con el botón derecho en el Plan de prueba nodo en su lugar y elegir Grabador de scripts de prueba HTTP(S).
- Establecer Target Control donde se agregarán sus guiones grabados
- Comenzar Servidor proxy. Vuelva al servidor proxy HTTP y haga clic en el Comenzar botón en la parte inferior. Ahora tu JMeter inicio del servidor proxy
- Inicie su navegador (yo usé Firefox), escoger > Opción > Avanzado > Network > Configuración > Introduzca el proxy HTTP como se muestra en la siguiente figura. En la actualidad Firefox Se alcanza el mismo diálogo a través de Configuración > General > Configuración de red.
Paso 2) Registra tu actividad
- Ahora lanzamiento http://www.google.com en su navegador web (JMeter Sigue abierto)
- ¿Las actividades buscan la palabra clave “guru99".
- De regreso JMeter, en Servidor proxy HTTP, haga clic en Parada cuando esté terminado
- Después de terminar la grabación, verá JMeter creó automáticamente una nueva solicitud HTTP como se muestra en la siguiente figura
JMeter ya ha registrado una solicitud de usuario para la página de inicio of Google sitio web. http://www.google.com/
Las otras solicitudes HTTP se muestran en la figura anterior; debe eliminarlas. Porque en algún momento JMeter También registra algunos enlaces publicitarios mientras buscas palabras clave en GoogleDeberíamos ignorarlos en nuestro plan de pruebas.
- Haz clic en Archivo > Guardar plan de pruebas como
- Aparecerá un cuadro de diálogo > Introduzca un nombre para su plan de pruebas en el campo Nombre de archivo > Haga clic en Guardar. Ahora su plan de pruebas se ha guardado con el nombre RecordingTestPlan.jmx.
Paso 3) Ejecute su plan de prueba
- Seleccionar Grupo de subprocesos > Agregar > Oyente > Informe resumido
- El informe resumido mostrará algunas estadísticas básicas.
- Seleccione Grupo de subprocesos, ingrese la información como se muestra en la siguiente figura
Puedes consultar el artículo JMeter Test de rendimiento para conocer los detalles sobre la configuración del grupo de subprocesos.
- Antes de iniciar la prueba, seleccione "Informe resumido". Cuando esté listo para ejecutar la prueba, seleccione Ejecutar > Iniciar (Ctrl+R). JMeter Se reproducirá tu actividad 100 veces. A medida que se ejecute la prueba, las estadísticas cambiarán hasta que finalice.
Paso 4) Guarde el resultado de su prueba
- Haga clic en Guardar datos de la tabla para guardar el resultado de la prueba en un archivo
- Ingrese el nombre del resultado de la prueba y haga clic en Guardar. Resultado de la prueba en JMeter se guarda en formato *.csv por defecto
Descargue el plan de prueba de grabación de archivos
Descargue el archivo del servidor proxy HTTP
Registro de tráfico HTTPS y certificados
Casi todos los sitios web ahora utilizan HTTPS, algo que ya se abordó en la guía original. Un proxy no puede leer el tráfico cifrado a menos que el navegador confíe en él, por lo que se requiere un paso adicional.
Cuando la grabadora se pone en marcha, JMeter genera un certificado raíz temporal llamado APACHEJMeterTemporaryRootCA.crt en su directorio bin. Importe ese archivo en el navegador como una autoridad de certificación de confianza y luego reinicie el navegador. JMeter Ahora puede presentar su propio certificado para cada sitio y descifrar la sesión para su grabación.
Hay tres puntos que conviene saber:
- El certificado caduca a los siete días. Esto es intencional. Elimínalo y deja que... JMeter regenerar uno nuevo en lugar de extender su validez.
- Retíralo cuando hayas terminado. Dejar un certificado raíz de confianza instalado en un equipo en funcionamiento supone un riesgo de seguridad real, no teórico.
- Algunas aplicaciones lo rechazan. Los sitios que utilizan fijación de certificados o TLS mutuo no se pueden registrar a través de un proxy en absoluto, y el script debe crearse manualmente utilizando las herramientas para desarrolladores del navegador.
Correlación: Cómo hacer que un guion grabado sea reproducible
Un script grabado reproduce exactamente lo que sucedió una vez, que rara vez ocurre la segunda vez. Los identificadores de sesión, los tokens y las claves generadas durante la grabación dejan de tener validez cuando se reproduce el script, y la ejecución falla de maneras que parecen errores de la aplicación.
La correlación es la solución. A postprocesador como la Expresión Regular Extracpara o el JSON ExtracTor captura el valor actualizado de la respuesta de inicio de sesión, lo almacena en una variable y las solicitudes posteriores hacen referencia a esa variable en lugar del valor literal registrado.
El flujo de trabajo es corto:
- Repita el script una vez con un detector de árbol de resultados y encuentre la primera solicitud que falle.
- Compare la solicitud fallida con la grabación. Cualquier valor que difiera entre dos ejecuciones debe correlacionarse.
- Agregar un extractor a la respuesta que produjo el valor, luego reemplace el literal codificado con la referencia de la variable.
- Agregue un afirmación Por lo tanto, una página que devuelve HTTP 200 con un mensaje de error sigue sin superar la prueba.
Solo después de la correlación el script es seguro para escalar. Ejecutar una grabación no correlacionada en cien usuarios mide el manejo de errores en lugar de .Otros elementos se tratan a lo largo del JMeter Tutoriales.
Localización de averías
Si encuentra algún problema al ejecutar 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 archivo RecordingTestPlan.jmx en JMeter.
- Haga clic con el botón derecho en Workbench > Combinar > Seleccionar HTTP Proxy Server.jmx. En JMeter En la versión 5.x, incorpórela al nodo Plan de prueba, ya que WorkBench ya no existe.
- Haz clic en Grupo de hilos > Informe resumido.
- Ejecuta la prueba.
Otros dos síntomas explican la mayoría de los fallos restantes. Si el navegador informa que no puede conectarse, el grabador nunca se inició o el puerto configurado en el navegador no coincide con el puerto configurado en JMeterSi las páginas se cargan normalmente pero no aparece nada en el árbol, el tráfico es HTTPS y el certificado no se ha importado.



















