Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Siege с патчами

Сомневаюсь, что кому-то надо, но вдруг. Первые пару дней отпуска (а у меня был отпуск, сегодня кончился), пачтил простенькую (по сравнению с jMeter) утилиту для нагрузочного тестирования — Siege. Она хороша тем, что умеет ходить по сайту заданными путями, иммитируя действия пользователя и сохраняя куки.

Я сделал версию со своими патчами, положил на Гитхабе. Во-первых, починил баг с неподставляющими время от времени переменными (заплатку отправил автору), во-вторых, так как у нас авторизационный ключ в проекте, который мы тестируем, прописывается прямо в урле, сделал такую вещь — при редиректе урл разбирается на составляющие ключ-значения, потом эти значения можно подставлять в следующие по порядку урлы в синтаксисе {{VARNAME}}.

Т. е. можно сделать что-то такое:

HOST=http://example.org
USER=bolk
PASS=password

{$HOST}/login.php?user={$USER}
# предыдущий урл редиректит нас на /list.php?list_id=5&SESSION=некое-значение
# SESSION теперь нужно будет добавлять в каждый следующий урл:
{$HOST}/list_detail.php?SESSION={{SESSION}}

Есть ещё специальная переменная {{QUERY_STRING}}, которая подставляет строку запроса из урла редиректа целиком, а так же две переменные — {{:PID}} (текущий айди процесса) и {{:RND}} (случайное число), которые я использовал для отладки, да так и не убрал.

Я не делал проверки на выделение памяти (выделяется крошечное её число) и в паре мест использовал статический буфер (так что если у вас будет урл больше 2К или ПОСТ-запрос больше 32К, программа рухнет) — мы ещё не решили точно будет ли использовать эту программу, потому тратить время, чтобы делать «на века» пока нет смысла.