JMeter配置原件-HTTP信息头管理器

jemeter在请求头中加参数 jmeter 请求头_json

 

看一下官方文档介绍
咋一看,这个解释有点懵。我尝试解释一下,前面我们学过HTTP协议的基础知识,HTTP有请求行,请求头,空一行以及body组成。请求头中比较重要的值是user-agent、content-type以及sign签名等。User-agent声明是通过客户端进行访问。
HTTP协议发送请求给服务器的时候,会发送请求行、请求头以及请求体等信息。请求中的参数正确,请求不一定执行成功,还要看请求头是否正确。请求头也正确了,这样才能告诉服务器,我们的请求是合法的。

举个实例:

JMeter发送的请求,content-type默认的格式是www-form-urlencode格式,如果要发送json格式的请求,那么就要定义信息头管理器。

看一下禁用学校的请求:

jemeter在请求头中加参数 jmeter 请求头_jemeter在请求头中加参数_02

 

再对比抓包(有接口文档就不用抓包了)

jemeter在请求头中加参数 jmeter 请求头_请求头_03

 

请求行和请求体都没有错,但是查看结果树报错了。在这里也总结一下:接口报错要怎么办?

1.查看结果树

先看一下“取样器结果”,在里面可以看到大概的信息,然后重点是看请求,一个个对比,看看请求行,请求体,请求头是否都正确了。

jemeter在请求头中加参数 jmeter 请求头_HTTP_04

信息头中content-type类型不对,因为禁用的接口,content-type数据类型是json类型,所以要在请求头中加上Content-Type: application/json

2.最后看一下“响应数据”

看看响应有什么有用的提示。

jemeter在请求头中加参数 jmeter 请求头_请求头_05


jemeter在请求头中加参数 jmeter 请求头_请求头_06

 

加上信息头管理器后,请求就发送成功了。

要注意加信息头管理器的位置,如果只想对单个请求起作用,那么信息头管理器就加在请求里面。

如果信息头管理器放在测试计划下,看图

jemeter在请求头中加参数 jmeter 请求头_请求头_07

 

这样的话信息头管理器中定义的信息头,线程组中的所以请求都会继承。登录、新建学校、禁用学校的信息头都会继承刚才定义的信息头。
存在的问题是,登录和新建学校的接口的请求方式是Content-Type: application/x-www-form-urlencoded格式的,这种情况怎么办呢?

跟请求HTTP请求默认值一样的思路:

如果接口的请求格式是application/json类型的多,那么信息头管理器就放在测试计划上面,线程组中的请求如果有的请求是application/x-www-form-urlencoded格式的,那么在该请求里面加一个信息头管理器,名称和值填上Content-Type: application/x-www-form-urlencoded即可。