【问题标题】:JMeter 400 Error File UploadJMeter 400 错误文件上传
【发布时间】:2017-11-06 06:28:35
【问题描述】:

我正在尝试使用 JMeter 测试用于上传文件的 restful 端点,但出现 400 错误。让我跳出来的一件事是边界值;这与我提供的与请求中显示的不同。我可以毫无问题地在浏览器中使用端点,并且我已经复制了 FF 开发人员工具中显示的标头。

这是来自 JMeter 的相关信息:

结果标签:

线程名称:Asdf - 负载测试 1-1

样品开始时间:2017-06-05 08:47:46 EDT

加载时间:159

连接时间:28

延迟:159

字节大小:438

发送字节数:821003

标头大小(以字节为单位):438

正文大小(以字节为单位):0

样本数:1

错误计数:1

数据类型(“文本”|“bin”|“”):

响应码:400

响应消息:错误请求

响应标头:

HTTP/1.1 400 错误请求

日期:2017 年 6 月 5 日星期一 12:47:46 GMT

服务器:Apache/2.4.25 (Win64) OpenSSL/1.0.2k

Cache-Control: no-cache, no-store, max-age=0, must-revalidate

编译指示:无缓存

过期:0

严格的传输安全性:max-age=31536000;包含子域

X-XSS-保护:1;模式=块

X 帧选项:拒绝

X-Content-Type-Options: nosniff

缓存控制:无缓存,必须重新验证

内容长度:0

连接:关闭

HTTPSampleResult 字段:

内容类型:

数据编码:空

请求标签:

发布https://localhost/my/rest/endpoint

发布数据:

--9amm365-gMmimP70lvs9jIvlIxOfkocUN

内容配置:表单数据;名称="可解析";文件名="asdf.docx"

Content-Type: application/vnd.openxmlformats-

officedocument.wordprocessingml.document

内容传输编码:二进制

--9amm365-gMmimP70lvs9jIvlIxOfkocUN--

[无 cookie]

请求标头:

连接:保持活动

内容类型:multipart/form-data;边界=--Uc_2uLvcVgc7SqvzIJxR3encUKw- f7w9

接受编码:gzip、deflate、br

接受语言:en-US,en;q=0.5

接受:application/json、text/plain、/

X-Request-OnBehalfOf: some-user-uuid

X-Requested-With: XMLHttpRequest

内容长度:820532

主机:本地主机

用户代理:Apache-HttpClient/4.5.3 (Java/1.8.0_121)

响应数据选项卡为空白。

服务器端实现:

@POST
@Override
@EnhancedDetail
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("my/rest/endpoint")
public Response uploadProduct(@PathParam("id") final String id, MultiPart multipart) throws IOException {
    return processMultiFileUpload(id, multipart, MultiPartUploadType.DRAFT, false);
}

【问题讨论】:

    标签: java spring jmeter


    【解决方案1】:

    如果您按照Testing REST API File Uploads in JMeter 文章中的描述手动构建请求 - 请确保未选中 HTTP Request 采样器的 Use multipart/form-data for POST 框。

    反之亦然,如果您勾选此框,则无需覆盖 Content-Type 标头


    我相信最简单的方法是使用 HTTP(S) Test Script Recorder 记录您的文件上传事件(只需确保将您的 asdf.docx 文件复制到 JMeter 安装的“bin”文件夹中)

    【讨论】:

      【解决方案2】:

      我想通了。我将 HTTP 请求上的客户端实现更改为 Java。我读过的所有内容都使用 HttpClient4,但我尝试了 Java,它工作正常。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-14
        • 1970-01-01
        • 2015-10-20
        • 1970-01-01
        • 2017-02-11
        • 2015-03-17
        • 2019-12-02
        • 1970-01-01
        相关资源
        最近更新 更多