前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jmeter系列(21)- 详解 HTTP Request

Jmeter系列(21)- 详解 HTTP Request

作者头像
小菠萝测试笔记
发布2020-06-23 14:42:08
3.1K0
发布2020-06-23 14:42:08
举报
文章被收录于专栏:自动化、性能测试

HTTP Request 介绍

用来发送 HTTP、HTTPS 协议请求

HTTP Request 界面

字段名

作用

名称

不多介绍啦,建议自定义一个识别度高的名称

注释

对于测试没有任何影响,仅记录作用

协议

http或https,大小写不敏感 默认:http

服务器名称或IP

服务器 host 或者 ip,不包括协议 比如:www.baidu.com、192.168.196.128

端口号

目标服务器的端口号,默认:80

方法

发送 http 请求的方法

路径

目标请求的 URL 路径 不包括协议、host、ip、端口

内容编码

请求的编码方式,默认:iso8859

自动重定向

发出的请求的响应码是3**,会自动跳转到新目标页面 只记录最终页面的返回结果

跟随重定向

和自动重定向唯一不同的是: 会记录重定向过程中的的所有请求的响应结果

使用 KeepAlive

jmeter 和目标服务器之间使用 Keep-Alive 方式进行 HTTP 通信 真正做性能测试强烈建议不勾选

对POST使用multipart/form-data

post 请求需要上传文件时勾选

与浏览器兼容的头

当勾选 multipart/form-data 时,勾选此项 http请求头中的 Content-Type 和Content-Transfer-Encoding 被忽略 而只发送 Content-Disposition 部分

  • 服务器 host 或者 ip,不包括协议
  • 比如:www.baidu.com、192.168.196.128

端口号 目标服务器的端口号,默认:80 方法 发送 http 请求的方法 路径

  • 目标请求的 URL 路径
  • 不包括协议、host、ip、端口

内容编码 请求的编码方式,默认:iso8859 自动重定向

  • 发出的请求的响应码是3**,会自动跳转到新目标页面
  • 只记录最终页面的返回结果

跟随重定向

  • 和自动重定向唯一不同的是:
  • 会记录重定向过程中的的所有请求的响应结果

使用 KeepAlive

  • jmeter 和目标服务器之间使用 Keep-Alive 方式进行 HTTP 通信
  • 真正做性能测试强烈建议不勾选

对POST使用multipart/form-data post 请求需要上传文件时勾选 与浏览器兼容的头

  • 当勾选 multipart/form-data 时,勾选此项
  • http请求头中的 Content-Type 和Content-Transfer-Encoding 被忽略
  • 而只发送 Content-Disposition 部分

Parameters 讲解

字段

描述

Name

参数名

Value

参数值

URL Encode?

是否要 URL 编码? 重点:如果参数值包含了中文、特殊字符(非数字字母以外),最好勾上,当然全都勾上最稳妥

Content-Type

参数值的资源类型 默认:text/plain

Include Equals?

当你的参数值为空的时候,可以选择不包含=,默认勾选 如果参数值不为空,则不可以取消勾选

  • 是否要 URL 编码?
  • 重点:如果参数值包含了中文、特殊字符(非数字字母以外),最好勾上,当然全都勾上最稳妥

Content-Type

  • 参数值的资源类型
  • 默认:text/plain

Include Equals?

  • 当你的参数值为空的时候,可以选择不包含=,默认勾选
  • 如果参数值不为空,则不可以取消勾选
什么是 URL 编码
  • URL 编码解码又叫百分号编码,是统一资源定位(URL)的编码方式
  • URL 地址(常说网址)规定了数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用( 等),剩下的其它所有字符必须通过 %xx 编码处理

/ , : @

  • 编码方法很简单,在该字符ascii码的的16进制字符前面加%,如空格字符,ascii码是32,对应16进制是20,那么 urlencode 编码结果是

%20

URL 编码的栗子

直接在网上搜在线 URL 编解码

include equals 的栗子

参数值为空,且勾选 Include equals

参数值为空,但不勾选 Include equals

其实说的就是等于号而已,一般也不会传空值,即使传了也会带上=

Body Data 讲解

  • 没啥好说的,传 json 字符串就行了,注意下格式,后面再讲具体栗子
  • 不过倒有个重点:如果 Parameters 有参数列表的话,是无法切换到 Body Data 的哦

