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、测试计划内包含的元件

添加元件操作步骤

  1. 创建测试计划。
  2. 创建线程组:选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组
  3. 在线程组中添加配置元件"HTTP信息头管理器"组件:选中“线程组”右键 —> 添加 —> 配置元件 —> HTTP信息头管理器。(稍后添加)
  4. 在线程组里面添加取样器“HTTP请求”组件:选中“线程组”右键 —> 添加 —> 取样器 —> HTTP请求
  5. 在线程组里面添加监听器“察看结果树”组件:查看结果,选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树

最终测试计划中的元件如下:

点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。

3、HTTP请求界面内容

我们按照接口文档中学院-新增接口的描述,编写JMeter取样器,如下图所示:

4、查看脚本执行结果

学院-新增接口调用如下:

我们可以看到上图中,显示接口请求失败,返回的结果说该接口不支持请求中媒体类型text/plain

我们来查看请求头中的信息,如下:

发现请求头中的Content-Typetext/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-AgentReferer等属性。尽可能放在线程组下,除非因为某些原因,测试人员希望不同的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信息头管理器】相关推荐

  1. 性能测试之JMeter配置元件【计数器】

    1.计数器介绍 如果需要引用的数据量较大,且要求不能重复或者需要自增,那么可以使用计数器组件来实现. 计数器组件中的数据,允许在一个线程组之内都可以被引用. 2.计数器界面详解 添加计数器组件的操作: ...

  2. 性能测试之JMeter配置元件【随机变量】

    1.随机变量介绍 随机变量应用场景:在一些数据要求不重复,或者对数据取值需要正态分布的时候,我们可以采用随机变量组件来满足需求. 随机变量与用户自定义变量的区别: 随机变量(random variab ...

  3. Jmeter的使用-接口调用、正则表达式提取器、beanshell断言、http信息头管理器

    Jmeter的使用----接口调用.正则表达式提取器.beanshell断言.http信息头管理器. 前几天看到有关幂等的的概念,对于比较重要的业务,如何保证接口的幂等至关重要,网上看到了许多解决方案 ...

  4. resttemplate 设置请求头_Jmeter信息头管理器常用的三种传参格式

    当我们在利用Jmeter进行接口测试时,其实相当于Jmeter模拟浏览器作为客户端,按照HTTP等协议发送报文给服务器端接口,以HTTP为例,他的请求报文包括请求行.请求头和请求体,今天要说的三种co ...

  5. 记一次 HTTP信息头管理器使用 的重要性

    今天在测试中遇到了一个问题 使用JMeter时请求相关地址参数及方法都填写正确,但是相应数据返回始终不对,例如 查看取样器结果显示 200 正常,但响应数据不符合正常的结果. 经反复检查发现问题如下: ...

  6. 测试学习-123-jmeter接口测试token值的传递与http信息头管理器

    前言: 在测试工作中,我们经常会遇到,在执行某项业务之前,必须要先登录,只有登录后才能执行某项业务工作的场景,比如:你必须登录后才能执行查询操作,你必须登录后才能执行新增操作,否则就会报错没有权限.这 ...

  7. JMeter学习笔记--使用HTTP信息头管理器

    使用HTTP信息头管理,可以帮助测试人员设定JMeter发送的HTTP请求头所包含的信息.HTTP信息头中包含有"User-Agent"."Pragma".&q ...

  8. 性能测试之Jmeter元件

    性能测试之Jmeter元件 1.性能测试的本质 性能测试的定义 基于协议模拟用户发请求,对服务器形成一定的负载,来测试服务器的性能指标是否满足用户(产品&公司)的需求. 关注点 时间性能 空间 ...

  9. JMeter配置元件

    JMeter配置元件 一:管理请求服务器信息和Headers参数 如果使用Jmeter同时执行多个http请求任务,就需要创建多个HTTP取样器,每一个取样器都来手动填写服务器信息和端口号,会非常消耗 ...

最新文章

  1. oracle-imp导入小错filesize设置
  2. linux c 宏定义 #define _GNU_SOURCE 含义
  3. vector 结构体类型 使用 排序
  4. Games, rules and ways: 东西卖给谁?
  5. 反弹shell与正向shell的区别
  6. TextSwitcher实现文本自动垂直滚动
  7. 前端学习(2341):jsx的本质
  8. 电脑很卡~~~~为什么???
  9. opencv 形态转换
  10. [渝粤教育] 中国地质大学 结构力学 复习题 (2)
  11. Asp.Net MVC4 Bundle捆绑压缩技术
  12. 字节码指令之控制转移指令
  13. 怎么用proteus软件仿真单片机程序?
  14. 安卓吃鸡玩家专属:教你电脑玩刺激战场匹配手机最简单的方式
  15. stm32教程之三重ADC交错采样
  16. c语言红外解码程序,红外线遥控器软件解码原理和程序(C语言)
  17. 微信公众号的调试与测试
  18. 如何下载抖音小程序开发工具
  19. 计算机无法显示硬盘盘符,移动硬盘连接电脑不显示盘符怎么回事?移动硬盘连接电脑不显示盘符的原因和解决方法...
  20. Python把视频转为 gif 图片——视频制作利器:MoviePy

热门文章

  1. 用vb打开word excel 文件,出现提示“发现不可读取的内容”
  2. Java基础学习总结(167)——Java项目实践中如何实现幂等
  3. c语言程序设计上机考试题,C语言程序设计上机考试题目汇编..doc
  4. NameError:name ‘xrange’ is not defined
  5. 戴尔SC5020发布,专为提高效率/经济性优化设计的中端存储利器
  6. Shell文本处理三剑客(三)
  7. Javascript提升阶段学习
  8. iOS之路10-给xib设置约束注意
  9. 大数据及hadooop简介
  10. 利用pgAgent创建定时任务