以获取的取样器响应头为例,演示如何将响应头信息存入HashMap,通过prev.getResponseHeaders()获取的响应头格式如下,
其中第一行为状态码 HTTP/1.1 200 OK,换行后的数据都是以冒号区分的键值对,我们只存这部分内容。
可以随意创建一个http取样器,在其下增加一个后置beanshell处理器
import java.util.HashMap;
import java.util.Map;
log.info(prev.getResponseHeaders());
hds=prev.getResponseHeaders();
//将获取的响应头用split转换成数组
hlist=hds.split("\n");
//获取数组长度
hlistlen=hlist.length;
log.info(hlistlen.toString());
创建HashMap来从新组装headers
Map headersMap = new HashMap();
//遍历数组,从索引1开始
for(i=1;i<hlistlen;i++)
{
//打印数组元素
log.info(hlist[i]);
//将数组元素按冒号分隔
itemlist=hlist[i].split(":");
//将分隔的数组元素作为键、值存入
headersMap.put(itemlist[0],itemlist[1]);
//在控制台打印
System.out.println(headersMap);
}
控制台打印结果如下
如果想要获取HashMap长度以及遍历整个
//获取键值对个数
System.out.println("HashMap的元素个数为:"+headersMap.size());
//获取所有键KeySet(),类型为集合[]
System.out.println(headersMap.keySet());
System.out.println(headersMap.values());
//遍历
Set keyset=headersMap.keySet();
for(Object key:keyset)
{
System.out.println("key is "+key+",value is "+headersMap.get(key));
}