Apache Bench - разбираемся как это работает

Решил протестировать свой PHP сайт с помощью Apache Bench (ab), а именно авторизацию.

Для этого я должен POST-запросом послать логин и пароль, в моем случае нужно отправить еще и значение кнопки, по которой кликает пользователь:

$LoginFormUr = array( 'username' => 'root', 'password' => 'zzz');

$loginButtonValue = 'Вход';

Поэтому, я создаю файл post-data.txt с следующим содержимым:

LoginFormUr%5Busername%5D=root&LoginFormUr%5Bpassword%5D=zzz&loginButtonValue=%D0%92%D1%85%D0%BE%D0%B4

И наконец отправляю запрос:

ab -p post-data.txt -T application/json -H 'Authorization: abcd1234' -c 2 -n 2 https://site.ru/index.php?r=login/corporate

в результате Apache Bench сообщил, что все хорошо, но есть ошибки:

...
Failed requests: 499
    (Connect: 0, Length: 499, Exceptions: 0)
...

В данном случае ошибка про длинну ответа, ab предполагает, что все ответы одинаковы. Он просматривает длину содержимого первого ответа и затем сравнивает другие с этим.

На странице man:

Document Length
This is the size in bytes of the first successfully returned document.
If the document length changes during testing, the response is
considered an error.

Итак, если ваш первый запрос содержит следующие данные:

{"serverip":"1.2.3.4"}

А следующий:

{"serverip":"1.2.3.45"}

ab завершится с ошибкой Length, так как вывод будет на один символ длиннее.

Некоторые параметры утилиты AB

-A auth-username:password - передать данные для базовой аутентификации. То есть, фактически можно тестировать даже если доступ закрыт с помощью базовой аутентификации (htpasswd).

-c concurrency - количество параллельных запросов в единицу времени. По умолчанию, один реквест в единицу времени (можно считать, что в секунду).

 cookie-name=value - добавлять куки. Задается в виде пары имя=значение. Это поле можно повторять.

-f protocol - задает SSL/TLS протокол (SSL2, SSL3, TLS1, or ALL).

-h - отобразить краткую справку по параметрам

-k - включить KeepAlive, то есть осуществлять множество запросов в течение одной HTTP-сессии. По умолчанию данная возможность отключена.

-n requests - количество запросов, которое необходимо выполнить в течение сессии тестирования. По умолчанию, выполняется только один запрос, что не дает общей картины.

-q - подавляет вывод некоторых сообщений о процессе тестирования.

-t timelimit - максимальное количество секунд, которое необходимо затратить на тестирование. Это подразумевает значание параметра -n равное 50000. По умолчанию временной лимит не установлен.

-v verbosity - устанавливает уровень "разговорчивости": 4 и выше отображает информацию о заголовках, 3 и выше - информацию о кодах ответа (404, 200 и т. д.), 2 и выше - выводить предупреждения и прочую информацию.

-V - отобразить версию и выйти.

-w - вывести результаты в виде HTML-таблицы. По умолчанию таблица состоит из двух колонок с белым фоном.

-x <table>-attributes - строка для использования в качестве атрибутов для <table>. Атрибуты вставляются <table СЮДА >.

-y <tr>-attributes - строка атрибутов для <tr>.

-z <td>-attributes - строка атрибутов для <td>.

-X proxy[:port] - использовать прокси-сервер для запросов.

С полным набором параметров можно ознакомиться выполнив команду man ab в командной строке.

Оцени публикацию:
  • 0,0
Оценили человек: 0

Похожие статьи:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

Новые заметки:

Про что мы забываем когда делаем оценку задачи по времени

Список вопросов для собеседования разработчика по телефону

Symfony2 авторизация без Doctrine2 для чайника

Phpstorm7 LiveEdit

Жесткий хабр или не хабр, тогда кто?

Яндекс.Деньги мошенничество

Как узнать какие страницы в поиске яндекса или это секрет

Последние комменты:

Yapro CMS:

Здравствуйте, Гость | Войти | Регистрация | Карта сайта | RSS ленты | Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2018 YaPro.Ru

Главная » Веб-мастеру » Unix »