Cómo usar AREX para reproducir rápidamente problemas en línea localmente

En el proceso de desarrollo de software, la recurrencia y posicionamiento de problemas en línea es una actividad diaria de desarrollo. Sin embargo, el dolor de cabeza para los desarrolladores es que, debido a las diferencias en la configuración y los datos entre el entorno en línea y el entorno local (como datos en la base de datos, datos en el caché, etc.), los problemas en línea a menudo no se pueden reproducir rápidamente en el Entorno de prueba local, la dificultad de investigación aumenta considerablemente.

Ante este tipo de problema, AREX, una herramienta de prueba de regresión automatizada, se puede utilizar para reproducirlo rápidamente. El principio básico de AREX es registrar el tráfico y los datos en el entorno de producción, reproducirlos en el entorno de prueba y comparar automáticamente las diferencias en las solicitudes externas en el servicio de interfaz y las diferencias en los paquetes devueltos por la interfaz, y combinar pruebas precisas herramientas para encontrar la correlación entre los cambios de código y las diferencias de resultados, para completar la prueba de verificación automatizada completa. Con la ayuda del poderoso mecanismo Mock de AREX, AREX simulará automáticamente todas las dependencias externas de la solicitud real durante el proceso de grabación y restaurará perfectamente el entorno de datos de producción en línea localmente, de modo que la reproducción en el entorno local pueda completarse con éxito y la El problema se puede comprobar rápidamente.

Los pasos específicos son los siguientes:

  1. Envíe una solicitud con la marca force-record=true al entorno de producción, AREX registrará los datos de producción y registrará el RecordID (AREX-Detail-ID) en el encabezado de respuesta.
  2. Vaya al entorno de desarrollo Local, prepare el código correspondiente y la configuración del Agente AREX, y habilite el modo Depuración
  3. Use AREX para enviar un mensaje de solicitud cuyo RecordID es AREX-Detail-ID al entorno local, y el servicio local ingresa al estado de depuración después de recibir el mensaje
  4. La aplicación Local monta el Agente AREX, y los datos dependientes se obtendrán y cargarán desde la base de datos AREX
  5. El desarrollo puede comenzar a reproducir los problemas de producción a su gusto y reproducir y ubicar rápidamente

La siguiente es una demostración práctica.

Paso 1: implementar el servicio AREX

git clone https://github.com/arextest/deployments.git
cd deployments
docker-compose up

Paso 2: Configure AREX Agent para la aplicación bajo prueba e inícielo

AREX Agent es el componente central para el registro de tráfico, por lo que antes de utilizar la función de grabación, debe configurar AREX Agent para la aplicación que se está probando.

Primero, compile AREX Agent:

git clone [email protected]:arextest/arex-agent-java.git
mvn clean install

Después de una compilación exitosa, se puede obtener una nueva carpeta llamada arex-agent-jar en la carpeta arex-agent-java, que contiene dos paquetes jar.

Agregue la configuración del Agente Java al inicio de la aplicación Java bajo prueba:

La configuración completa de las variables de entorno es la siguiente:

JAVA_TOOL_OPTIONS='-javaagent:E:/github-arex/arex-agent-java/arex-agent-jar/arex-agent-0.1.0.jar'

Configuración completa de los parámetros del programa:

-Darex.service.name=arex-community-test6 -Darex.storage.service.host=10.5.153.1:8093 -Darex.enable.debug=true  -Dspring.datasource.url=jdbc:mysql://10.5.153.1:13306/community?useUnicode=true&characterEncoding=utf-8 -Dspring.datasource.username=arex_admin -Dspring.datasource.password=arex_admin_password -Dspring.redis.host=10.5.153.1 -Dspring.redis.port=16379

Puede observar la salida o ver el registro al iniciar:

Puede ver que en la información impresa ArexJavaAgent installed, significa que el Agente se instaló correctamente.

Al mismo tiempo, puede ver que Java imprime la información de los parámetros de la línea de comandos, como la información de la dirección del agente, la información de la dirección del servicio de almacenamiento, etc., como muestra la flecha en la figura anterior.

Paso 3: Forzar la grabación de las solicitudes que tienen problemas en el entorno de producción

La solicitud general de AREX a la interfaz del entorno de producción se muestra en la figura a continuación, y el mensaje de respuesta son todos los datos normales.

Cuando haya un problema con un determinado caso de uso en el entorno de producción, construya todas las configuraciones del caso de uso solicitado en AREX y haga clic para action.recordhabilitar grabación forzada, como se muestra en la siguiente figura:

Después de hacer clic en el botón Forzar grabación, se agregará un nuevo arex-force-recordcampo con un valor de true. Haga clic en Guardar para guardar.

Después de guardar y enviar la solicitud, puede ver que los encabezados del mensaje de respuesta se agregaron arex-record-idcon un valor AREX-172-20-0-4-708656889122(un valor único generado aleatoriamente por AREX Agent), que indica que la solicitud se registró con éxito y los datos de los que depende la solicitud en el entorno de producción han sido registrados y almacenados en AREX.

Paso 4: reproducción local para la operación de depuración

Una vez completada la grabación, se puede reproducir localmente.

Cree una nueva solicitud, cambie la dirección al entorno de prueba local, agregue arex-record-idun campo establezca el valor en el generado anteriormente AREX-172-20-0-4-708656889122, haga clic en Guardar y envíe la solicitud.

Ahora puede resolver el problema en su entorno IDEA. Como se muestra abajo:

Después de la depuración, puede ver el mensaje de respuesta de esta solicitud AREX:

Aparece en el mensaje de respuesta arex-replay-id,值为 ``AREX-172-20-0-4-708658384473(ID generado aleatoriamente por AREX Agent para su análisis).

Lo anterior es el proceso completo de reproducir rápidamente problemas en línea localmente y realizar operaciones de depuración a través de la función de grabación de tráfico AREX.


Documentación de AREX: http://arextest.com/zh-Hans/docs/intro/

Sitio web oficial de AREX: http://arextest.com/

AREX GitHub: https://github.com/arextest

Grupo de comunicación QQ oficial AREX: 656108079

{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/arextest/blog/8707534
Recomendado
Clasificación