如何解决使用 Robot Framework 中的请求库上传文件
我正在尝试通过 Robot Framework 中的请求库上传 PDF 文件,但该文件没有上传。
然而,当我在 Insomnia
中尝试相同时,它运行良好(成功上传后回显 complete
)。
测试用例-
*** Variables ***
&{headers_file} X-Requested-With=XMLHttpRequest
*** Test Case ***
&{file} Create Dictionary file ${CURDIR}/test_certificate_report.pdf flowChunkNumber 1 flowChunkSize 1048576 flowCurrentChunkSize 25020 flowTotalSize 25020 flowIdentifier 25020-test_certificate_reportpdf flowFilename test_certificate_report.pdf flowRelativePath
... test_certificate_report.pdf flowTotalChunks 1
${test_uri} Set Variable /certificates/upload/7d5ebc7a-9ec4-444a-b2c1-f59e03999e58
${response} POST On Session api_reviewer_second ${test_uri} files=&{file} headers=&{headers_file}
输出日志-
POST Request : url=https://api.company.net/certificates/upload/7d5ebc7a-9ec4-444a-b2c1-f59e00488e58
path_url=/certificates/upload/7d5ebc7a-9ec4-444a-b2c1-f59e03999e58
headers={'User-Agent': 'python-requests/2.25.1','Accept-Encoding': 'gzip,deflate','Accept': '*/*','Connection': 'keep-alive','X-Requested-With': 'XMLHttpRequest','Cookie': 'PHPSESSID=guk1a2tlmpij9l3re9ge01lva5','Content-Length': '1303','Content-Type': 'multipart/form-data; boundary=f6820b677ad526bf76b0258616c3f9e4'}
body=b'--f6820b677ad526bf76b0258616c3f9e4\r\nContent-disposition: form-data; name="file"; filename="file"\r\n\r\nC:\\RobotFramework\\bDATA_Test/support_files/test_certificate_report.pdf\r\n--f6820b677ad526bf76b0258616c3f9e4\r\nContent-disposition: form-data; name="flowChunkNumber"; filename="flowChunkNumber"\r\n\r\n1\r\n--f6820b677ad526bf76b0258616c3f9e4\r\nContent-disposition: form-data; name="flowChunkSize"; filename="flowChunkSize"\r\n\r\n1048576\r\n--f6820b677ad526bf76b0258616c3f9e4\r\nContent-disposition: form-data; name="flowCurrentChunkSize"; filename="flowCurrentChunkSize"\r\n\r\n25020\r\n--f6820b677ad526bf76b0258616c3f9e4\r\nContent-disposition: form-data; name="flowTotalSize"; filename="flowTotalSize"\r\n\r\n25020\r\n--f6820b677ad526bf76b0258616c3f9e4\r\nContent-disposition: form-data; name="flowIdentifier"; filename="flowIdentifier"\r\n\r\n25020-test_certificate_reportpdf\r\n--f6820b677ad526bf76b0258616c3f9e4\r\nContent-disposition: form-data; name="flowFilename"; filename="flowFilename"\r\n\r\ntest_certificate_report.pdf\r\n--f6820b677ad526bf76b0258616c3f9e4\r\nContent-disposition: form-data; name="flowRelativePath"; filename="flowRelativePath"\r\n\r\ntest_certificate_report.pdf\r\n--f6820b677ad526bf76b0258616c3f9e4\r\nContent-disposition: form-data; name="flowTotalChunks"; filename="flowTotalChunks"\r\n\r\n1\r\n--f6820b677ad526bf76b0258616c3f9e4--\r\n'
POST Response : url=https://api.company.net/certificates/upload/7d5ebc7a-9ec4-444a-b2c1-f59e03999e58
status=200,reason=OK
headers={'Date': 'Thu,15 Apr 2021 09:19:08 GMT','Content-Type': 'application/json; charset=UTF-8','transfer-encoding': 'chunked','Server': 'Nginx','X-Powered-By': 'PHP/7.2.34','Expires': 'Thu,19 Nov 1981 08:52:00 GMT','Cache-Control': 'no-store,no-cache,must-revalidate','Pragma': 'no-cache','Access-Control-Allow-Credentials': 'true','Access-Control-Allow-Headers': 'Origin,X-Requested-With,Content-Range,Content-disposition,Content-Type,Authorization','Access-Control-Allow-Methods': 'GET,PATCH,PUT,POST,DELETE,OPTIONS','Access-Control-Allow-Origin': 'https://app.company.net','X-Content-Type-Options': 'nosniff','Content-Security-Policy': "default-src 'self' *.company.net; img-src *",'Strict-Transport-Security': 'max-age=31536000;'}
body=None
谁能帮我找出问题所在?
解决方法
用这些行替换
${file}= Get File For Streaming Upload ${CURDIR}/test_certificate_report.pdf
${response}= POST On Session api_reviewer_second ${test_uri} data=${file} headers=&{headers_file}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。