zoukankan      html  css  js  c++  java
  • Jmeter系列(17)- 详解 HTTP 请求默认值

    转自:https://www.cnblogs.com/poloyy/

    一、HTTP 请求默认值界面介绍

    img

    ​ 乍眼一看,其实跟 HTTP Request 的界面基本一样,少了一点点东西而已,所以这里就不介绍每个字段的含义了,来说下注意事项

    1.1 重点

    • HTTP 请求默认值可以直接添加到 线程组下面,也可以添加到某个 HTTP 请求下面
    • 如果是在线程组下的 HTTP 请求默认值,那么它的 作用域 就是该线程组下的 所有 HTTP 请求,包括子级、孙子级、孙孙子级的 HTTP 请求
    • 如果实在某个 HTTP 请求下的 HTTP 请求默认值,那么它的 作用域就只针对 这个 HTTP 请求
    • 线程组的 HTTP 请求默认值的 优先级小于 HTTP 请求下的 HTTP请求默认值
    • 当然啦,所有 HTTP 请求默认值的 优先级 都比 HTTP 请求

    1.2 例子

    1.2.1 测试计划树结构

    img

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

    1.2.2 第一个 HTTP 请求默认填写的内容

    img

    设置了:协议、host、端口、编码、参数

    1.2.3 第二个 HTTP 请求默认填写的内容

    img

    设置了:host、端口、路径

    1.2.4 第三个 HTTP 请求默认填写的内容

    img

    设置了:host、编码、参数列表

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

    img

    可以看到

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

    img

    1.2.6 看看图片文件上传接口的请求体和响应体吧

    img

    可以看到

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

    img

    二、总结

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

    1. HTTP 请求本身设置的值
    2. HTTP 请求下的 HTTP 请求默认值设置的值
    3. 线程组下的 HTTP 请求默认值设置的值

    2.1 最后一句话

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

  • 相关阅读:
    Python 正则表达式入门
    使用numpy与matplotlib.pyplot画图
    快乐python 零基础也能P图 —— PIL库
    Jieba库使用和好玩的词云
    python运用turtle 画出汉诺塔搬运过程
    有进度条圆周率计算
    用pythen画五角星
    pytest+allure+requests-接口自动化测试
    pytest---allure测试报告
    自动化测试---pytest
  • 原文地址:https://www.cnblogs.com/dongye95/p/14151429.html
Copyright © 2011-2022 走看看