Ottenere un elenco completo degli URL in un'applicazione rails
-
01-07-2019 - |
Domanda
Come posso ottenere un elenco completo di tutti gli URL che la mia applicazione Rails potrebbe generare?
Non voglio che i percorsi che ottengo ottengano percorsi rake, voglio invece ottenere gli URL effettivi corrispondenti a tutte le pagine generate dinamicamente nella mia applicazione...
È possibile?
(Sfondo:Lo sto facendo perché desidero un elenco completo di URL per alcuni test di carico che desidero eseguire, che devono coprire l'intera portata dell'applicazione)
Soluzione
Sono stato in grado di produrre un output utile con il seguente 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
Un rapido riferimento al wget
argomenti:
# --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.
Di ack
ack
è come grep
ma usa perl
regexps, che sono più complete/potenti.
-o
racconta ack
per restituire solo la sottostringa corrispondente e il modello che ho usato cerca qualsiasi cosa non preceduta da uno spazio 'URL:'
Altri suggerimenti
Potresti mettere insieme abbastanza rapidamente un programma che cattura l'output di rake routes
e quindi analizza l'output per mettere insieme un elenco di URL.
Ciò che, in genere, faccio per i test di carico è utilizzare uno strumento come WebCARICARE e creare script per diversi tipi di sessioni utente (o percorsi diversi che gli utenti possono intraprendere).Quindi creo un mix di sessioni utente e le eseguo attraverso il sito Web per ottenere qualcosa di simile a un quadro accurato di come potrebbe funzionare il sito.
In genere lo farò anche su un totale di 4 macchine diverse che eseguono circa 80 sessioni utente simultanee per simulare realisticamente ciò che accadrà attraverso l'applicazione.Ciò garantisce inoltre di non dedicare troppo tempo all'ottimizzazione delle pagine visitate di rado e di poter, invece, concentrarsi sulle prestazioni complessive dell'applicazione lungo i percorsi critici.
Dai un'occhiata ai test di integrazione Spider scritti da Courtnay Gasking