我正在尝试在 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 请求命令和机器人框架测试用例传递给应用程序的文件似乎不同。
测试用例是否正确,尤其是我通过 'sourcefile' 的方式?
我应该在机器人框架中以不同的方式对待这条路径中的“ @ ”/home/test.zip吗?
链接:按照 Bryan Oakley 的建议,通过 REST API 使用 multipart/form-data 上传文件有所帮助。
下面给出正确的测试用例以供参考:
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}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句