Pergunta

Como faço para obter uma lista completa de todos os urls que a minha aplicação rails poderia gerar?

Eu não quero as rotas que eu conseguir obter rotas forma de rake, em vez disso, deseja obter as URLs actul corrosponding a todas as páginas dynmically gerados em minha aplicação ...

Isto é mesmo possível?

(Background: Eu estou fazendo isso porque eu quero uma lista completa de URLs para alguma carga testar eu quero fazer, que tem de cobrir toda a largura do aplicativo)

Foi útil?

Solução

Eu era capaz de produzir saída útil com o seguinte 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

Uma referência rápida dos argumentos wget:

# --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.

Sobre ack

ack é como grep mas o uso perl regexps, que são mais completas / poderosa.

-o diz ack a única saída a substring correspondida, e o padrão que eu usei olhares para não-espaço nada precedido por 'URL:'

Outras dicas

Você poderia muito rapidamente cortar juntos um programa que pega a saída do rake routes e, em seguida, analisa a saída para montar uma lista de URLs.

O que eu tenho, normalmente, feito para teste de carga é usar uma ferramenta como WebLOAD e roteiro vários tipos diferentes de sessões de usuário (ou rotas diferentes usuários podem tomar). Então eu criar uma mistura de sessões de usuário e executá-los através do site para obter algo próximo a um quadro preciso de como o site pode ser executado.

Normalmente eu também vai fazer isso em um total de 4 máquinas diferentes em execução cerca de 80 sessões de usuários simultâneos para simular de forma realista o que estará acontecendo através da aplicação. Isso também garante que eu não gastar excessivamente muito tempo otimização de páginas raramente visitados e pode, em vez disso, concentrado sobre o desempenho geral do aplicativo ao longo dos caminhos críticos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top