EmuLabZip logo EmuLabZip

Sesiones

Actualizado el · Editar esta página en GitHub

Una sesión es una grabación de lo que ocurrió en un dispositivo mientras se usaba una app, guardada como un solo archivo que puedes abrir más tarde, adjuntar a un informe de error o recoger desde CI.

DentroQué
session.jsonEl dispositivo, la app, cuándo empezó y terminó
logs.jsonlCada línea de log (hasta 500.000)
perf.jsonlMuestras de CPU, memoria, tasa de frames y batería, una por segundo
network.harLas peticiones, cuando se grabó la red, con mensajes WebSocket
crashes/Cada fallo, fallo nativo y ANR ocurrido durante la ejecución, con su informe
screens/Capturas de pantalla tomadas cada pocos segundos, cuando se piden, con index.jsonl indicando cuándo
input.jsonlToques (taps, pulsaciones largas, deslizamientos), cuando se piden, en Android
frames.jsonlFrames que la app dibujó demasiado despacio, en Android
video/La grabación de pantalla en fragmentos, cuando se pide, con index.jsonl indicando qué cubre cada uno

session.json también guarda el reloj del dispositivo, de modo que los flujos pueden ponerse en un solo eje: consulta Línea de tiempo y video de pantalla.

Un archivo .ezsession es un zip de JSON simple, un archivo HAR, PNG y MP4, así que otras herramientas también pueden leerlo. El formato está en la versión 2; un archivo de versión 1 de EmuLabZip 0.9 o anterior todavía se abre.

Grabar#

En la app, abre Sessions, elige la app en la barra de herramientas y pulsa Record. Opcionalmente marca Network (el dispositivo tiene que estar conectado antes en la vista Network), Video y Touches, y elige cada cuánto tomar una captura de pantalla. Pulsa Stop and save; la sesión se abre de inmediato. Las sesiones grabadas aquí aparecen en la lista de la izquierda.

En la línea de comandos:

emulabzip session record -o run.ezsession --app com.example.app --screens 5 --network
# ... use the app, then Ctrl+C. Or add --duration 60 to stop by itself.
emulabzip session record -o run.ezsession --app com.example.app --video --taps   # the screen, and touches (Android)

Con --network, el dispositivo apunta al proxy durante la ejecución y se restaura después, incluso si algo falla.

Si una grabación se interrumpe (un fallo, un portátil cerrado), lo que se escribió sigue allí en una carpeta llamada run.ezsession.partial. Ábrela como un archivo; su informe dice "cut short".

Leer#

emulabzip session show run.ezsession            # for people
emulabzip session show run.ezsession --json     # for scripts
emulabzip session show run.ezsession --markdown # for a pull request comment

El informe tiene la duración, los errores del log y los más repetidos (los números se ignoran, así que "retry 3 of 5" y "retry 4 of 5" cuentan como uno), fallos, peticiones con las más lentas, y picos de CPU y memoria.

En la app, la sesión abierta tiene pestañas: Overview, Logs (filtra por nivel y texto), Requests (cabeceras y cuerpo de cada una), Timeline (toques, peticiones, problemas del log, frames lentos, recolecciones de basura y fallos en un solo eje, con el video que lo acompaña, y debajo los gráficos de CPU y memoria) y Screens. Replay network responde las peticiones de una app desde la grabación: consulta Repetir una grabación.

Una sesión es también la forma más fácil de informar de un error más tarde: Bug report en la sesión abierta, o emulabzip report --session run.ezsession, la empaqueta en un solo archivo HTML. Consulta Informes de error.

emulabzip session timeline run.ezsession        # everything on one axis
emulabzip session video run.ezsession -o clips/ # the pieces of the screen recording

Un asistente puede leer sesiones con las herramientas list_sessions, session_summary y session_timeline del servidor MCP.

Conviene saber#

  • Las sesiones pueden contener lo que tu app registra y envía: tokens, direcciones, datos personales. Una grabación de pantalla puede mostrar cualquier cosa que hubiera en la pantalla. Trátalas como logs, y revísalas antes de adjuntar una a un issue público.
  • Una sesión grabada por una versión más reciente de EmuLabZip (un formato más nuevo) se rechaza con un mensaje que pide actualizar.
  • Los archivos de sesión solo se escriben en lugares que eliges o en la carpeta sessions propia de EmuLabZip.

Consulta el modo CI para grabar alrededor de una ejecución de pruebas.