Тестування веб-сайту з командного рядка Linux [закрито]


29

Я шукаю інструмент для тестування веб-сайту з командного рядка Linux.

З результатів мені потрібно знати відповідь http (коди статусу), а також орієнтувати час, який потрібно на завантаження різних елементів сайту.

Спасибі заздалегідь.


Що ви знайшли, подивилися чи вважаєте (підходящим / не підходящим) поки що?
mctylr

Жодна з цих відповідей не звучить для мене дуже добре. Потрібно ще чекати віків на негатив
геотеорія

Відповіді:


35

Ви можете спробувати wgetз -pваріантом:

wget -p http://site.com

Він розповість, скільки часу потрібно для завантаження кожного елемента та повернення кодів для кожного запиту.


2
wget -p URL -O /dev/null
Федір РИХТИК

9

Будь ласка, перегляньте показник Apache:

Apache Benchmark

Це має дати вам огляд продуктивності вашої сторінки.


Для цього не можна використовувати орієнтир Apache, оскільки він є зовнішнім джерелом, адже це список відтворення відео на 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

Селен і Керл - хороші варіанти залежно від того, яка ваша мета. Також утиліта, яка мені подобається зовсім небагато twill. Більше інформації розміщено на веб-сайті http://twill.idyll.org/ .

Це приємно, оскільки він має власну невелику спеціалізовану мову для заповнення форм, перевірки посилань та перевірки кодів відповідей. Оскільки це лише код Python, ви можете легко імпортувати бібліотеки та автоматизувати свої тести самостійно, якщо хочете зробити щось інше.


2

Використовуйте curl, щоб отримати заголовок сторінки та час:

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

заверніть це на певний час і вам добре піти. Так само ви можете перевірити всі елементи, якщо знаєте URL-адресу.



1

Який інструмент ви виберете, залежить від того, що ви хочете виміряти, і складності сайту.

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

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

орієнтовний час, який потрібно для завантаження різних елементів сайту.

Це дуже поганий показник ефективності (хоча це корисно для моніторингу стану здоров'я виробничої системи). За винятком великих / повільних ресурсів, таких як об'ємні звіти, ізо-зображення, мультимедійні файли, сприйняття продуктивності має дуже мало спільного з часом, необхідним для опрацювання одного запиту - і його справді важко точно виміряти (просто додаючи% Здається, що D до вашого журналу apache вирішує проблему, але ігнорує рукостискання TCP, узгодження SSL, кешування ефектів, часи пошуку DNS).

Краще рішення - використовувати щось на зразок Boomerang - але це працює в браузері, що підтримує Javascript. Хоча це дає кращий показник сприйнятої ефективності, ніж відстеження окремих запитів HTTP, він покладається на події браузера, щоб отримати значення для продуктивності, але сприйнята ефективність - це весь час, необхідний для візуального огляду (знову є інструменти для цього - ознайомтеся з інструментами для зняття фільму в WebPageTest ).

Існує також аргумент щодо вимірювання ефективності, фактично наданої користувачам сайту (RUM) та синтетичному тестуванню.



0

Я думаю, що для запуску тесту на продуктивність ви можете спробувати JMeter . Ви можете записати свій тест за допомогою вбудованого проксі. Він також працює в текстовому режимі, локальному або розповсюдженому. Ви можете зберегти результати у форматі CSV або XML. Якщо ви використовуєте формат XML, ви також можете зберігати вміст сторінки.


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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.