首页 > 解决方案 > Jmeter getHeaderManager() 命令向请求中添加太多标头

问题描述

我有一个 Jmeter 测试,它接受 auth Token 标头并使用以下命令添加到 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] 添加了大约 100 多个标题。请参阅下面的详细信息。有人可以帮我解决这个问题。

在此处输入图像描述

+

标签: jmeterjmeter-5.0

解决方案


我怀疑,你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')))

推荐阅读