『动善时』JMeter基础 — 16、JMeter配置元件【HTTP信息头管理器】
JMeter提供了丰富的配置元件,常用的包括参数化配置元件、HTTP请求默认值、HTTP信息头管理器、计数器等,这些配置元件用于设置默认值和变量,提供给后面的sampler(取样器)使用。
提示:本文同时演示了,使用消息体数据选项页,配置Post请求的参数。
1、用于演示的项目说明
我们使用JMeter发送Post请求,以学院管理系统项目为例。
接口文档如下:
学院-新增
    1) 请求方法:POST
    2) 请求地址:http://127.0.0.1:8000/api/departments/
    3) 请求JOSN报文:(需要Content-Type=application/json)
    4) 调用传入的json串如下(可新增多条,之间用,隔开):
        {
            "data": [
                    {
                        "dep_id":"T01",
                        "dep_name":"Test学院",
                        "master_name":"Test-Master",
                        "slogan":"Here is Slogan"
                    }
              ]
        }
   5) 新增成功返回报文:
    {
      "already_exist": {
        "results": [],
        "count": 0
      },
      "create_success": {
        "results": [
          {
            "dep_id": "T02",
            "dep_name": "Java学院",
            "master_name": "Java-Master",
            "slogan": "java"
          }
        ],
        "count": 1
      }
    }
   6) 新增失败id已存在-返回报文:
    {
      "already_exist": {
        "results": [
          {
            "dep_id": "T01",
            "dep_name": "Test学院",
            "master_name": "Test-Master",
            "slogan": "Here is Slogan"
          }
        ],
        "count": 1
      },
      "create_success": {
        "results": [],
        "count": 0
      }
    }
7) 新增失败json格式错误:
    {
    "status_code": 400,
    "detail": "请求体参数格式错误。"
    }
2、测试计划内包含的元件
添加元件操作步骤:
- 创建测试计划。
 - 创建线程组:
选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组。 - 在线程组中添加配置元件"HTTP信息头管理器"组件:
选中“线程组”右键 —> 添加 —> 配置元件 —> HTTP信息头管理器。(稍后添加) - 在线程组里面添加取样器“HTTP请求”组件:
选中“线程组”右键 —> 添加 —> 取样器 —> HTTP请求。 - 在线程组里面添加监听器“察看结果树”组件:查看结果,
选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树。 
最终测试计划中的元件如下:

点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。
3、HTTP请求界面内容
我们按照接口文档中学院-新增接口的描述,编写JMeter取样器,如下图所示:

4、查看脚本执行结果
学院-新增接口调用如下:

我们可以看到上图中,显示接口请求失败,返回的结果说该接口不支持请求中媒体类型text/plain。
我们来查看请求头中的信息,如下:

发现请求头中的Content-Type为text/plain。
因为我们之前说过,在JMeter 5.0以后的版本中发送POST请求时,将参数放在body data(消息体数据)中,且没有设置Content-Type时,默认会将Content-Type的值设置为text/plain。
而接口文档中学院-新增接口,明确写出需要Content-Type的类型为application/json。
所以这时我们需要在请求头信息中,重新定义Content-Type属性的值。
5、添加请求头信息(HTTP信息头管理器)
在JMeter中添加请求头信息和Postman是有区别的,需要在线程组中添加一个配置元件,名为HTTP信息头管理器(HTTP Header Manager)。也就是需要在HTTP信息头管理器组件中,为请求添加需要的请求头信息。
添加配置元件步骤:选中“线程组”右键 —> 添加 —> 配置元件 —> HTTP信息头管理器。
如下图所示:

HTTP信息头管理器界面如下:

界面说明:
- 名称:HTTP信息头管理器自定义名称,见名知意最好。
 - 注释:即添加一些备注信息,对该HTTP信息头管理器的简短说明,以便后期回顾时查看。
 - 请求头中的信息:可以帮助测试人员设定JMeter发送的HTTP请求中,请求头所包含的信息。HTTP信息头中包含有
