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 文件 .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值,而不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销。

五、参考

1、https://blog.csdn.net/anndy_/article/details/101292348

posted @ 2022-11-21 17:18  xyztank  阅读(838)  评论(0)    收藏  举报