Jmeter - 中 content-type 不同情况的使用

背景介绍:
在同一个线程组中,有个接口需要添加 Content-Type=application/json,有的不需要,如何在同一个线程组中,同时维护两个接口

1、在 http 信息头管理器中,添加 Content-Type=application/json
在这里插入图片描述

2、例如:“1-结构数据查询”接口不需要公共信息头里的请求头信息,所以添加 BeanShell PreProcessor 前置处理器,删除公共请求头里的信息。

脚本代码:
import org.apache.jmeter.protocol.http.control.HeaderManager;
// 获得请求头信息
HeaderManager headers = sampler.getHeaderManager();
// 打印全部请求头信息
log.info(“删除前” + headers.getHeaders().getStringValue());
// 删除请求头指定的信息
sampler.getHeaderManager().removeHeaderNamed(“Content-Type”);
// 打印全部请求头信息
log.info(“删除后” + headers.getHeaders().getStringValue());

此时公共请求头里的指定信息被删除了,之后的接口要用到这个信息,所以在后续的接口上再添加回来,

3、例如“3-创建索”接口会用到公共的信息头,在此接口上添加 BeanShell PreProcessor 前置处理器,添加请求头信息到公共请求头里。脚本代码:
import org.apache.jmeter.protocol.http.control.HeaderManager;

import org.apache.jmeter.protocol.http.control.Header;
// 获得请求头信息
HeaderManager headers = sampler.getHeaderManager();
// 打印全部请求头信息
log.info(“添加前” + headers.getHeaders().getStringValue());
// new一个Header对象
myHeader = new Header(“Content-Type”, “application/json”);
// 添加Header到请求头管理器
headers.add(myHeader);
// 打印全部请求头信息
log.info(“添加后” + headers.getHeaders().getStringValue());

请求头信息添加成功后,后续的接口若要用到这个信息,则无需再添加(BeanShell PreProcessor前置处理器),就可以使用了。

公共的HTTP信息头管理器,请求头值不变。

4、脚本结构:
执行脚本:全部接口执行成功。
在这里插入图片描述
“1-创建索引”接口请求头信息,包含 Content-Type=application/json。
在这里插入图片描述
“2-结构数据查询”接口请求头信息,不包含 Content-Type=application/json。
在这里插入图片描述
在这里插入图片描述
“3-创建索引”接口请求头信息,包含 Content-Type=application/json。
在这里插入图片描述
在这里插入图片描述
查看执行时打印的日志,打印出删除与添加请求头信息。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值