Files Upload 讲解

字段

描述

File Path

文件的本地路径

Parameter Name

参数名

MIME Type

资源媒体类型

常见资源媒体类型

类型

文件后缀

格式

超文本标记语言文本

.html

text/html

普通文本

.txt

text/plain

XML 文件

.xml

text/xml

PNG 图片

.png

image/png

GIF

.gif

image/gif

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

不同的content-type在jmeter中如何输入参数

前提

因为是需要真实接口进行测试的,这里提供两种方案

  • 自己用 Flask 框架开发了本地的接口进行测试, 如果有需要的同学进群领取哦:870155189
  • 或者进入 http://open.yesapi.cn/?r=user/registration&from=wx_837493986,直接注册个账号,弄个免费会员,有在线免费的接口提供测试哦

application/x-www-form-urlencoded 的栗子

备注:也是表单提交最常见的栗子

Parameters 方式传参
总结
  • 最终表单的参数列表会拼接到 URL 中,所以如果包含了中文、特殊字符就要勾选编码?
  • 这里不可以通过 Body Data 传递参数哦,会无法识别到参数,已实践过(即使加了 HTTP请求头也不行),乖乖用 Parameters 的方式传参

content-type:application/json 的栗子

Body Data 方式传参
添加 HTTP请求头
请求体
请求头
结论

重点就是添加 HTTP请求头,指明 Content-type 是 json 格式

content-type:multipart/form-data

重点:用于 post 请求,需要文件上传的场景;记住不是 get 请求

请求参数列表

如果选了 get 方法的话,文件参数是不会生效哦

文件参数
请求体
重点
  • 如果添加了 HTTP请求头,请务必不要添加

content-type : multipart/form-data

  • 如果加了的话:那么所有的请求参数都会被当成文件以二进制形式传输,我们 parameters 里的文本格式参数就不会被识别,接口会提示参数为空

HTTP Request Advance

说实话我还没用过这部分的内容,不过还是得了解下每个配置项是什么意思哦

Client implemention 和 Timeouts

字段

描述

implementation

发送http请求的方式,可选项为 java、HttpClient4(默认)

Connect

连接超时时间,单位毫秒

Respones

响应等待超时时间,单位毫秒

Embedded Resources from HTML Files

  • 从HTML文件获取所有内含的资源
  • jmeter 在发出的 HTTP请求获得响应的 HTML文件内容后,对 HTML进行解析并获取HTML中包含的所有资源(图片、flash等)

字段

描述

Retrieve All Embedded Resources

发送http请求的方式,可选项为 java、HttpClient4(默认)

Parallel downloadds. Number

是否使用自设资源处。启用后可以设置资源池大小,默认为6

URLs must match

URL 匹配过滤,填写此项则只会下载与此内容项匹配的 url 的资源

Source address

只用于 HTTP协议且 implemention = HttpClient4 时

字段

描述

IP/Hostname

IP /主机名以使用特定的IP地址或(本地)主机名

Device

选择设备以选择该接口的第一个可用地址,该设备可以是IPv4或IPv6

Device IPv4

选择IPv4设备来选择名称设备的IPv4地址(如eth0, lo, em0)

Device IPv6

选择IPv6设备来选择名称设备的IPv6地址(如eth0, lo, em0)

Proxy Server

代理服务器

字段

描述

Server Name or IP

代理服务器的名称或者IP地址

Port Number

代理服务器的端口号

Username

代理服务器的用户名

Password

代理服务器的密码

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HTTP Request 介绍
  • HTTP Request 界面
    • Parameters 讲解
      • 什么是 URL 编码
      • URL 编码的栗子
      • include equals 的栗子
    • Body Data 讲解
      • Files Upload 讲解
        • 常见资源媒体类型
        • 前提
    • 不同的content-type在jmeter中如何输入参数
      • application/x-www-form-urlencoded 的栗子
        • Parameters 方式传参
        • 总结
      • content-type:application/json 的栗子
        • Body Data 方式传参
        • 添加 HTTP请求头
        • 请求体
        • 请求头
        • 结论
      • content-type:multipart/form-data
        • 请求参数列表
        • 文件参数
        • 请求体
        • 重点
    • HTTP Request Advance
      • Client implemention 和 Timeouts
        • Embedded Resources from HTML Files
          • Source address
            • Proxy Server
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档