2016-05-25 3 views
0

Robot Framework http://bulkan.github.io/robotframework-requests/#Postで書かれたテストケースからのバルカン要求ライブラリを使用してリクエストと投稿を送信しようとしています。ファイル。不幸にも、私はいつも以下のような同じエラーがあります。バルカンの要求を使用したPOST要求のデータとファイル(ロボットフレームワーク)

私のテストケース:(ロボットフレームワークから)

X_T_Should Upload File Correctly And Get HTTP 200 
    Send Default File To SUT And Return Response 

*** Keywords *** 
Send Default File To SUT And Return Response 
    [Arguments] ${user_login}=${USER_LOGIN} ${user_password}=${USER_PASSWORD} 
    ${url}= Get URL 
    ${auth}= Create List ${user_login} ${user_password} 
    Create Session rm ${url} auth=${auth} 
    &{headers}= Create Dictionary Content-Type=application/x-www-form-urlencoded 
    &{data}= Create Dictionary name=file filename=${DEFAULT_FILE_NAME} 
    ${file_data}= Get Binary File ${CURDIR}${/}Resources${/}${DEFAULT_FILE_NAME} 
    &{files}= Create Dictionary file=${file_data} 
    ${resp}= Post Request rm ${UPLOAD_URI} files=${files} data=${data} headers=${headers} 
    Delete All Sessions 

エラー:

20160525 09:47:10.645 : FAIL : ValueError: Data must not be a string. 

問題は、キーワードPOSTリクエストです。引数ファイルまたはデータを設定しないときは、すべてがうまくいくが、両方の引数を設定すると、私はこれらの奇妙なエラーを参照してください。

これはライブラリのバグですか?

答えて

0

ドキュメントによると、filesパラメータは、という名前のリストで、です。実際のファイルの内容をキーワードに渡しています。これは、「データは文字列であってはなりません」という理由を説明しているかもしれません。

+0

私はそれを得ました。ありがとう。最後に、私はPythonでキーワードを書いた。それはより読みやすくなります。 – user6778654

0

この例外も発生しました。例外はRequests Pythonライブラリで発生しているようです。 dataが文字列であるかどうかをline 119 of requests/models.pyで 、

elif isinstance(data, basestring) 

チェックします。そして、ロボットフレームワークseemsはほとんど常に文字列にキャストdataを要求します。この例外に関するrobotframework-requestsにはissueがあります。

関連する問題