我必须在Jmeter上负载测试一个WebSocket。WebSocket已经使用Springboot实现。我在测试时在Jmeter上发送Stomp数据时遇到了一个问题。我正在根据stomp框架适当地对文本进行框架。这是一个新的框架:
log.info("Connect PreProcessor");
String con = "CONNECT\n" +
"login:${wsToken}\n" +
"passcode:admin\n" +
"accept-version:1.1,1.0\n" +
"heart-beat:0,0\n" +
"\n"+'\0' ;
vars.put("wsStompCon", con);
字符串
我正在发出发送请求,当我订阅连接时,AMQ建立连接,我得到CONNECTED响应。所以连接没有问题。当我发送数据时会发生问题:
String User = "SEND\n" +
"content-length:39\n" +
"destination:/app/chat.newUser\n\n" +
"{\"sender\": \"Usr111222\",\"type\":\"JOIN\"}" +
'\0' ;
vars.put("wsAddUser", User);
型
我把var 'wsAddUser'放在发送采样器中,并发送数据。
我在响应采样器中得到这个错误:
- 错误消息:帧必须以空八位字节内容长度终止:0*
我使用的WebSocket插件由Peter Doornbosch提到:
https://bitbucket.org/pjtr/jmeter-websocket-samplers/src/master/
我已经在Jmeter.Properties文件中将编码更改为UTF-8。我认为问题是由于编码引起的,但我不确定。我应该如何更改此问题?
1条答案
按热度按时间ztyzrc3y1#
1.看起来你对内容长度头的计算不是很正确,因为
{"sender": "Usr111222","type":"JOIN"}
是37个八位字节,而\0
是另一个八位字节,所以它应该是38。1.不建议将JMeter Functions or Variables内联到Groovy脚本中,因此需要替换这一行:
字符串
这一个:
型
(as只要它不是GStringTemplate)
其中
vars
代表JMeterVariables类示例,有关详细信息,请参阅JavaDoc,有关可用于JSR 223测试元素的其他JMeter API快捷方式的说明,请参阅Top 8 JMeter Java Classes You Should Be Using with Groovy