HTTP Request 取样器
HTTP 请求(HTTP Request)是 JMeter 中的一种取样器,用于模拟 HTTP 请求。
在 JMeter 接口测试中,接口调试是非常重要的一环,Jmeter是一款功能强大的接口测试工具,支持多种取样器,其中 HTTP Request 取样器被广泛使用。
HTTP Request 取样器是模拟 HTTP 请求,支持多种请求方法和数据类型,是 JMeter 中最常用的取样器,具有灵活性和扩展性,因此被广泛使用。
HTTP Request 取样器主要分为基本属性和高级属性,只有用到 JMeter进行接口测试,必然会填写取样器基本属性,所有此处必须掌握。
位置:线程组 -> 右键 -> 添加 -> 取样器 -> HTTP 请求。
可以看到取样器的主要属性有:协议、服务器名称或IP地址、端口号、方法、路径、请求体以及参数。
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,防止参数值内含有中文,如下图所示:
-
消息体数据: 请求数据类型为 Content-Type=application/json,可以将请求参数以json的形式填写在这里,如下图所示:
-
文件上传: 同请求一起发送的文件信息,参数名称就是发送文件对应的参数, MINE Type为资源媒体类型。
1.2 高级说明
这是 HTTP Request 取样器的 GUI 高级界面,我们可以看到主要属性有:客户端实现、从HTML文件嵌入资源、源地址、代理服务器、其他任务。
客户端实现
-
实现: 发送 HTTP 请求的方式,可选项为 java 和 HttpClient4,默认为 HttpClient4
-
连接: 连接超时时间设置,单位为毫秒
-
响应: 响应超时时间设置,单位为毫秒
从HTML文件嵌入资源
- 从HTML文件获取所有内含的资源: 当该选项被选中时,JMeter 在发出 HTTP 请求并获得响应的 HTML 文件内容后,还对该HTML进行解析并获取 HTML 中包含的所有资源(图片、css、flash等)
- 并行下载: 设置是否使用自设资源池,勾选后可设置大小
- 数量: 资源池大小,默认为6
- 网址必须匹配: URL 匹配过滤,填写此项则只会下载与此内容项匹配的 URL 的资源
源地址
- 仅适用于具有HTTPClient实现的HTTP请求,此属性用于启用IP欺骗。它会覆盖此示例的本地IP地址
- 选择IP/主机名:使用特定的IP地址或(本地)主机名
- 选择设备:选择该设备的第一个可用地址,该地址可以是IPv4或IPv6
- 选择设备IPv4:选择设备名称的IPv4地址(例如eth0,lo,em0等)
- 选择设备IPv6:选择设备名称的IPv6地址(例如eth0,lo,em0等)
JMeter主机必须具有多个IP地址(即IP别名,网络接口,设备),该值可以是主机名,IP地址或网络接口设备,例如“ eth0 ”或“ l0”或“ wlan0 ”
如果定义了属性httpclient.localaddress,则该属性用于所有HttpClient请求。
代理服务器
- 若请求需要通过代理访问,在此处设置代理信息
保存响应为MD5哈希
- 选中该项,在执行时仅记录服务端响应数据的 MD5 值,而不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销