Нагрузочное тестирование IdentityServer4 дает исключение: корреляция не удалась при попытке запросить маршрут signin-oidc после входа в систему - PullRequest
0 голосов
/ 06 июня 2019

Мы переносим наше приложение на IdentityServer4 для нашего приложения, я пытаюсь написать нагрузочный тест с использованием Visual Studio и могу запустить его вручную на локальном компьютере через браузер, но когда я записываю веб-тест и пытаюсь ответить на него, Я получаю исключение: Не удалось установить корреляцию Неизвестное расположениезапрос на вход в маршрут.Visual Studio извлекает код, id_token, область действия, состояние и состояние сеанса при входе в систему.Не уверен, как отладить это, потому что он работает с моим браузером, он просто не будет работать при запуске веб-теста через visual studio.Может ли это быть проблема с прокси-сервером при записи?

Любой совет будет полезным, если вы не найдете много информации о нагрузочном тестировании при входе в Identity Server 4 с помощью Visual Studio Load Testing.

I 'мы пытались извлечь nonce и state из начального запроса, чтобы вставить запрос в sign-oidc, но Visual Studio уже извлекает те же данные из этого поля Hidden.

Вот запрос, который не выполнен, он включенвеб-сервер, на котором находится signin-oidc

enter image description here

Ответ: enter image description here

Вотзапрос веб-теста

enter image description here

Он использует значения из предыдущего ответа от авторизации / обратного вызова, я также убедился, что это были те же значения, только одноэто было не совсем то же самое, что и в областях, где вместо пробелов был знак +, поэтому я установил для кодировки значение false, чтобы убедиться, что они совпадают.

enter image description here

Так как браузеротправлять сообщения из предыдущего запроса при входе вручную, а веб-тестирование не выполняется из браузера, а просто отправлять запрос публикации, что может что-то испортить?

Когда я вручную перехожу через фиддлер,этот запрос содержит следующий файл cookie, которого нет в веб-тесте:

enter image description here

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

1 Ответ

1 голос
/ 18 июня 2019

Мне удалось получить файлы cookie .AspNetCore.Correlation.oidc и .AspNetCore.OpenIdConnect.Nonce из ответа на первый запрос

enter image description here

Мне пришлось добавить пользовательское правило извлечения, чтобы получить эти файлы cookie из заголовка и сохранить их контекст (для использования в запросе singin-oidc).
Затем по запросу signin-oidc я сделал плагин для веб-тестаи добавил метод PreRequest для добавления файлов cookie из контекста, который был извлечен из первого запроса.

После этого я не получил ошибку для корреляции личности, и из ответа были заданы правильные файлы cookie,и когда я позвонил, чтобы получить токен доступа, используя токен обновления, я смог получить токен, чтобы установить его на токен-носитель для совершения звонков на другие apis.

Мне кажется, что мне не нужноИзвлечь куки из первого ответа, если заголовок их устанавливает, однако, поскольку это перенаправление 302, существуют зависимые запросы, которые также устанавливают куки.

enter image description here

Я не знаю, переопределяет ли это те, которые установлены из предыдущего запроса (те, которые мне нужны, например, nonce и корреляция).Мне также пришлось снять следующие зависимые запросы и извлечь заголовок местоположения из 302 из первого запроса и вручную сделать следующий запрос.

Если кто-то еще пишет веб-тест для входа в IdentityServer4 и нашел другое решениепожалуйста, дайте мне знать.

...