Jmeter接口测试时传递json格式的数据

本文介绍如何在接口测试中处理JSON格式参数,通过设置HTTP信息头管理器中的Content-Type为application/json,可以直接在HTTP请求中输入JSON格式数据进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在进行接口测试时遇到参数类型为json格式参数的情况,普通的参数键值对的形式无法达到测试的要求,为方便以后的使用,现将方法记录于此方便查阅。

首先,添加'HTTP信息头管理器'(添加-配置原件-HTTP信息头管理器)并设置Content-Type = application/json;charset=UTF-8,如下图所示

完成上述步骤后则可以添加HTTP请求,并将json格式数据座位参数名传入,如下图所示。json格式的数据直接已{"键1":"值1","键2":"值2"}的形式写入值的位置。

注意:采用这种方式时,一般后面是否编码是需要选择是,模拟浏览器对url的编码操作。

转载于:https://www.cnblogs.com/liyuhang/p/6694442.html

### JMeter 接口上传图片与发送 JSON 参数的方法及配置教程 #### 1. 准备工作 为了在 JMeter 中实现文件上传和 JSON 数据传递,需先准备好待测服务器端点以及必要的资源文件(如图片)。确保已安装并配置好最新版本的 Apache JMeter。 #### 2. 创建 HTTP 请求采样器 启动 JMeter 后,在测试计划下创建一个新的线程组。接着向该线程组添加一个 `HTTP 请求` 采样器[^3]: ```plaintext - 测试计划 - 线程 (用户) 组 - HTTP 请求 默认值 - HTTP 请求 ``` 设置目标 URL 和其他基本选项,比如方法类型 (`POST`)、路径等。 对于 **JSON 参数** 的处理: 当需要提交 JSON 格式的负载,应将 Content-Type 设置为 application/json 并在 Body Data 字段输入完整的 JSON 对象字符串[^1]。例如: ```json { "name": "example", "description": "This is an example" } ``` 注意:编写 JSON 文本之前建议使用在线验证工具确认其合法性。 对于 **图片上传** 功能,则要利用 multipart/form-data 编码格式来构建请求体。这通常涉及到指定表单字段名称作为参数名,并关联本地磁盘上的实际图像文件位置。 #### 3. 配置文件上传功能 回到刚才建立好的 HTTP 请求节点,切换到 “Send Files with the Request” 一栏,勾选此选项开启文件传送支持。随后点击右侧的小加号按钮增加新的文件条目: | Parameter Name | File Upload | |----------------|-------------| | fileField | C:\path\to\your\image.jpg | 这里,“Parameter Name” 应匹配 API 所期望接收文件的那个键名;而“File Upload”则填写绝对路径指向想要上载的具体媒体项。 如果服务端还要求额外携带一些元数据或其他非二进制资料的话,可以在 Parameters 或者 Header Manager 中继续补充相应的内容[^4]。 #### 4. 使用 BeanShell PreProcessor 实现复杂逻辑 某些情况下可能遇到更复杂的场景,像对特定字段实施加密操作后再发出请求。此可借助于前置处理器——BeanShell PreProcessor 来执行自定义脚本,从而动态修改即将送出的数据包结构。 示例代码片段如下所示: ```java import java.security.Key; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; // 假设已有 AES 加密函数... String encrypt(String value, String key){ try { Key secretKey = new SecretKeySpec(key.getBytes(), "AES"); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, secretKey); byte[] encryptedValueBytes = cipher.doFinal(value.getBytes()); return Base64.getEncoder().encodeToString(encryptedValueBytes); // Java8+ } catch(Exception e){e.printStackTrace();} } vars.put("uid",encrypt(vars.get("originalUid"),"mySecretKey")); ``` 上述例子展示了如何通过外部引入的方式加载预先编译好的 jar 包来进行敏感信息保护措施的应用。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值