Тестирование сайта из командной строки Linux [закрыто]

29

Я ищу инструмент для тестирования веб-сайта из командной строки Linux.

Исходя из результатов, мне нужно знать http-ответ (коды состояния), а также измерять время, необходимое для загрузки различных элементов сайта.

Заранее спасибо.

Embreau
источник
Что вы нашли, посмотрели или рассматриваете (подходит / не подходит) до сих пор?
Mctylr
Ни один из этих ответов не звучит очень хорошо для меня. Вы все еще должны ждать негатива
гео-теория

Ответы:

35

Вы можете попробовать wgetс -pопцией:

wget -p http://site.com

Он скажет вам, сколько времени занимает загрузка каждого элемента и коды возврата для каждого запроса.

Дэн Андреатта
источник
2
wget -p URL -O /dev/null
Федир РИХТИК
9

Пожалуйста, посмотрите Apache Benchmark:

Apache Benchmark

Это должно дать вам обзор эффективности вашей страницы.

Андрэ
источник
Apache Benckmark не может быть использован для этого, так как это внешний источник, на самом деле это список воспроизведения видео YouTube. Мы отслеживаем доступ к этому ресурсу. TY
Embreau
Я не понимаю, почему вы не можете использовать AB; Как и wget в следующем ответе, он будет работать до тех пор, пока URL-адрес вашего сайта доступен с компьютера, на котором вы запускаете инструмент тестирования.
gareth_bowles
Тест Apache не ограничен локальными ресурсами, он предназначен для полного измерения производительности (включая задержку в сети, ввод-вывод и т. Д.).
Андре
Полезно знать, я оценю этот вариант, спасибо.
Embreau
6

Вы можете посмотреть на следующие варианты curl:

  • --write-out - отображает любую из нескольких временных переменных
  • --trace-time - добавляет метку времени к каждой трассе или подробной строке
  • --verbose
  • --include - (HTTP) Включить HTTP-заголовок в вывод.
  • --trace-ascii <file> - Включает полный дамп трассировки всех входящих и исходящих данных, включая описательную информацию

И следующий вариант wget:

  • --timestamping - Включите отметку времени
Приостановлено до дальнейшего уведомления.
источник
curl --trace-ascii <file> --trace-time -o /dev/null <url>было именно то, что мне было нужно. Благодарность!
dsummersl
3

Selenium и Curl - хорошие варианты, в зависимости от вашей цели. Кроме того, утилита, которая мне очень понравилась, есть twill. Более подробная информация доступна на http://twill.idyll.org/ .

Это приятно, поскольку у него есть свой собственный маленький специализированный язык для заполнения форм, проверки ссылок и проверки кодов ответов. Поскольку это всего лишь код Python, вы можете легко импортировать библиотеки и автоматизировать свои тесты самостоятельно, если вы хотите сделать что-то другое.

McJeff
источник
2

Используйте curl, чтобы получить заголовок страницы и время процесса:

time curl -I http://yourpage.com | grep HTTP

заверните это в цикл, и вы готовы. Таким же образом вы можете проверить все элементы, если знаете URL.

Sideshowcoder
источник
1

попробуйте инструмент командной строки под названием «осада», как указано здесь

lefterav
источник
6
Это не то, что он просит. и ты тоже опоздала на 3 года =)
mveroone
1

Какой инструмент вы выберете, зависит от того, что вы хотите измерить, и от сложности сайта.

Если поведение сайта зависит от файлов cookie (например, пользователь должен войти в систему), тогда ab / curl / wget (описанный в других ответах) будет недостаточно. Одним из решений является использование http :: recorder / www :: mechanize .

Все данные, которые вы запрашиваете, находятся в журналах вашего веб-сервера - и простой скрипт awk вернет их в более читаемой форме.

сравните время загрузки различных элементов сайта.

Это очень плохой показатель производительности (хотя он полезен для мониторинга работоспособности производственной системы). За исключением больших / медленных ресурсов, таких как громоздкие отчеты, iso-изображения, мультимедийные файлы, восприятие производительности практически не связано со временем, затрачиваемым на обработку одного запроса, и его действительно трудно измерить точно (просто добавив% D в вашем журнале apache, кажется, решает проблему, но игнорирует TCP-рукопожатия, согласование SSL, эффекты кэширования, время поиска DNS).

Лучшее решение - использовать что-то вроде бумеранга - но это работает в браузере с поддержкой Javascript. Хотя это дает лучший показатель воспринимаемой производительности, чем отслеживание отдельных HTTP-запросов, он полагается на события браузера, чтобы получить значение для производительности, но предполагаемая производительность - это все, что требуется для визуализации окна просмотра (опять же, для этого есть инструменты - взгляните на инструменты киноленты в WebPageTest ).

Существует также аргумент в пользу измерения производительности, фактически предоставляемой пользователям сайта (RUM), по сравнению с синтетическим тестированием.

symcbean
источник
0

Если вам нужно что-то большее, чем curl и / или wget, есть также селен

неразумность
источник
0

Я думаю, что для тестирования производительности вы можете попробовать JMeter . Вы можете записать свой тест, используя встроенный прокси. Он также работает в текстовом режиме, локальном или распределенном. Вы можете сохранить свои результаты в формате CSV или XML. Если вы используете формат xml, вы также можете хранить содержимое страницы.

ghm1014
источник
0

Для проверки заголовков мне нравится httpie( документы ).

Установка

pip install httpie --user

использование

$ http -h http://serverfault.com/q/124952/113899
HTTP/1.1 302 Found
Accept-Ranges: bytes
Age: 0
Cache-Control: private
Connection: keep-alive
Content-Length: 198
Content-Type: text/html; charset=utf-8
Date: Fri, 06 Jan 2017 10:01:06 GMT
Location: http://serverfault.com/questions/124952/testing-a-website-from-linux-command-line
Set-Cookie: prov=392298d9-103e-7dfc-5b55-8738be46cf3b; domain=.serverfault.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
Via: 1.1 varnish
X-Cache: MISS
X-Cache-Hits: 0
X-DNS-Prefetch-Control: off
X-Frame-Options: SAMEORIGIN
X-Request-Guid: 07a25de4-6e16-4aa8-acfc-12b1bbbc6180
X-Served-By: cache-hhn1543-HHN
X-Timer: S1483696865.976259,VS0,VE187
Мартин Тома
источник