Получение полного списка URL-адресов в приложении Rails

StackOverflow https://stackoverflow.com/questions/84290

  •  01-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

$ 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:'

Другие советы

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

Обычно для нагрузочного тестирования я использую такой инструмент, как ВебЗАГРУЗКА и создайте сценарии для нескольких различных типов пользовательских сеансов (или разных маршрутов, которые могут выбрать пользователи).Затем я создаю набор пользовательских сеансов и запускаю их через веб-сайт, чтобы получить примерно точную картину того, как сайт может работать.

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

Ознакомьтесь с интеграционными тестами Spider, написанными Кортни Гаскинг

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top