Назад | Перейти на главную страницу

Тестирование веб-сайта из командной строки Linux

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

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

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

Можешь попробовать wget с участием -p вариант:

wget -p http://site.com

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

См. Apache Benchmark:

Тест Apache

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

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

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

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

  • --timestamping - Включить отметку времени

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

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

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

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

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

попробуйте инструмент командной строки под названием 'siege' в соответствии с инструкциями Вот

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

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

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

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

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

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

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

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

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

Для проверки заголовков мне нравится 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