JMeter取样器之HTTP取样器
一、背景
在jmeter性能测试或者接口测试中,需要用工具模拟发送请求的过程,在python接口自动化中主要是用request库发送http或https请求,而在jmeter中主要是用HTTP Request,具体参数配置如下所示。
二、取样器添加
右击线程组——添加——取样器——HTTP请求,如下图所示:

三、基本配置详解
HTTP取样器添加成功后,可以看到默认界面的具体需要配置的参数,基本的配置项,如下所示:

1、Web Server 配置

| 配置项 | 作用 |
|---|---|
| Protocol [http] | 向服务器发送的HTTP请求协议类型,可以是HTTP或HTTPS,默认为HTTP,大小写均可 |
| Server Name or IP | 服务器的IP或域名,不含协议类型。比如:www.baidu.com、192.168.31.1,不用再加上http或https |
| Port Number | 服务器端口号,默认值为80。http协议默认端口是80,https协议的默认端口为443 |
2、HTTP Request 配置

| 配置项 | 作用 |
|---|---|
| Method | HTTP请求的方法。可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等 |
| Path | 路径。HTTP请求的URL路径 |
| Content encoding | 内容编码。默认为ISO-8859-1编码,常用配置为utf-8 |
| Redirect Automatically | 自动重定向。如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 会自动重定向到新的页面,但是Jmeter是不记录重定向的过程内容,即在查看结果树中只能看到重定向后的响应内容 |
| Follow Redirects | 跟随重定向。Http Request取样器的默认选项,当响应code是3xx时,自动跳转到目标地址。与自动重定向不同,Jmeter会记录重定向过程中的所有请求响应, 在查看结果树时可以看到服务器返回的内容,如有多个跳转则多个请求都会被记录下来 |
| Use KeepAlive | 持久连接。默认勾选,jmeter与目标服务器之间使用 Keep-Alive方式进行HTTP通信。 勾选时,压测时会带来长连接超时报错的问题 注意:性能测试强烈建议不勾选 |
| Use multipart/form-data | 文件表单上传。一般发送POST请求时,需要勾选,并在 Files Upload 中上传对应的文件。默认不勾选 |
| Browser-compatible headers | 与浏览器兼容的头(默认不勾选)。当勾选multipart/form-data时,勾选此项会截掉http请求头中 的Content-Type和Content-Transfer-Encoding,而只发送Content-Disposition部分。 |
3、HTTP Request Parameters配置

| 配置项 | 作用 |
|---|---|
| Name | 参数名称 |
| Value | 参数值,可以是常量,也可以是变量 |
| URL Encode? | 是否要 URL 编码? 如果参数值包含了中文、特殊字符(非数字字母以外),最好勾上 |
| Content-Type | 参数值的资源类型,默认不进行配置(默认是text/plain)。 此处一般不做配置,会在请求头HTTP Request Management中进行处理 |
| Include Equals | 自动添加参数名和值之间的等号。 当你的参数值为空的时候,可以选择不包含=,默认勾选 如果参数值不为空,则不可以取消勾选 |
| Detail | 参数的详细信息 |
| Add | 新增参数行 |
| Add from Clipboard | 从剪切板/粘贴板新增参数行 |
| Delete | 删除选中的参数行 |
| Up | 选中的参数行向上移动一行 |
| Down | 选中的参数行向下移动一行 |
4、HTTP Request Files Upload配置

| 配置项 | 作用 |
|---|---|
| File Path | 上传文件本地路径 |
| Parameter Name | 参数名。可以”$“符号+"{参数名}"引用。 |
| MIME Type | MINE Type为资源媒体类型 |
5、常见资源媒体类型
| 类型 | 文件后缀 | 格式 |
|---|---|---|
| 超文本标记语言文本 | .html | text/html |
| 普通文本 | .txt | text/plain |
| PNG 图片 | .png | image/png |
| XML 文件 | .xml | text/xml |
| JPEG 图片 | .jpeg、jpg | image/jpeg |
| 表单中进行文件上传 | multipart/form-data | |
| 表单默认提交数据的格式 | application/x-www-form-urlencoded | |
| XML 数据格式 | application/xml | |
| JSON 数据格式 | application/json | |
| PDF 文件 | application/pdf | |
| RTF 文本 | .rtf | application/rtf |
| GZIP 文件 | .gz | application/x-gzip |
| TAR 文件 | .tar | application/x-tar |
| AVI 文件 | .avi | video/x-msvideo |
| MPEG 文件 | .mpg、.mpeg | video/mpeg |
四、高级配置详解

1、Client implementation配置
| 配置项 | 作用 |
|---|---|
| implementation | 发送http请求的方式,可选项为java和HttpClient4,默认为HttpClient4 |
2、Timeouts (milliseconds)配置
| 配置项 | 作用 |
|---|---|
| Connect | 连接超时时间,单位毫秒 |
| Respones | 响应等待超时时间,单位毫秒 |
Embedded Resources from HTML Files:
Embedded Resources from HTML Files:从HTML文件获取所有内含的资源:jmeter在发出的HTTP请求获得响应的HTML文件内容后,对HTML进行解析并获取HTML中包含的所有资源(图片、flash等),默认不勾选。
如果用户只希望获取页面中的特定资源,可以在下方的Embedded URLs must match 文本框中填入需要下载的特定资源表达式,这样,只有能匹配指定正则表达式的URL指向资源会被下载。
| 配置项 | 作用 |
|---|---|
| Retrieve All Embedded Resources | 解析所有嵌入式资源,默认不勾选。勾选后启用Parallel downloadds. Number |
| Parallel downloadds. Number | 是否使用自设资源处。启用后可以设置资源池大小,默认为6 |
| URLs must match | URL匹配过滤,填写此项则只会下载与此内容项匹配的url的资源 |
| URLs must not match | URL不匹配过滤 |
3、Source address
Source address:只用于HTTP协议且implementation为HttpClient4时。
| 配置项 | 作用 |
|---|---|
| IP/Hostname | IP /主机名以使用特定的IP地址或(本地)主机名 |
| Device | 选择设备以选择该接口的第一个可用地址,该设备可以是IPv4或IPv6 |
| Device IPv4 | 选择IPv4设备来选择名称设备的IPv4地址(如eth0, lo, em0) |
| Device IPv6 | 选择IPv6设备来选择名称设备的IPv4地址(如eth0, lo, em0) |
4、Proxy Server:代理服务器
| 配置项 | 作用 |
|---|---|
| Server Name or IP | 代理服务器的名称或者IP地址 |
| Port Number | 代理服务器的端口号 |
| Username | 代理服务器的用户名 |
| Password | 代理服务器的密码 |
5、Optional Tasks
| 配置项 | 作用 |
|---|---|
| Save response as MD5 hash? | 选中该项,在执行时仅记录服务端响应数据的MD5值,而不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销。 |

浙公网安备 33010602011771号