如何用Robot Framework验证WebSocket连接接收消息及Send异常排查
问题原因
你混淆了WebSocketClient.Send方法的返回值:该方法返回的是成功发送的字节数,而非服务器返回的响应消息。你看到的13就是你发送的内容对应的字节长度,并非服务器的echo结果。
解决步骤
要获取服务器的echo响应,需要在发送消息后调用WebSocketClient.Recv方法来接收:
Echo ${my_websocket}= WebSocketClient.Connect wss://*************/websocket ${result}= WebSocketClient.Recv ${my_websocket} Should Be Equal Connected!!!!! ${result} # 发送消息,无需接收Send的返回值(除非要验证发送的字节数) WebSocketClient.Send ${my_websocket} Hello # 接收服务器的echo响应 ${echo_result}= WebSocketClient.Recv ${my_websocket} Log ${echo_result} Should Be Equal Hello ${echo_result} WebSocketClient.Close ${my_websocket}
额外说明
- 如果你传递带双引号的
"Hello"作为发送内容,实际发送的字符串会包含引号,此时字节数会是7,但你得到13可能是因为编码或额外转义,建议直接传递不带引号的Hello作为参数。 - 确认服务器确实支持echo功能,会将收到的消息原样返回。
内容的提问来源于stack exchange,提问作者Jacob
相关产品推荐
相关产品推荐

