はじめに
以前にrobotframeworkのWebSocketClientを使った際にエラーが出ましたが、今回はその時と似た状況でのエラーについてです。
(WebSocketClientはpythonのwebsocket-clientをrobotframework上でも使えるようにしたものです)
ソースコード&エラー
エラーはWebSocketClientにあるサンプルソースを動かそうとした時に起きました。
サンプルソースは次の通りです。
# socket_test.robot
*** Settings ***
Library WebSocketClient
*** Variables ***
*** Keywords ***
*** Test Cases ***
Echo
${my_websocket}= WebSocketClient.Connect 127\.0\.0\.1
WebSocketClient.Send ${my_websocket} Hello
${result}= WebSocketClient.Recv ${my_websocket}
Should Be Equal Hello ${result}
WebSocketClient.Close ${my_websocket}
これを実行すると
==============================================================================
Socket Test
==============================================================================
Echo | FAIL |
ValueError: url is invalid
------------------------------------------------------------------------------
Socket Test | FAIL |
1 test, 0 passed, 1 failed
==============================================================================
とエラーに。
エラー内容はシンプルで
「URLが無効です」
となります。
理由も単純で11行目のIPアドレスのエスケープシーケンスである「/」が不要でした。
これを除去すると問題なく動くようになりました。
さいごに
今回はWebSocketClientのサンプルソースを利用した際に起きたエラーについてでした。
robotframeworkは「.」などはエスケープが必要ですが、WebSocketClientの引数では不要です。
今回はエラーから原因が予想しやすかったですが、こうした表記の違いはrobotframeworkはよくあるので注意が必要ですね。
(WebSocketClientは公式サイトに記載がほぼないのも今回のエラーの原因でした)
この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございます。