Obtener una lista completa de las URL en una aplicación Rails
-
01-07-2019 - |
Pregunta
¿Cómo obtengo una lista completa de todas las URL que mi aplicación Rails podría generar?
No quiero que las rutas que obtengo obtengan rutas rake, sino que quiero obtener las URL reales que correspondan a todas las páginas generadas dinámicamente en mi aplicación...
¿Es esto siquiera posible?
(Fondo:Estoy haciendo esto porque quiero una lista completa de URL para algunas pruebas de carga que quiero hacer, que deben cubrir toda la aplicación).
Solución
Pude producir resultados útiles con el siguiente comando:
$ wget --spider -r -nv -nd -np http://localhost:3209/ 2>&1 | ack -o '(?<=URL:)\S+'
http://localhost:3209/
http://localhost:3209/robots.txt
http://localhost:3209/agenda/2008/08
http://localhost:3209/agenda/2008/10
http://localhost:3209/agenda/2008/09/01
http://localhost:3209/agenda/2008/09/02
http://localhost:3209/agenda/2008/09/03
^C
Una referencia rápida de la wget
argumentos:
# --spider don't download anything.
# -r, --recursive specify recursive download.
# -nv, --no-verbose turn off verboseness, without being quiet.
# -nd, --no-directories don't create directories.
# -np, --no-parent don't ascend to the parent directory.
Acerca de ack
ack
es como grep
pero usa perl
expresiones regulares, que son más completas/poderosas.
-o
dice ack
para generar solo la subcadena coincidente, y el patrón que usé busca cualquier cosa que no sea un espacio precedida por 'URL:'
Otros consejos
Podrías crear rápidamente un programa que capture la salida de rake routes
y luego analiza el resultado para armar una lista de las URL.
Lo que normalmente he hecho para las pruebas de carga es usar una herramienta como WebCARGAR y programar varios tipos diferentes de sesiones de usuario (o diferentes rutas que los usuarios pueden tomar).Luego creo una combinación de sesiones de usuario y las ejecuto a través del sitio web para obtener algo parecido a una imagen precisa de cómo podría funcionar el sitio.
Normalmente también haré esto en un total de 4 máquinas diferentes ejecutando alrededor de 80 sesiones de usuario simultáneas para simular de manera realista lo que sucederá a través de la aplicación.Esto también garantiza que no dedique demasiado tiempo a optimizar páginas visitadas con poca frecuencia y que pueda, en cambio, concentrarme en el rendimiento general de la aplicación a lo largo de las rutas críticas.
Consulte las pruebas de integración de Spider escritas por Courtnay Gasking