0

上下文:尝试将文件上传到 Web 应用程序

假设我只使用基本选项:

HTTP Request Sampler:

Method: Post
Protocol: http
Path: /api/file/upload

Follow Redirects: checked
Use Keep-Alive: checked
Use multipart/form-data: checked

Files Upload:
   File Path: C:\Users\etc...etc
   Parameter Name: file
   MIME: image/jpeg

使用 Cookie Manager 设置 Cookie,还设置了登录。

像这样上传小文件(130KB)可以正常工作,更大的文件会抛出错误 500:“无法删除临时文件块。”

网站上传工作正常并使用 resumable.js(我假设这也是引发此错误的那个)

我假设这是由于分块,因为这基本上是我尝试过的唯一主要区别。有人对此有任何见解吗?

编辑:使用“分块”/分成 2 个块的图像 photoGood,我还可以使用以下参数形成 POST:

resumableIdentifier   20702285-photoGoodjpg 
resumableFilename     photoGood.jpg 
resumableType         image/jpeg    
resumableRelativePath photoGood.jpg 
resumableChunkSize    1048576   
resumableChunkNumber  1 
resumableTotalChunks  2 
resumableTotalSize    1859876   
resumableChunkSize    887520    

然而,只有 ChunkNumber 1 将被使用,因为这些块在服务器上没有连接在一起。

4

1 回答 1

0

我认为您的请求缺少一些强制性参数,例如:

  • 可恢复块号
  • 可恢复块大小
  • 可恢复总大小
  • 可恢复标识符
  • 可恢复文件名
  • 可恢复的相对路径
  • 等等

查看http://www.resumablejs.com/网站上的文档以获取更多详细信息。

如果您能够使用浏览器成功执行上传,您应该能够使用 JMeter 的HTTP(S) 测试脚本记录器记录相关请求,只需确保将 PDF 文件复制到 JMeter 安装的“bin”文件夹在上传文件之前,JMeter 将在 Recording Controller 下生成相关的HTTP 请求采样器。

查看使用 JMeter 记录文件上传文章了解更多详细信息。

使用FiddlerWireshark等 3rd-party 嗅探器工具捕获来自 JMeter 和真实浏览器的流量也很好,这样您就可以识别差异。一旦您将 JMeter 配置为发送与真实浏览器相同的请求 - 整个事务将成功。

于 2020-03-18T10:20:56.273 回答