#asp.net #forms #authentication #httphandler #jmeter
#asp.net #формы #аутентификация #httphandler — обработчик #jmeter #httphandler
Вопрос:
Я уже использовал Jmeter для нагрузочного тестирования моего ASP.NET 4 сайта с аутентификацией в формах, и все работало нормально.
С тех пор было добавлено несколько HttpHandlers, которые я пытаюсь загрузить для тестирования. Если нагрузочный тест выполняется с помощью 1 потока, все работает нормально. Если я загружаю тест с 2 потоками, я получаю исключение с нулевой ссылкой при вызове Membership.GetUser()
. Я отладил это локально и вижу, что HttpContext.Current.User
также равно null, однако вызов Membership.GetUser("userName")
возвращает пользователя.
Я знаю, что приложение может обрабатывать более 2 пользователей, я только что использовал другое приложение для нагрузочного тестирования (Web Performance Load Tester), и оно не выдало ошибки.
Кто-нибудь может указать мне правильное направление, пожалуйста?
Спасибо
Редактировать:
Просто чтобы уточнить, я тестирую это после аутентификации
Ответ №1:
Проблема в том, что участник проверки подлинности не будет установлен до следующего запроса к серверу. Если вы используете элемент управления Login, вы можете использовать свойство UserName для идентификации пользователя.Главный ключ к вашей проблеме.
Комментарии:
1. Спасибо за ответ… обработчики http находятся глубоко на сайте, т. Е. Между входом в систему и запросом обработчика http поступает много запросов к серверу. К тому времени, конечно, был бы установлен участник аутентификации? Остальная часть сайта отлично работает при нагрузочном тестировании, просто http-обработчики отключаются
Ответ №2:
Моя проблема была связана с тем, что элемент «Предварительный процессор пользовательских параметров» в Jmeter не выполнялся должным образом / достаточно скоро. Я заменил это элементом «Конфигурация набора данных CSV» и добавил его непосредственно под группой потоков, и он работает нормально.
Поскольку пользовательские параметры не использовались, поток не входил в веб-приложение, следовательно, почему GetUser()
возвращал null!