【问题标题】:SignalR does not connect when i record it with JMeter当我用 JMeter 录制 SignalR 时,它没有连接
【发布时间】:2019-11-13 18:05:28
【问题描述】:

您好,我正在对应用程序进行性能测试,但我无法复制 signalR 连接,我所做的是调用 negociate api

/signalr/negociate 使用连接令牌获得预期的响应

"Url":"/MyApp/signalr","ConnectionToken":"gM8NUnZtDg6oYU3Y9sfZgnIDlInyvspePwDuRdmqZlslRgkPIp8w/c0FZzllhwiUdZlOmPkyBd2DGU76ldt3v1B25lQlTeg1jETBWRkqaXD0QGpeNJLl3KqvnJ3v4YQ2","ConnectionId":"e1adc41d-ad0d-439f-858c-1fa47bb59083","KeepAliveTimeout":20.0,"DisconnectTimeout":30.0,"ConnectionTimeout":110.0,"TryWebSockets":true,"ProtocolVersion":"1.5","TransportConnectTimeout":5.0,"LongPollDelay":0.0}

然后我使用 JMeter 提取该令牌(并将其用于连接调用)

GET https://myHost/myApp/signalr/connect?transport=webSockets&clientProtocol=1.5&connectionToken=gM8NUnZtDg6oYU3Y9sfZgnIDlInyvspePwDuRdmqZlslRgkPIp8w%2Fc0FZzllhwiUdZlOmPkyBd2DGU76ldt3v1B25lQlTeg1jETBWRkqaXD0QGpeNJLl3KqvnJ3v4YQ2&connectionData=%5B%7B%22name%22%3A%22workhub%22%7D%5D&tid=2

但响应始终是 400 Bad Request

不是一个有效的网络套接字请求。

知道为什么调用失败了吗?

非常感谢

【问题讨论】:

  • 更新:如果我使用相同的令牌执行 /myApp/signalr/start ,则响应成功 -> { "Response": "started" }

标签: jmeter signalr performance-testing


【解决方案1】:

我认为您不能使用 JMeter 的 HTTP(S) Test Script Recorder 记录 WebSocket 请求,因为上述 HTTP(S) 测试脚本记录器只能生成 HTTP Request 采样器 JMeter 5.2

我建议使用以下方法之一来捕获传出的 WebSocket 请求:

完成后,您可以安装JMeter WebSocket Samplers 插件和use the appropriate Samplers to simulate the WebSocket requests,您需要手动设置有效负载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 2015-03-15
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    相关资源
    最近更新 更多