微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Robot Framework 中的请求库上传文件

如何解决使用 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 举报,一经查实,本站将立刻删除。