性能测试之JMeter配置元件【HTTP信息头管理器】
JMeter提供了丰富的配置元件,常用的包括参数化配置元件、HTTP请求默认值、HTTP信息头管理器、计数器等,这些配置元件用于设置默认值和变量,提供给后面的sampler
(取样器)使用。
提示:本文同时演示了,使用消息体数据选项页,配置Post请求的参数。
1、用于演示的项目说明
我们使用JMeter发送Post请求,以学院管理系统项目为例。
接口文档如下:
学院-新增1) 请求方法:POST2) 请求地址: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": "请求体参数格式错误。"}
Jmeter高级性能测试实战https://edu.csdn.net/course/detail/35834
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高级性能测试实战https://edu.csdn.net/course/detail/35834
性能测试之JMeter配置元件【HTTP信息头管理器】相关推荐
- 性能测试之JMeter配置元件【计数器】
1.计数器介绍 如果需要引用的数据量较大,且要求不能重复或者需要自增,那么可以使用计数器组件来实现. 计数器组件中的数据,允许在一个线程组之内都可以被引用. 2.计数器界面详解 添加计数器组件的操作: ...
- 性能测试之JMeter配置元件【随机变量】
1.随机变量介绍 随机变量应用场景:在一些数据要求不重复,或者对数据取值需要正态分布的时候,我们可以采用随机变量组件来满足需求. 随机变量与用户自定义变量的区别: 随机变量(random variab ...
- Jmeter的使用-接口调用、正则表达式提取器、beanshell断言、http信息头管理器
Jmeter的使用----接口调用.正则表达式提取器.beanshell断言.http信息头管理器. 前几天看到有关幂等的的概念,对于比较重要的业务,如何保证接口的幂等至关重要,网上看到了许多解决方案 ...
- resttemplate 设置请求头_Jmeter信息头管理器常用的三种传参格式
当我们在利用Jmeter进行接口测试时,其实相当于Jmeter模拟浏览器作为客户端,按照HTTP等协议发送报文给服务器端接口,以HTTP为例,他的请求报文包括请求行.请求头和请求体,今天要说的三种co ...
- 记一次 HTTP信息头管理器使用 的重要性
今天在测试中遇到了一个问题 使用JMeter时请求相关地址参数及方法都填写正确,但是相应数据返回始终不对,例如 查看取样器结果显示 200 正常,但响应数据不符合正常的结果. 经反复检查发现问题如下: ...
- 测试学习-123-jmeter接口测试token值的传递与http信息头管理器
前言: 在测试工作中,我们经常会遇到,在执行某项业务之前,必须要先登录,只有登录后才能执行某项业务工作的场景,比如:你必须登录后才能执行查询操作,你必须登录后才能执行新增操作,否则就会报错没有权限.这 ...
- JMeter学习笔记--使用HTTP信息头管理器
使用HTTP信息头管理,可以帮助测试人员设定JMeter发送的HTTP请求头所包含的信息.HTTP信息头中包含有"User-Agent"."Pragma".&q ...
- 性能测试之Jmeter元件
性能测试之Jmeter元件 1.性能测试的本质 性能测试的定义 基于协议模拟用户发请求,对服务器形成一定的负载,来测试服务器的性能指标是否满足用户(产品&公司)的需求. 关注点 时间性能 空间 ...
- JMeter配置元件
JMeter配置元件 一:管理请求服务器信息和Headers参数 如果使用Jmeter同时执行多个http请求任务,就需要创建多个HTTP取样器,每一个取样器都来手动填写服务器信息和端口号,会非常消耗 ...
最新文章
- oracle-imp导入小错filesize设置
- linux c 宏定义 #define _GNU_SOURCE 含义
- vector 结构体类型 使用 排序
- Games, rules and ways: 东西卖给谁?
- 反弹shell与正向shell的区别
- TextSwitcher实现文本自动垂直滚动
- 前端学习(2341):jsx的本质
- 电脑很卡~~~~为什么???
- opencv 形态转换
- [渝粤教育] 中国地质大学 结构力学 复习题 (2)
- Asp.Net MVC4 Bundle捆绑压缩技术
- 字节码指令之控制转移指令
- 怎么用proteus软件仿真单片机程序?
- 安卓吃鸡玩家专属:教你电脑玩刺激战场匹配手机最简单的方式
- stm32教程之三重ADC交错采样
- c语言红外解码程序,红外线遥控器软件解码原理和程序(C语言)
- 微信公众号的调试与测试
- 如何下载抖音小程序开发工具
- 计算机无法显示硬盘盘符,移动硬盘连接电脑不显示盘符怎么回事?移动硬盘连接电脑不显示盘符的原因和解决方法...
- Python把视频转为 gif 图片——视频制作利器:MoviePy
热门文章
- 用vb打开word excel 文件,出现提示“发现不可读取的内容”
- Java基础学习总结(167)——Java项目实践中如何实现幂等
- c语言程序设计上机考试题,C语言程序设计上机考试题目汇编..doc
- NameError:name ‘xrange’ is not defined
- 戴尔SC5020发布,专为提高效率/经济性优化设计的中端存储利器
- Shell文本处理三剑客(三)
- Javascript提升阶段学习
- iOS之路10-给xib设置约束注意
- 大数据及hadooop简介
- 利用pgAgent创建定时任务