我正在尝试使用JMeter加载测试WebRTC服务器。
wss URL在浏览器中工作正常,但在JMeter中,它在WebSocketOpenConnection中返回400错误。
我尝试访问的URL是:wss://myserver Port 3004 Path socket.io/?userId=K&EIO=3&transport=websocket
相同的URL在Chrome中正常打开。
JMeter日志:2022-09-08 16:27:53,195 ERROR e.l.w.WebSocketClient: Ignoring user supplied header 'Connection=Upgrade' 2022-09-08 16:27:53,195 ERROR e.l.w.WebSocketClient: Ignoring user supplied header 'Upgrade=websocket' 2022-09-08 16:27:54,320 ERROR e.l.j.w.PingPongSampler: Sampler 'WebSocket Ping/Pong': there is no connection to re-use
个
知道我错过了什么吗?
谢谢
1条答案
按热度按时间mpgws1up1#
如果您的测试计划中只有一个
WebSocketOpenConnection
采样器,这就说明了很多问题。您的JMeter测试must represent a real user opening a real browser and accessing your web application with 100% accuracy,作为使用真实浏览器的真实的用户,您首先应该向页面发送一个HTTP GET请求,主要是为了获得一些成功建立WebSocket连接所需的cookies。
完成后,您需要实现protocol upgrade mechanism来创建会话。
只有这样,您才应该尝试打开WebSocket连接,并开始发送和/或接收消息/帧。
因此,您需要创建与浏览器(或其他应用程序)相同的网络足迹,然后请求才会成功。不要忘记动态参数的关联,因为这个
K&EIO
用户ID似乎是生成的。