User-Agent、Referer等属性。尽可能放在线程组下,除非因为某些原因,测试人员希望不同的HTTP请求使用不同的HTTP信息头。
1)添加:可以添加一条请求头配置信息。
2)从剪贴板添加:添加来自于剪切板中的信息;(使用key+制表符+value的形式,可以多行。)
3)删除:选择不需要的请求头信息,可以进行删除;
4)载入:载入配置好的信息头文件。(我使用.txt文件,按上述格式配置,载入成功。工作中使用自己公司配置好的文件即可)
5)保存测试计划:就是把该测试计划保存。 
如上图,我们添加一条请求头信息:Content-Type=application/json。
此时测试计划内包含的元件,如下图所示:

再次发送请求,请求成功,如下图:

我们再来看一下,该请求的请求头信息:

可以看到请求中的Content-Type属性为application/json。
以上就是HTTP信息头管理器组件的使用方式,
6、优先级说明
HTTP信息头管理器组件的优先级:
- JMeter中支持添加多个HTTP信息头管理器组件,如果存在多个HTTP信息头管理器组件,其中的配置信息会合并。
 取样器下HTTP信息头管理器组件的优先级高于线程组下的HTTP信息头管理器组件。- 若有重名的信息头名称,则优先
取样器下的HTTP信息头管理器组件中的配置信息。 - 同一作用域下,不论添加多少个HTTP信息头管理器组件,只会取第一个HTTP信息头管理器组件中的值,不合并。
 
提示:每个元件都有固定的图标,我们多用就能区分出来。
7、补充:常见请求头信息
Accept:告诉服务器,客户机支持的数据类型。Accept-Encoding:告诉服务器,客户机支持的数据压缩格式。Cache-Control:缓存控制,服务器通过控制浏览器要不要缓存数据。Connection:处理完这次请求,是断开连接还是保持连接。Cookie:客户机通过这个可以向服务器带数据。Host:访问的主机名。User-Agent:告诉服务器,客户机的软件环境。Content-Type:用于指示资源的MIME类型。
『动善时』JMeter基础 — 16、JMeter配置元件【HTTP信息头管理器】的更多相关文章
- 『动善时』JMeter基础 — 38、JMeter中实现跨线程组关联
		
目录 1.JMeter中实现跨线程组关联说明 (1)JMeter中实现跨线程组关联步骤 (2)测试计划内包含的元件 2.用户登陆请求的相关操作 (1)进行登陆操作获取Cookie信息 (2)把Cook ...
 - 『动善时』JMeter基础 — 50、使用JMeter测试WebService接口
		
目录 1.什么是WebService 2.WebService和SOAP的关系 3.什么是WSDL 4.测试WebService接口前的准备 (1)如何判断是WebService接口 (2)如何获取W ...
 - 『动善时』JMeter基础 — 51、使用JMeter测试WebService接口
		
目录 1.什么是WebService 2.WebService和SOAP的关系 3.什么是WSDL 4.测试WebService接口前的准备 (1)如何判断是WebService接口 (2)如何获取W ...
 - 『动善时』JMeter基础 — 21、HTTP Cookie管理器的使用
		
目录 1.在HTTP信息头管理器组件中添加Cookie信息 (1)测试计划内包含的元件 (2)请求取样器内容 (3)HTTP信息头管理器内容 (4)查看结果 2.使用HTTP Cookie管理器组件来 ...
 - 『动善时』JMeter基础 — 25、JMeter参数化补充练习
		
目录 1.使用"CSV数据文件设置"组件实现参数化 (1)测试计划中的元件 (2)数据文件内容 (3)线程组元件内容 (4)HTTP信息头管理器组件内容 (5)CSV数据文件设置组 ...
 - 『动善时』JMeter基础 — 26、使用txt文件实现JMeter参数化
		
目录 1.测试计划中的元件 2.数据文件内容 3.线程组元件内容 4.HTTP信息头管理器组件内容 5.CSV数据文件设置组件内容 6.HTTP请求组件内容 7.脚本运行结果 之前我们都是使用.csv ...
 - 『动善时』JMeter基础 — 20、JMeter配置元件【HTTP Cookie管理器】详细介绍
		
