以获取的取样器响应头为例,演示如何将响应头信息存入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));
}
该博客介绍了如何在JMeter中使用Beanshell处理器来解析HTTP取样器的响应头,并将其存储到HashMap中。通过示例代码展示了如何分割响应头信息,创建键值对并存入HashMap,最后输出HashMap的内容、长度以及遍历其键值对。此过程对于理解和操作HTTP响应头信息非常有帮助。
4509

被折叠的 条评论
为什么被折叠?



