wcat выполняет перенаправления на порт 80, даже если по умолчанию было установлено значение 43xxx

#iis #iis-7 #load-testing #stress-testing #wcat

#iis #iis-7 #нагрузочное тестирование #стресс-тестирование #wcat

Вопрос:

Я использую IIS 7, и у меня есть веб-сайт, развернутый на порту 43xxx. Я пытаюсь выполнить нагрузочный тест с использованием wcat. Я пытаюсь получить доступ к URL / directaccess /, который, в свою очередь, вернет код состояния 302, сделайте перенаправление на другой URL-адрес, который также вернет код состояния 302, а затем последний URL вернет 200OK.

Я написал сценарий и файлы настроек для wcat. Указано по умолчанию (а также пробовалось для каждого запроса), чтобы установить порт на 43xxx, но когда я запускаю wcat, он возвращает одно 302 ok и еще одну ошибку 400 (они возвращаются в равных количествах, поэтому я предполагаю, что первый запрос в порядке, а последующий (первое перенаправление) плохой).

Я также заглянул в папку HTTPErr, чтобы проверить журналы, и там много ошибок 400, указывающих на запрос GET для того, что должно быть 2-м URL, но выполнено на порту 80, а не 43xxx, как указано мной в запросе (или настройки по умолчанию — которые, если я хорошо понял из документов, наследуются в перенаправлениях).

Я просто хотел бы выяснить, является ли это «нормальным» поведением для wcat. Не выполняет перенаправления на тот же порт, что и первоначальный запрос.

Игнорируйте тот факт, что я тестирую на локальном компьютере. Я использовал это только для настройки тестов перед их переносом на другой компьютер.

Это используемый сценарий.

 scenario
{
warmup   = 2;
duration = 5;
cooldown = 2;

default
{
    setheader
    {
        name    = "Connection";
        value   = "keep-alive";
    }

    version     = HTTP11;
    statuscode  = 200;
    close       = ka;
    port = 43111;
    redirect = true;
}

transaction
{
    id = "root transaction";
    weight = 100;

    request
    {
        url = "/login/DirectAccess.rails?code=xxxxxxxxx";
        statuscode = 302;
        redirect = true;
        port = 43111;
    }

    sleep
    {
        delay = 1000;
    }
}
}
  

Ответ №1:

Я думаю, это зависит от того, что сервер отправляет обратно в заголовке Location перенаправления 302. Если он не содержит доменного имени (например, Местоположение: / redirect/to/page), то WCAT не следует изменять домен или номер порта и продолжать использовать тот же номер порта. Однако, если заголовок Location содержит полное доменное имя (например, Location: http://www.thissite.com/redirect/to/page ) без номера порта WCAT переключится на использование порта 80.

Комментарии:

1. Что ж, JMeter отлично работает в той же настройке .. и выполняет все перенаправления.

2. Я провел некоторый тест с WCAT 6.1 (не последняя версия) и должен подтвердить ваши результаты. Похоже, что WCAT неправильно выполняет перенаправления и изменяет порт на 80.