jmeter 的 “消息体数据” 无法点击,传参形式错误问题(post请求等)

本文解决了JMeter中常见的三个问题:无法点击消息体数据、运行失败提示500错误和参数与消息体的选择冲突。详细介绍了如何正确配置请求头、选择参数或消息体以及解决JSON解析错误的方法。

1、jmeter 的 “消息体数据” 无法点击:

     解决:parameters跟body data的方式两者只可选择其一,当一种方式下有数据时就无法使用另外一种,必须清空。

2、运行失败,响应体提示报500 :  

        报错: {"status":500,"message":"Content type 'text/plain;charset=UTF-8' not supported"} 等类似情况,如下图

        解决:网上找了很多解决方法都不管用,其实解决起来很简单,添加请求信息头(content-type,application/json),如下图

                    PS: content-type根据需要的情况选择,不区分大小写;

content-type: application/json

3、参数 和消息体是两种形式,只能选择其中一种,使用后者能200,前者会报500

        报错:{"status":500,"message":"JSON parse error: Unrecognized token 'username': was expecting ('true', 'false' or 'null'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'username': was expecting ('true', 'false' or 'null')\n at [Source: (PushbackInputStream); line: 1, column: 10]"}

        解决

                    1)原因解析:参数,用于get 或put请求;消息体用于post请求;

                    2)解决:把post请求的消息体参数放在 消息体里,见上一个常见问题的截图;


链接:https://www.cnblogs.com/hiln/p/9463134.html
 

JMeter 中配置和使用 HTTP 请求消息数据(Body Data)是执行 POST 请求时的关键步骤,尤其是在发送 JSON 数据、表单数据或二进制文件等场景中。以下是详细的配置方法和使用说明: ### 配置 HTTP 请求的 Body Data 1. **创建 HTTP 请求取样器** 在测试计划中添加线程组后,右键点击线程组 → 添加 → 取样器 → HTTP 请求。在打开的 HTTP 请求配置窗口中填写服务器名称或 IP 地址、端口号、协议(HTTP/HTTPS)、请求方法(POST)以及路径(如 `/login.html`)。 2. **设置 Body Data 为 JSON 格式** 当需要发送 JSON 数据时,在 HTTP 请求取样器的 "Body Data" 选项卡中输入 JSON 字符串。例如: ```json { "username": "test01", "password": "123456" } ``` 同时,确保在 HTTP 请求头管理器中设置 `Content-Type: application/json`,以告知服务器发送的数据格式为 JSON [^1]。 3. **使用 multipart/form-data 发送表单数据** 如果需要发送文件上传请求或传统的 HTML 表单提交,应选择 `Use multipart/form-data for POST` 选项。该方式会自动将参数编码为 `multipart/form-data` 格式。此时应在 "Parameters" 选项卡中添加字段名和值,或者直接在 "Files Upload" 选项卡中指定要上传的文件路径及 MIME 类型 [^3]。 4. **使用 application/x-www-form-urlencoded 发送 URL 编码表单** 对于普通的表单提交,不勾选 `Use multipart/form-data for POST`,并在 "Parameters" 选项卡中添加键值对(如 `username=test01` 和 `password=123456`),JMeter 会自动将其编码为 `application/x-www-form-urlencoded` 格式 [^2]。 5. **动态化 Body Data** 可通过预处理器(如 BeanShell PreProcessor 或 JSR223 PreProcessor)动态生成 JSON 或其他格式的 Body 内容。也可以使用变量 `${variable_name}` 在 Body Data 中插入运行时值。 6. **验证响应内容** 在发送请求后,建议添加响应断言(Response Assertion)来验证返回结果是否符合预期,例如检查响应代码、响应时间或响应内容中的特定关键字。 --- ### 示例:发送 JSON 格式的 POST 请求 ```http POST /login.html HTTP/1.1 Host: 192.168.3.100:8087 Content-Type: application/json Content-Length: 45 { "username": "test01", "password": "123456" } ``` 在 JMeter 中配置此请求时,需在 HTTP 请求取样器中填写以下信息: - Protocol: `http` - Server Name or IP: `192.168.3.100` - Port Number: `8087` - Path: `/login.html` - Method: `POST` - 在 "Body Data" 中输入上述 JSON 字符串 - 添加 HTTP 头管理器并设置 `Content-Type: application/json` --- ### 注意事项 - 若未正确设置 `Content-Type` 请求头,服务器可能无法正确解析请求内容。 - 使用 `multipart/form-data` 时,JMeter 不会显示实际的编码内容,但会在后台自动生成边界字符串。 - 若需查看发送的具请求内容,可添加“监听器”→“查看结果树”,在“请求”标签下查看原始请求报文。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值