我有一台TestPlan
Thread-group
HttpSampler
pre-processor
HttpHeaderManager[empty]
HttpRequestDefaults[empty]
Post-processor我正在使用一个预处理器脚本在读取json文件时动态地向headerManager添加头。一切都很顺利。
import org.apache.jmeter.protocol.http.control.Header
int min = args[0].toInteger()
int max = args[1].toInteger()
int random = min + (int) (Math.random() * ((max - min) + 1));
// here 'inputjson' referring to slurped json object
inputjson.Headers.each{
it.each{ key,value -> sampler.getHeaderManager().add(new Header(key.replace('$random',random.toString()),value.replace('$random',(random+2).toString())));
}
}问题是,如果一个线程循环计数是3,那么这组头文件会增加3次。
然后我添加了一个后处理器脚本
sampler.getHeaderManager().clear()这次initialloop-1运行正常,nextloop-2循环是一个没有头部的清晰请求。我如何实现,每个请求都只有一组头
发布于 2019-12-20 17:56:52
这是我的工作示例- HeaderManager.clear()不起作用,但按其名称删除头文件起到了作用。
import org.apache.jmeter.protocol.http.control.Header;
sampler.getHeaderManager().removeHeaderNamed("Authorization");
sampler.getHeaderManager().add(new Header("Authorization", "Bearer " + vars.get("token")));发布于 2020-12-29 21:11:21
你可以使用下面的代码来程序化地删除头部--首先,获取头部计数并循环直到头部计数结束。
int headers_size = sampler.getHeaderManager().size();
log.info("headers_size: "+ headers_size);
while(headers_size > 0) {
log.info("header to be removed:"+ sampler.getHeaderManager().get(0));
sampler.getHeaderManager().remove(0);
headers_size = sampler.getHeaderManager().size();
}发布于 2016-05-18 12:41:26
这将通过以下方式完成
在headerManger add部分之前添加sampler.setHeaderManager(new HeaderManager())。
每次都会添加并使用一个新的HeaderManger。不确定这是最好的解决方案,但它是一个有效的解决方案。
https://stackoverflow.com/questions/37284088
复制相似问题