HTTP 信息头管理器(HTTP Header Manager)是 JMeter 中的一种配置元件,用于存储 HTTP 请求头。
我们知道一个 HTTP 请求发送请求到服务器,请求报文包含:请求行、请求头、请求体。请求行和请求体可以在 HTTP Request 取样器中填写,那么请求头是在哪填写哪?
HTTP 信息头管理器是给 HTTP 请求自定义信息头,也就是 HTTP 请求头需要在 HTTP 信息头管理器中填写。
JMeter不是浏览器,因此其行为并不和浏览器完全一致。HTTP信息头管理器用于尽可能模拟浏览器的行为,里面通常放请求头的内容。
比如:
- Content-Type: application/json;charset=UTF-8 请求数据类型
- User-Agent: Mozilla/5.0 模拟浏览器
位置:线程组 -> 右键 -> 添加 -> 配置元件 -> HTTP信息头管理器
1. 参数说明
名称
- 本属性用于标识一个取样器,建议使用一个有意义的名称,比如登录
注释
- 对于测试没有任何作用,仅用户记录用户可读的注释信息
添加
- 添加一行,名称和值为 key=Value
从剪贴板添加
- 复制一个 key:Value格式数据,点击此按钮可以快速把复制的数据粘贴到信息头储存管理器中
删除:
- 点击此按钮,会删除选中一行数据
载入
- 选择保存测试计划的HTML文件快速打开
保存测试计划
- 保存的是 HTML 格式的文件
2. 常见的 HTTP 请求头
请求体 | 值 | 说明 |
---|---|---|
Accept | application/json,text/plain,*/* | 浏览器可以接受服务器回发的类型。Accept: */* 代表浏览器可以处理所有类型 |
Accept-Encoding | gzip, deflate, br | 浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法 |
Accept-Language | zh-CN,zh;q=0.9 | 浏览器申明自己接收的语言 |
Connection | keep-alive | 长连接,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。Connection:close 代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭,当客户端再次发送Request,需要重新建立TCP连接 |
Content-Type | application/x-www-form-urlencoded,text/xml,application/json、binary | 数据类型,HTTP 中的 post 请求使用最多的 Content-Type 类型是application/json |
Host | 比如 www.ydcode.cn | 当前请求要被发送的目的地,仅包括域名和端口号,在任何类型请求中,request都会包含此header信息,通常从HTTP URL中提取出来的 |
Origin | 比如 https://ydcode.cn | 当前请求资源所在页面的协议和域名,用来说明请求从哪里发起的,这个参数一般只存在于CORS跨域请求中,普通请求没有这个header!如果有Origin参数,我们可以看到response有对应的header:Access-Control-Allow-Origin |
Referer | 比如https://ydcode.cn/onLineBookList | 当前请求资源所在页面的完整路径:协议+域名+查询参数(注意不包含锚点信息),所有类型的请求都包含此header |
Authorization | 这是header中的Token | |
User-Agent | Mozilla/5.0 | 浏览器信息 |
3. 作用域
HTTP 信息头管理器可以添加到测试计划下面,也可以添加到线程组下,或者添加到 HTTP 请求下。添加的位置不同,其作用域也不一致:
-
将 HTTP 信息头管理器父类是测试计划,生效范围是测试计划下所有请求,即全局范围;
-
将 HTTP 信息头管理器父类是线程组,生效范围是该线程组下所有请求;
-
将 HTTP 信息头管理器父类是 HTTP 请求,则只针对当前请求生效;
生效优先级:取样器 > 线程组 > 测试计划,比如如果 HTTP 请求中有,则生效HTTP请求下的,如果没有,则生效线程组下的。