Веб-тест производительности: SignalR — нераспознанное удостоверение пользователя

При запуске записанного веб-теста с использованием Visual Studio инициализация подключения сигнализатора вызывает ошибку.

Неизвестная личность пользователя. Удостоверение пользователя не может измениться во время активного подключения SignalR.

Запрос:

GET /Computer/signalr/connect?
transport=foreverFrame&
connectionToken=xxx&
connectionData=yyy&
tid=7&
frameId=1 HTTP/1.1

User-Agent : Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Accept : */*
Accept-Language : en-GB
Accept-Encoding : GZIP
Host : test.host.com
Cookie : __RequestVerificationToken_L01XTS1NYXN0ZXI1=YCuMgJ7WD6QNtHnUvgM4EFvVJ5lllR477xjaMAzFogypdqXEFV054ygGy0Spnqwo3LJDbDHyzGudF8QdTRZW30zcBHGh8oI7CEj2L0k01Eg1

Ответ:

HTTP/1.1 403 Forbidden
Pragma : no-cache
Transfer-Encoding : chunked
X-Content-Type-Options : nosniff
Cache-Control : no-cache
Content-Type : text/html
Date : Wed, 03 Sep 2014 13:42:03 GMT
Expires : -1

Обновление:

Похоже, проблема заключается в согласовании изменения статуса пользователя с активным соединением.

Если статус проверки подлинности пользователя изменится при наличии активного подключения, пользователь получит сообщение об ошибке "Идентификатор пользователя не может измениться во время активного подключения SignalR".

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

Не уверен, как согласовать имя пользователя и идентификатор подключения во время веб-теста.


person thedev    schedule 03.09.2014    source источник


Ответы (1)


Я подозреваю, что динамический параметр не был обработан, поэтому значение, предоставленное сервером при записи теста, передается при выполнении теста. Затем сервер обнаруживает, что запрос передает неожиданное значение (т. е. старое значение), и создает это сообщение.

Существует несколько веб-страниц, дающих советы по отладке веб-тестов производительности. Один из методов заключается в записи двух версий теста, которые, насколько это возможно, идентичны. Затем используйте программу сравнения текстов, чтобы сравнить два файла «.webtest». Иногда записывается третий тест, который входит в систему как другой пользователь, но в остальном он максимально идентичен двум другим тестам. Затем сравните этот третий «.webtest» с другими. Мы надеемся, что сравнение укажет на один или несколько динамических параметров, которые ранее не отмечались.

person AdrianHHH    schedule 04.09.2014
comment
Только что сравнил несколько записей теста. Единственное, что отличается, — это справочники запросов, которые, как я полагаю, являются нормальными, и параметр строки запроса ConnectionToken, связанный с подключением SignalR. VS также не получает никаких динамических параметров, поэтому не уверен, что проблема в этом. - person thedev; 05.09.2014
comment
Создатели веб-сайтов используют множество методов для передачи динамических данных. Visual Studio понимает только некоторые из них. Название элемента, который вы нашли, т.е. ConnectionToken, звучит так, как будто это динамическое значение, которое должно быть извлечено из какого-то ответа, а затем передано в последующих запросах. - person AdrianHHH; 05.09.2014