【jmeter】BeanShell 中Header获取
前提描述:
1、已配置HTTP信息头管理器
2、在BeanShell中需要获取设置Header
一、参考
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 = vars.get("hearder"); 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(cp); for(int i=0;i<cp.size();i++){ System.out.println("----------after-----------"); System.out.println(cp.get(i)); }
二、使用
//sampler 里面有个getHeaderManager 可以获得请求头 HeaderManager hm =sampler.getHeaderManager();
//实例化Header,存放需要存放的Header值,当存在多个时,,多次实例化Header
Header hd = new Header();
hd.setName(key);
hd.setValue(value);
//加入sample 中
hm.add(hd);
Header hd1 = new Header();
hd1.setName(key); hd1.setValue(value); //加入sample 中 hm.add(hd1);
年级大了,只能记了!!!