【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);
 
posted @ 2022-08-05 14:10  站在围墙上的白白  阅读(819)  评论(0编辑  收藏  举报