如何使用 JMeter 设置多部分边界

Posted

技术标签:

【中文标题】如何使用 JMeter 设置多部分边界【英文标题】:How can I set the multipart boundary with JMeter 【发布时间】:2017-09-25 02:07:40 【问题描述】:

我正在使用本指南通过 JMeter 向服务器发送多部分 POST 请求:https://www.blazemeter.com/blog/testing-advanced-rest-api-file-uploads-jmeter

在这个请求中有几个部分,比如一个文件、一些字符串和 JSON。

问题是,尽管我在“内容类型”字段中指定了边界,但 JMeter 设置了它想要的任何内容,结果是服务器(Wildfly 10)正确拒绝了请求,并显示“RESTEASY007500:找不到内容处置”部分内的标题”。

这里是请求配置:

这里是生成的请求:

我设置了“jmeter_is_great”,但 JMeter 生成了一个随机边界。 有人有同样的问题吗?我是不是做错了什么?

谢谢

更新

我询问如何设置边界,因为在我的测试开始时,服务器抛出的第一个错误是“RESTEASY007550:无法获取多部分的边界”。 所以我添加了“内容类型”字段,它可以包含边界值,但这似乎不起作用。 一开始我并没有兴趣设置特定的边界。

现在,我找到了一个虽然没有指定边界但可以工作的配置,也许有人会发现它很有用:

【问题讨论】:

【参考方案1】:

要验证您的服务器是否使用 JMeter 处理无效边界,请在 HTTP 请求中取消单击 use mulitpart/form-data,将 HTTP Header Manager 设置为 Content-type: multipart/form-data,然后在 Body Data 中添加以下内容:

--pZbVxWMEYBsPH
Content-Disposition: form-data; name="linkImage"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit

true
--pZbVxWMEYBsphppbDCQQBUaAhIlYw0H
Content-Disposition: form-data; name="file"; filename="Small.png"
Content-Type: image/png
Content-Transfer-Encoding: binary

确保您没有设置任何参数或文件上传。

【讨论】:

【参考方案2】:

如果您要手动构建多部分请求,请确保在 HTTP 请求采样器下 未选中 Use multipart/form data for POST

假设已完成,您可以使用 HTTP Header Manager 设置自定义边界,例如:

【讨论】:

checked和unchecked都试过了,没啥区别

以上是关于如何使用 JMeter 设置多部分边界的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter多用户执行

邮递员多部分/表单数据错误:缺少开始边界

如何正确发送数据 axios 错误:多部分:未找到边界

在 MIME 多部分消息中显式指定边界?

Qt如何循环创建线程

使用 Pear Mail 发送纯文本和 html 电子邮件(如何设置“Content-Type”并正确使用边界)