【问题标题】:Passing --form file as part of ROBOT Framework传递 --form 文件作为 ROBOT 框架的一部分
【发布时间】:2021-02-26 20:09:02
【问题描述】:

我正在尝试在 ROBOT 框架中传递以下 API 请求

curl --request POST --url <API End Point>  --form 'sourcefile=@/home/test.zip' --header "Authorization: <Bearer Token>"

等效的机器人测试用例,

Sample Test Case
    [Arguments]    ${token}=default
    Create Session    mxesession    ${mxe_host}
    ${accessToken}=    Catenate    Bearer    ${token}
    ${data}=    Create Dictionary    sourcefile=/home/test.zip
    ${header}=    Create Dictionary    Authorization=${accessToken}
    ${response}=   Post Request    mxesession    /v1/ml   files=${data}    headers=${header}
    Should Be Equal As Strings    ${response.status_code}    200

上面的测试用例在我执行时成功通过。但是该文件无法被应用程序成功处理,而直接通过curl请求传递时已成功处理。所以,我在这里想说的一点是,我在这里传递的文件没有问题,而通过 curl 请求命令和机器人框架测试用例传递给应用程序的文件似乎有所不同。

测试用例是否正确,尤其是我传递“源文件”的方式

我应该在机器人框架中以不同的方式对待“@”/home/test.zip 中的这条路径吗?

【问题讨论】:

  • 对我来说,乍一看还不错。 the file could not be processed by the application successfully 你得到了什么?服务器的响应代码是什么?您能否通过 localhost 上的代理发送请求并查看这两个请求的差异?
  • 远程系统将无法读取您的本地文件。您可能必须读取数据并在文件中传递数据,而不是文件本身。
  • @BryanOakley,非常感谢,第二个链接给了我一个好主意。我的测试用例有效。将在下面粘贴正确的测试用例以供一般参考。

标签: robotframework


【解决方案1】:

链接:Uploading files using multipart/form-data through REST API 按照 Bryan Oakley 的建议提供帮助。

下面给出的正确测试用例供参考:

Sample Test Case
    [Arguments]    ${token}=default
    Create Session    mxesession    ${mxe_host}
    ${accessToken}=    Catenate    Bearer    ${token}
    ${fileData}=    Get Binary File  /home/test.zip
    &{fileParts}=  Create Dictionary
    Set To Dictionary  ${fileParts}  sourcefile=${fileData}
    ${response}=   Post Request    mxesession    /v1/ml   files=${fileParts}    headers=${header}
    Should Be Equal As Strings    ${response.status_code}    200

重点是:

    ${fileData}=    Get Binary File  /home/test.zip
    &{fileParts}=  Create Dictionary
    Set To Dictionary  ${fileParts}  sourcefile=${fileData}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 2015-05-02
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多