Получение полного списка URL-адресов в приложении rails - PullRequest
8 голосов
/ 17 сентября 2008

Как получить полный список всех URL, которые может сгенерировать мое приложение rails?

Я не хочу, чтобы маршруты, которые я получаю, получали маршруты rake, вместо этого я хочу, чтобы URL-адреса actul соответствовали всем сгенерированным динамически страницам в моем приложении ...

Возможно ли это вообще?

(Предыстория: я делаю это, потому что мне нужен полный список URL-адресов для некоторого нагрузочного тестирования, которое я хочу выполнить, которое должно охватывать всю широту приложения)

Ответы [ 3 ]

10 голосов
/ 18 сентября 2008

Я смог произвести полезный вывод с помощью следующей команды:

$ 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

Краткий справочник по 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.

О ack

ack похоже на grep, но используйте perl регулярные выражения, которые являются более полными / мощными.

-o говорит ack выводить только совпадающую подстроку, и шаблон, который я использовал, ищет все, что не является пробелом, перед которым стоит 'URL:'

1 голос
/ 17 сентября 2008

Вы можете довольно быстро взломать программу, которая получает выходные данные rake routes и затем анализирует выходные данные, чтобы составить список URL-адресов.

Что я обычно делал для нагрузочного тестирования, так это использовал инструмент, подобный WebLOAD , и создавал сценарии для нескольких различных пользовательских сессий (или разных маршрутов, по которым могут идти пользователи). Затем я создаю смесь пользовательских сессий и запускаю их через веб-сайт, чтобы получить точную картину того, как сайт может работать.

Обычно я также делаю это на 4 разных машинах, на которых выполняется около 80 одновременных пользовательских сессий, чтобы реалистично имитировать то, что будет происходить через приложение. Это также гарантирует, что я не буду тратить слишком много времени на оптимизацию редко посещаемых страниц и вместо этого могу сосредоточиться на общей производительности приложений по критическим путям.

0 голосов
/ 28 марта 2012

Ознакомьтесь с тестами интеграции пауков, написанными Courtnay Gasking

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...