JMeter没有将二进制文件的内容附加到HTTP请求中的POST数据

Posted

技术标签:

【中文标题】JMeter没有将二进制文件的内容附加到HTTP请求中的POST数据【英文标题】:JMeter not attaching contents of binary file to POST data in HTTP Request 【发布时间】:2014-08-20 01:01:36 【问题描述】:

我正在尝试使用 JMeter 2.11 模拟对使用二进制格式的服务的登录调用。我创建了一个具有适当设置的 Http 请求,除了正文数据。我需要发布原始二进制数据。

根据文档here,我应该能够为一个文件设置文件路径,没有参数名称,Body Data 中没有其他内容,并将数据放在请求正文中。

如果它是一个 POST 或 PUT 或 PATCH 请求,并且有一个文件的“参数名称”属性(如下)被省略,则该文件作为请求的整个主体发送,即不添加任何包装器。这允许发送任意正文。此功能适用于 2.2 版之后的 POST 请求,也适用于 2.3 版之后的 PUT 请求。

但是,当我运行测试时,POST 数据为空。

我也尝试了 JMeter 的额外插件集,但是,我被卡住了。加载的文件有 145 字节的数据,请求显示 content-length 为 0。我错过了什么?

Http 请求

结果

更新 1

澄清一下,我不是在尝试发送文件,而是在尝试将二进制编码的消息作为原始 POST 数据发送。

【问题讨论】:

【参考方案1】:

切换回参数选项卡而不是帖子正文。

见:

http://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request

Yoy 可以尝试重新计算,看看结果如何。

【讨论】:

感谢您的反馈,您是对的,从技术上讲它是完全可以解释的,multipart/form 不是您在做的事情【参考方案2】: 这是我的解决方案,可能不是最好的,但效果很好:

第一步:

你应该将你的二进制数据写入一个文件(假设它的名字是 文件名);

第二步:

对于您的 http 请求采样器,您应该将 $FILENAME 放在文件下 “使用请求发送文件”部分中的路径(同时离开其 参数名称为空并指定编码(对于二进制,它是 应用程序/二进制文件))。

希望对您有所帮助。 参考this article

【讨论】:

以上是关于JMeter没有将二进制文件的内容附加到HTTP请求中的POST数据的主要内容,如果未能解决你的问题,请参考以下文章

通过jmeter发送测试结果邮件

如何将整数附加到现有二进制文件

c_cpp 如何将二进制数据附加到C中的文件

lua能够用来写二进制数据吗?

Apache Jmeter HTTP 标头管理器覆盖“主机”标头而不附加端口

Jmeter设置保存到jtl文件中的数据