目录 1.HTTP Cookie管理器介绍 2.HTTP Cookie管理器界面详解 3.JMeter中对Cookie的管理 (1)Cookie的存储 (2)Cookie的管理策略 4.补充:Cook ...
 - 『动善时』JMeter基础 — 7、jmeter.properties文件常用配置
		
目录 1.默认语言设置 2.配置默认编码格式 3.GUI图标放大比例设置 4.功能区工具栏图标大小设置 5.视图区目录树图标大小设置 6.内容区编辑字体设置 7.添加JMeter元素快捷键设置 8.捕 ...
 - 『动善时』JMeter基础 — 12、JMeter取样器详解:sampler
		
目录 1.取样器介绍 2.JMeter自带的取样器 3."HTTP请求"为例介绍一下取样器 (1)HTTP Request: (2)Web服务器: (3)HTTP请求: (4)同请 ...
 
随机推荐
- mysql数据库忘记密码时如何修改密码
			
方法/步骤 1.进入 mysql 的 bin 目录下,打开 cmd ,在此之前关闭mysql服务,并且结束mysqld.exe进程 ...
 - Istio 生产环境用户流量接入方案
			
总结Istio 生产环境用户流量接入方案 方案1 Client -> istioGateway域名(微服务) -> VritualService匹配路由并绑定网关 -> Destin ...
 - 201871030115-康旭  实验二  软件工程个人项目—《D{0-1} KP》项目报告
			
项目 内容 课程班级博客连接 课程班级 这个作业要求连接 作业链接 我的课程学习目标 (1)详细阅读<构建之法>第1章.第2章,掌握PSP流程:(2)设计实际程序掌握动态规划算法.回溯算法 ...
 - 北航OO第一单元作业总结(1.1~1.3)
			
经过了三次作业之后,OO第一单元告一段落,作为一个蒟蒻,我初步了解了面向对象的编程思想,并将所学内容用于实践. 一.第一次作业 1.架构分析 本次作业需要完成的任务为简单多项式导函数的求解.表达式仅支 ...
 - 无法Ping通阿里云服务器的公网IP地址的解决方法
			
解决步骤: 1.打开控制台2.打开防火墙3.添加规则添加规则的详情页,可以添加全部TCP也可以自定义添加一定端口范围的TCP:
 - Java多线程详解——一篇文章搞懂Java多线程
			
目录 1. 基本概念 2. 线程的创建和启动 2.1. 多线程实现的原理 2.2.多线程的创建,方式一:继承于Thread类 2.3.多线程的创建,方式一:创建Thread匿名子类(也属于方法一) 2 ...
 - python 闭包函数与装饰器
			
1.什么是闭包函数 (1):什么是闭包函数: #内部函数包含对外部作用域而非全局作用域的引用, 简而言之, 闭包的特点就是内部函数引用了外部函数中的变量. 在Python中,支持将函数当做对象使用,也 ...
 - 机器人走方格-51nod解题
			
M * N的方格,一个机器人从左上走到右下,只能向右或向下走. 有多少种不同的走法? 注意:给定 M, N 是一个正整数. 示例 输入: 1行, 2个数M,N,中间用空格隔开.(2 <= m,n ...
 - 计算机网络-已知IP地址和子网掩码,求广播地址
			
首先说结论--广播地址=该IP所在的下一跳-1 例题: 已知IP地址是192.72.20.111,子网掩码是255.255.255.224,求广播地址 要知道下一跳就需要先求出网段间隔,网段间隔=25 ...
 - src/众测篇:oracle注入过滤-- , + - * /,case when ,select,from,decode等函数如何证明是注入?
			
(1)nullif: NULLIF:如果exp1和exp2相等则返回空(NULL),否则返回第一个值 真: 假: (2)nvl/nvl2 测试失败无法实现:)记录 (3)如果是oracle报错注入 ...