jmeter beanshell BeanShell 预处理程序,增加HTTP Header Manager,请求头信息

最近,有需求涉及到请求头信息能自动读取添加,有多少个,就添加多少个。然后再网上百度了下没找到。自己查jmeterapi

https://jmeter.apache.org/api/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.html#ARGUMENTS

文档找到方法。具体方法如下:

ps该方法必须jmeter添加了HeaderManager 管理器,不然会报错

import org.apache.jmeter.protocol.http.control.HeaderManager;
import org.apache.jmeter.testelement.property.CollectionProperty;
import org.apache.jmeter.protocol.http.sampler;
import org.apache.jmeter.protocol.http.control.Header;
import org.json.JSONObject;
//sampler 里面有个getHeaderManager 可以获得请求头
HeaderManager hm =sampler.getHeaderManager();
//打印出header信息
CollectionProperty cp=hm.getHeaders();
//System.out.println(cp);
for(int i=0;i<cp.size();i++){
	System.out.println("----------before-----------");
	System.out.println(cp.get(i));
}
// 
//将header 转为jsonobject
String header = "{\"hearder1\":\"1\",\"hearder2\":\"2\",\"hearder3\":\"3\"}";
JSONObject header_obj= new JSONObject(header);
Iterator it = header_obj.keys(); 
 
while(it.hasNext()){
// 获得key
	String key = it.next(); 
	String value = header_obj.getString(key);    
//	System.out.println("key: "+key+",value:"+value);
	Header hd = new Header();
	hd.setName(key);
	hd.setValue(value);
	//加入sample 中
	hm.add(hd);
}
 
 
//打印出对应值
System.out.println("----------after-----------");
for(int i=0;i<cp.size();i++){
	System.out.println(cp.get(i));
}

附上脚本文件test.jmx。脚本里面调用了json.jar包。放在jmeter根目录lib目录下,重启jmeter 运行test.jmx 就可以了。

运行结果会打印在jmeter控制台上,可以看到没添加之前是

有一个header

执行完beanshell预处理器,查看请求hearder

header 请求时,加上了。

链接:https://pan.baidu.com/s/1bHJcJkNeeVpH-FkuZ3dttw 
提取码:jsxe 
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值