Jmeter getHeaderManager()命令将过多的头添加到请求中
我有一个Jmeter测试,它接受auth令牌头并使用下面的命令添加到http请求中Jmeter getHeaderManager()命令将过多的头添加到请求中,jmeter,jmeter-5.0,Jmeter,Jmeter 5.0,我有一个Jmeter测试,它接受auth令牌头并使用下面的命令添加到http请求中 sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("BEARER"))); 它在最初的几个请求中工作正常,然后由于以下错误而失败 HTTP Error 400. The size of the request headers is too long 当我检查标题时,它实际上为Auth Token[:O]
sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("BEARER")));
它在最初的几个请求中工作正常,然后由于以下错误而失败
HTTP Error 400. The size of the request headers is too long
当我检查标题时,它实际上为Auth Token[:O]添加了大约100多个标题。详情请参阅下文。谁能帮我一下吗
我怀疑,您反复调用
HeaderManager#add
。方法add
添加标题。而您真正想要做的是替换一个标题。遗憾的是,HeaderManager
上没有这样做的方法
但你可以模仿它。首先从标题管理器中删除所有名为Authorization
的标题,然后使用新值重新添加标题。Groovy中的代码如下所示:
import org.apache.jmeter.protocol.http.control.Header
sampler.headerManager.removeHeaderNamed('Authorization')
sampler.headerManager.add(new Header('Authorization', 'Bearer ' + vars.get('BEARER')))
最可能的情况是,您的位置不正确
因此,如果将JSR223预处理器与multiple置于同一级别,它将在其范围内的每个采样器之前执行
因此,您需要使JSR223预处理器成为要修改的采样器头的子级,它应该可以解决您的问题
顺便说一下,您不需要任何脚本,可以使用添加标题