【问题标题】:JMeter 3.1 - Upload file issueJMeter 3.1 - 上传文件问题
【发布时间】:2023-04-02 04:06:01
【问题描述】:

我在尝试在 JMeter 3.1 中上传文件时遇到问题。 在 HTTP 请求中,我有一个 POST 请求,其中选中了“用于 POST 的用户多部分/表单数据”选项。然后我设置了文件路径、参数名称和 MIME 类型,没有问题。

问题是脚本在 JMeter 2.13 上运行,但在 3.0 或 3.1 上运行时一直失败。响应代码为 200,但在预期文本“文件已成功上传”上失败。

2.13 和 3.1 的唯一区别是 3.1 在 Conent-Type Request Header 上添加了 charset 值(请查看附件截图)。

JMeter 2.13

Jmeter 3.1

提前致谢!

【问题讨论】:

  • 你的断言配置是什么?另外,在“文件路径”中检查文件的路径。
  • 在断言中我只是验证响应消息,没有问题。并且文件的路径是好的,因为如果不是,我会得到 FileNotFoundException 而事实并非如此。

标签: jmeter


【解决方案1】:

我的期望是你有不同的HTTP Client Implementations

HTTP 请求 这有一个实现下拉框,用于选择要使用的 HTTP 协议实现:

Java 使用 JVM 提供的 HTTP 实现。与 HttpClient 实现相比,这有一些限制 - 见下文。

HTTPClient3.1 (自 3.0 起已弃用)使用 Apache Commons HttpClient 3.1。这不再被开发,并且在未来的 JMeter 版本中将放弃对此的支持。

HTTPClient4 使用 Apache HttpComponents HttpClient 4.x。

空白值 没有在 HTTP 采样器上设置实现,因此依赖于 HTTP 请求默认值(如果存在)或 jmeter.properties 中定义的 jmeter.httpsampler 属性

确保您在两个 JMeter 版本中使用相同的版本,您将获得相同的行为。如果该值为空白,您可以检查 jmeter.properties 和/或 user.properties 文件中的 jmeter.httpsampler 属性值。

您可以使用HTTP Request Defaults 快速更改所有采样器的实现。

【讨论】:

  • 感谢您的快速回复。但是,我已经在使用 HTTP 请求默认值,以及 HTTPClient4 实现。我认为问题在于 HTTP 请求中的 内容编码,我已将其设置为空白,但请求将其作为 charset=US-ASCII 发送。有这方面的cmet吗?谢谢。
  • 如果您将 HTTP 请求采样器的“内容编码”字段留空,2.13 和 3.1 版本都会添加 US-ASCII 字符集。
  • 你确定吗?请看截图,US-ASCII 仅在 3.1 中添加
  • 从 2016 年 12 月开始
猜你喜欢
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-17
相关资源
最近更新 更多