HTTP Request 取样器

HTTP Request 取样器

HTTP 请求(HTTP Request)是 JMeter 中的一种取样器,用于模拟 HTTP 请求。

在 JMeter 接口测试中,接口调试是非常重要的一环,Jmeter是一款功能强大的接口测试工具,支持多种取样器,其中 HTTP Request 取样器被广泛使用。

HTTP Request 取样器是模拟 HTTP 请求,支持多种请求方法和数据类型,是 JMeter 中最常用的取样器,具有灵活性和扩展性,因此被广泛使用。

HTTP Request 取样器主要分为基本属性和高级属性,只有用到 JMeter进行接口测试,必然会填写取样器基本属性,所有此处必须掌握。

位置:线程组 -> 右键 -> 添加 -> 取样器 -> HTTP 请求。
可以看到取样器的主要属性有:协议、服务器名称或IP地址、端口号、方法、路径、请求体以及参数。

image

1. 参数说明

1.1 基本说明

名称

  • 本属性用于标识一个取样器,建议使用一个有意义的名称,比如登录

注释

  • 对于测试没有任何作用,仅用户记录用户可读的注释信息

Web服务器

  • 协议: 向目标服务器发送HTTP请求时的协议,可以是http或者是https,如果不填写,默认值为 http ,不区分大小写

  • 服务器名称或IP: HTTP请求发送的目标服务器名称或IP地址,比如 www.baidu.com

  • 端口号: 目标服务器的端口号,默认值为80,https的端口为443

HTTP 请求

  • 方法: 发送HTTP请求的方法,常用方法有 GET、POST、PUT、DELETE … 等

  • 路径 目标接口路径,比如登录接口路径 /member/loginAndRegister

  • 内容编码: 内容的编码格式,默认值为 ISO-8859-1,一般都填入utf-8,或者在 HTTP信息头管理器元件中添加 Content-Type=application/json;charset=UTF-8

  • 自动重定向: 如果选中该项,发出的 http 请求得到响应是301/302,JMeter 会重定向到新的界面

  • 跟随重定向: Http Request 取样器的默认选项,但响应Code是3XX时(比如301是重定向),自动跳转至目标地址

  • keep Alive: Http Request 取样器的默认选项,JMeter 和目标服务器之间使用 Keep-Alive 连接方式进行 HTTP 通信

  • 对POST使用 multipart/from-data: 当发送 HTTP POST 请求时使用,取决于数据类型 Content-Type,一般不勾选

  • 与浏览器兼容的头: 当勾选 multipart/form-data 时,勾选此项会截掉http请求头中的 Content-Type 和 Content-Transfer-Encoding,而只发送Content-Disposition部分

  • 参数: 请求数据类型为 Content-Type=text/plain,可以将请求参数填写在本表单中,表单中的每一行是一个参数值对,此时内容编码设置为UTF-8,防止参数值内含有中文,如下图所示:
    image

  • 消息体数据: 请求数据类型为 Content-Type=application/json,可以将请求参数以json的形式填写在这里,如下图所示:
    image

  • 文件上传: 同请求一起发送的文件信息,参数名称就是发送文件对应的参数, MINE Type为资源媒体类型。

1.2 高级说明

这是 HTTP Request 取样器的 GUI 高级界面,我们可以看到主要属性有:客户端实现、从HTML文件嵌入资源、源地址、代理服务器、其他任务。
image

客户端实现

  • 实现: 发送 HTTP 请求的方式,可选项为 java 和 HttpClient4,默认为 HttpClient4

  • 连接: 连接超时时间设置,单位为毫秒

  • 响应: 响应超时时间设置,单位为毫秒

从HTML文件嵌入资源

  • 从HTML文件获取所有内含的资源: 当该选项被选中时,JMeter 在发出 HTTP 请求并获得响应的 HTML 文件内容后,还对该HTML进行解析并获取 HTML 中包含的所有资源(图片、css、flash等)
  • 并行下载: 设置是否使用自设资源池,勾选后可设置大小
  • 数量: 资源池大小,默认为6
  • 网址必须匹配: URL 匹配过滤,填写此项则只会下载与此内容项匹配的 URL 的资源

源地址

  • 仅适用于具有HTTPClient实现的HTTP请求,此属性用于启用IP欺骗。它会覆盖此示例的本地IP地址
  1. 选择IP/主机名:使用特定的IP地址或(本地)主机名
  2. 选择设备:选择该设备的第一个可用地址,该地址可以是IPv4或IPv6
  3. 选择设备IPv4:选择设备名称的IPv4地址(例如eth0,lo,em0等)
  4. 选择设备IPv6:选择设备名称的IPv6地址(例如eth0,lo,em0等)

JMeter主机必须具有多个IP地址(即IP别名,网络接口,设备),该值可以是主机名,IP地址或网络接口设备,例如“ eth0 ”或“ l0”或“ wlan0 ”
如果定义了属性httpclient.localaddress,则该属性用于所有HttpClient请求。

代理服务器

  • 若请求需要通过代理访问,在此处设置代理信息

保存响应为MD5哈希

  • 选中该项,在执行时仅记录服务端响应数据的 MD5 值,而不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销
### 取样器的配置方法与参数 取样器JMeter 中是一个重要的组件,用于定义测试脚本中的请求类型和参数。以下详细说明了取样器的配置方法及其参数。 #### 1. 参数值与类型设置 在取样器中,`Parameter values` 和 `Parameter types` 是配合占位符使用的。占位符用 `?` 表示,`Parameter values` 用于设置占位符的具体参数值,而 `Parameter types` 则用于指定这些参数值的数据类型[^1]。 例如,如果需要传递两个参数,分别为字符串和整数,则可以在 `Parameter values` 中填写 `value1,value2`,在 `Parameter types` 中填写 `java.lang.String,java.lang.Integer`,两者一一对应。 #### 2. 请求数据类型与编码 对于 HTTP Request 取样器,当请求数据类型为 `Content-Type=text/plain` 时,可以将请求参数直接填写在表单中,每行表示一个参数值对[^2]。为了防止中文或其他非 ASCII 字符导致乱码问题,建议将内容编码设置为 `UTF-8`[^3]。 #### 3. URL 参数配置 在 HTTP 取样器中,可以通过表单的方式设置 URL 中的所有参数,每行代表一个参数值对[^3]。例如,若 URL 需要传递两个参数 `key1=value1` 和 `key2=value2`,则可以在表单中分别填写这两行参数值对。同时,为了确保特殊字符或符号不会引起乱码问题,建议勾选 `Use multipart/form-data for POST` 并将编码设置为 `UTF-8`。 #### 4. 示例代码 以下是一个使用 JMeterHTTP Request 取样器发送 POST 请求的示例: ```python import requests # 定义请求参数 data = { "key1": "value1", "key2": "value2" } # 设置请求头 headers = { "Content-Type": "text/plain", "charset": "UTF-8" } # 发送请求 response = requests.post("http://example.com/api", data=data, headers=headers) # 输出响应 print(response.text) ``` 此代码片段展示了如何通过 Python 模拟 HTTP Request 取样器的功能,包括设置参数值对、请求头以及编码方式。 #### 5. 注意事项 - 确保参数值与类型的一一对应关系,否则可能导致运行时错误。 - 对于包含中文或特殊字符的参数值,务必设置正确的编码格式以避免乱码问题。 - 在实际配置过程中,可以根据具体需求调整请求头中的 `Content-Type` 和其他相关参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值