Seguro que todos alguna vez nos hemos encontrado con alguna página web que cargaba de forma muy lenta o que si entrábamos con un teléfono móvil consume más datos de lo deseable. Eso no sólo implica una mala experiencia de usuario si no también un consumo de recursos excesivo en el servidor que puede repercutir en gastos no esperados. Por eso, en APSL hemos desarrollado una herramienta para analizar el tamaño de las páginas y sus tiempos de respuesta: Page Size Check.

Page Size Check parte de un sitemap y recorre el total de las páginas indicadas ahí listando el tiempo y tamaño de la carga de los recursos de cada una de las páginas (así como los totales). El análisis de estos datos se realiza a partir del parseo del fichero HAR [1], que se obtiene al abrir las páginas en un navegador utilizando Selenium y un proxy Browsermob-proxy.

El proceso consiste en una primera fase en la cual se van abriendo en un navegador todas las urls del sitemap en paralelo, obteniendo los ficheros HAR y analizandolos. Una vez ha finalizado esta parte, se pasa a una segunda fase donde se analizan los datos para proporcionar un resumen de los resultados obtenidos. También se pueden obtener unos ficheros que podrían ser analizados más a fondo.

Los datos de resumen obtenidos se presentan en dos tipos de tablas:

  • un listado con un resumen de cada url analizada: F1
  • un resumen total de la web: F2

Los tipos de ficheros que se pueden obtener son lo siguientes:

  • Fichero resumen: listado de urls con el número de entradas, el tamaño de la páginas y los tiempos de carga (total_load_time, finish_time, dom_load_time)
  • Fichero de recursos: listado de recursos utilizados por cada url, con su mimetype, el tamaño del recurso y su tiempo de carga.
  • Fichero agrupado de recursos: listado de recursos agrupados por su mimetype por cada url del sitemap con su tamaño total, tamaño medio, tiempo de carga total y promedio y el número de entradas.

La herramienta está preparada para ser instalada de dos formas diferentes:

  • con pip (pip install page-size-check) y utilizarla como un ejecutable de python
  • con docker: docker run --rm apsl/page-size-check

El caso de uso principal de la herramienta es el analisi de una página web antes de su puesta en producción, para revisar el origen de los recursos, sus tamaños y el tiempo de carga para detectar posibles problemas lo antes posible.

En un futuro se quiere incluir la automatización de la ejecución periòdica de la herramienta para el control de una web i la inclusión de un sistema de alarmas si se dieran resultados inesperados. Otra mejora que se planea introducir es una política de reintentos para cuando falla el acceso a una url a través del navegador.

Si os ha gustado o os interesa la herramienta, tanto para su uso como para colaborar en ella, no dudéis en visitar su github. Cualquier aportación es bienvenida.


[1] HAR es un formato de fichero que registra la comunicación entre el navegador y una página web (peticiones, tiempos de respuesta, tamaños, mimetypes, etc) en el cual se basan las consolas de navegador habitualmente

blog comments powered by Disqus