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)

È stato utile?

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

http://pronetos.googlecode.com/svn/trunk/vendor/plugins/spider_test/doc/classes/Caboose/SpiderIntegrator.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top