使用Visual Studio运行录制的Web测试时,初始化信号器连接会触发错误。
无法识别的用户身份。用户身份在期间不能更改 有效的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连接期间无法更改。 #34;
在这种情况下,您的应用程序应重新连接到服务器以确保连接ID和用户名是协调的。
不确定如何在网络测试期间协调用户名和连接ID。
答案 0 :(得分:1)
我怀疑一个尚未处理的动态参数,因此在执行测试时正在传递记录测试时服务器提供的值。然后,服务器检测到请求正在传递意外值(即旧值)并创建该消息。
有几个网页提供有关调试Web性能测试的建议。一种技术是记录尽可能相同的两个版本的测试。然后使用文本比较程序来比较两个" .webtest"文件。有时记录第三个以不同用户身份登录的测试,但与其他两个测试几乎相同。然后比较第三个" .webtest"反对其他人。希望这种比较能够表明以前没有注意到的一个或多个动态参数。