【问题标题】:JMeter Not Sending File with HTTP RequestJMeter 不发送带有 HTTP 请求的文件
【发布时间】:2016-06-17 00:33:43
【问题描述】:

我是 JMeter 的新手,正在尝试使用 HTTP 请求将文件放入我们的 API。当我使用 -F 标志通过 curl 放置文件时,它没有问题。

这是我的 curl 请求:

curl -X PUT -u uname:pword https://fakehostname.com/psr-1/controllers/vertx/upload/file/big/ADJTIME3 -F "upload1=@ADJTIME" -vis

这是来自服务器的响应的相关部分:

> User-Agent: curl/7.37.1 Host: myfakehost.com Accept: */*
> Content-Length: 4190 Expect: 100-continue Content-Type:
> multipart/form-data; boundary=------------------------d76566a6ebb651d3

当我通过 JMeter 执行相同操作时,Content-Length 为 0,这让我认为 JMeter 出于某种原因没有读取文件。我知道路径是正确的,因为我从 JMeter 浏览到该文件。有点帮助?​​

【问题讨论】:

  • JMeter 指向 ADJTIME4 并且 curl 输出为 ADJTIME3 有区别吗?另外我注意到您缺少 JMeter 中的用户名和密码设置,并且协议设置为 http,而不是 https。 Path 字段不应包含方案...也许您应该浏览一下 JMeter 上的一些文档。
  • 不,没关系。我成功发布到 ADJTIME3(我们的 api 根据发布 URL 命名文件,因此发布到 ADJTIME4 会以该名称保存文件)。我们使用 Bearer 令牌进行授权,因此我将授权放在 Header Manager 中。我已经彻底阅读了文档并针对我们的 API 运行了一些负载测试,所以我不是一个完全的新手。同样,我可以毫无问题地访问我们的 API。问题(如原帖所述)是JMeter没有读取文件(Content-Length:0)
  • 您缺少 MIME 类型,请尝试application/octet-stream
  • 我实际上也将类型放在了标题管理器中。我们的 API 需要 multipart/form-data (但我尝试了您的建议,希望它会起作用)。这是来自标头管理器的 Content-Type: Content-Type: multipart/form-data;边界=d76566a6ebb651d3。在应该上传的文件中,第一行是--d76566a6ebb651d3,最后一行是--d76566a6ebb651d3--

标签: jmeter


【解决方案1】:

在文件上传中,使您的文件路径相对于 .jmx 文件或放在它旁边并仅指定文件名。

【讨论】:

    【解决方案2】:

    感谢所有提供解决方案和建议的人。事实证明,我试图加载测试的 API 是问题所在。我可以通过 curl 放置文件没有问题,但是 API 不喜欢 Jmeter PUT 的某些内容。我终于尝试对一个不相关的 API 执行 PUT 并成功了。

    【讨论】:

    • 您介意编辑此答案以包含您使用的成功命令吗?
    猜你喜欢
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2016-11-30
    相关资源
    最近更新 更多