Я ищу инструмент для тестирования веб-сайта из командной строки Linux.
Исходя из результатов, мне нужно знать http-ответ (коды состояния), а также измерять время, необходимое для загрузки различных элементов сайта.
Заранее спасибо.
Я ищу инструмент для тестирования веб-сайта из командной строки Linux.
Исходя из результатов, мне нужно знать http-ответ (коды состояния), а также измерять время, необходимое для загрузки различных элементов сайта.
Заранее спасибо.
Ответы:
Вы можете попробовать wget
с -p
опцией:
wget -p http://site.com
Он скажет вам, сколько времени занимает загрузка каждого элемента и коды возврата для каждого запроса.
wget -p URL -O /dev/null
Пожалуйста, посмотрите Apache Benchmark:
Это должно дать вам обзор эффективности вашей страницы.
Вы можете посмотреть на следующие варианты curl
:
--write-out
- отображает любую из нескольких временных переменных--trace-time
- добавляет метку времени к каждой трассе или подробной строке--verbose
--include
- (HTTP) Включить HTTP-заголовок в вывод.--trace-ascii <file>
- Включает полный дамп трассировки всех входящих и исходящих данных, включая описательную информациюИ следующий вариант wget
:
--timestamping
- Включите отметку времениcurl --trace-ascii <file> --trace-time -o /dev/null <url>
было именно то, что мне было нужно. Благодарность!
Selenium и Curl - хорошие варианты, в зависимости от вашей цели. Кроме того, утилита, которая мне очень понравилась, есть twill
. Более подробная информация доступна на http://twill.idyll.org/ .
Это приятно, поскольку у него есть свой собственный маленький специализированный язык для заполнения форм, проверки ссылок и проверки кодов ответов. Поскольку это всего лишь код Python, вы можете легко импортировать библиотеки и автоматизировать свои тесты самостоятельно, если вы хотите сделать что-то другое.
Используйте curl, чтобы получить заголовок страницы и время процесса:
time curl -I http://yourpage.com | grep HTTP
заверните это в цикл, и вы готовы. Таким же образом вы можете проверить все элементы, если знаете URL.
Какой инструмент вы выберете, зависит от того, что вы хотите измерить, и от сложности сайта.
Если поведение сайта зависит от файлов cookie (например, пользователь должен войти в систему), тогда ab / curl / wget (описанный в других ответах) будет недостаточно. Одним из решений является использование http :: recorder / www :: mechanize .
Все данные, которые вы запрашиваете, находятся в журналах вашего веб-сервера - и простой скрипт 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