16.Jmeter基础--- HTTP 请求默认值

HTTP 请求默认值界面介绍

16.Jmeter基础--- HTTP 请求默认值_第1张图片

其实跟 HTTP Request 的界面基本一样

1、HTTP 请求默认值可以直接添加到线程组下面,也可以添加到某个 HTTP 请求下面

2、如果是在线程组下的 HTTP 请求默认值,那么它的作用域就是该线程组下的所有 HTTP 请求,包括2级、3级、4级的 HTTP 请求

3、如果实在某个 HTTP 请求下的 HTTP 请求默认值,那么它的作用域就只针对这个 HTTP 请求

4、线程组的 HTTP 请求默认值的优先级小于HTTP 请求下的 HTTP请求默认值

5、当然啦,所有 HTTP 请求默认值的优先级都比 HTTP 请求低

举个例子吧:测试计划树结构

16.Jmeter基础--- HTTP 请求默认值_第2张图片

一个线程组下的 HTTP 请求默认值1,两个 HTTP 请求下的HTTP 请求默认值2、3

第一个 HTTP 请求默认填写的内容,设置了协议、host、端口、编码、参数

16.Jmeter基础--- HTTP 请求默认值_第3张图片

第二个 HTTP 请求默认填写的内容,设置了host、端口、路径

16.Jmeter基础--- HTTP 请求默认值_第4张图片

第三个 HTTP 请求默认填写的内容,设置了host、编码、参数列表

16.Jmeter基础--- HTTP 请求默认值_第5张图片

看看 Flask-json 的请求体和响应体吧

16.Jmeter基础--- HTTP 请求默认值_第6张图片

可以看到

  • 【2--请求默认值】里设置的host、端口、路径把【1--请求默认值】设置的覆盖掉了
  • 又因为【1--请求默认值】设置了编码和参数列表,而【2--请求默认值】没有设置,所以直接拿了【1--请求默认值】的值
  • 但有个问题,HTTP 请求本身有设置请求数据(JSON),请求数据是不会被覆盖的,而会把【1--请求默认值】的参数列表和 JSON 数据拼接在一起,拼接后的数据结构是错误的,所以请求会报错
  • 即使 HTTP 请求默认值里面设置的是 JSON 数据,也不会合二为一,仍然会报错(如下图)

16.Jmeter基础--- HTTP 请求默认值_第7张图片

说明:

  • 【2--请求默认值】里设置的host、编码把【1--请求默认值】设置的覆盖掉了
  • 而这个 HTTP请求的请求数据是也是参数列表形式传参的,这样就可以拼接成功了
  • 最终会把两个请求默认值的参数列表拼接起来再传递,即使参数名一样,仍然会分开传,而不是覆盖参数值

总结

HTTP 请求所需的各种字段值(host、端口、编码、请求数据等等),取值的顺序(优先级)是:

1、HTTP 请求本身设置的值

2、HTTP 请求下的 HTTP 请求默认值设置的值

3、线程组下的 HTTP 请求默认值设置的值

有多个 HTTP 请求默认值时,除了参数列表或请求体数据是会拼接之外,其他字段值的取值顺序就是按照上述的顺序来走的

你可能感兴趣的:(测试工程师)