我在使用Robot Framework和robotframework-requests时遇到了问题。我需要在请求体中发送一个POST请求和二进制数据。我已经看了这个问题,但并没有得到很好的回答。这是我的测试用例:
Upload ${filename} file
Create Session mysession http://${ADDRESS}
${data} = Get Binary File ${filename}
&{headers} = Create Dictionary Content-Type=application/octet-stream Accept=application/octet-stream
${resp} = Post Request mysession ${CGIPath} data=${data} headers=&{headers}
[Return] ${resp.status_code} ${resp.text}
问题在于我的二进制数据大约有250MB。当使用 Get Binary File
读取数据时,我发现内存消耗增加到2.x GB。几秒钟后,当触发Post Request
时,我的测试因OOM而被终止。我已经查看了files
参数,但它似乎使用multipart编码上传,这不是我所需要的。
我想到的另一个办法是直接将打开文件处理程序传递给底层的请求库,但我猜这需要修改robotframework-request。另一个想法是仅为此测试回退到curl。
我是否在我的测试中漏掉了什么?有更好的解决方法吗?