Я ищу инструмент для тестирования веб-сайта из командной строки Linux.
Исходя из результатов, мне нужно знать HTTP-ответ (коды состояния), а также оценить время, необходимое для загрузки различных элементов сайта.
Заранее спасибо.
Можешь попробовать wget
с участием -p
вариант:
wget -p http://site.com
Он сообщит вам, сколько времени нужно, чтобы загрузить каждый элемент, и коды возврата для каждого запроса.
См. Apache Benchmark:
Это должно дать вам представление об эффективности вашей страницы.
Вы можете посмотреть на следующие варианты 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