如何使用JMeter发送Post请求
1、Post请求参数类型说明
在Post请求中,更重要的是参数类型。不同请求的参数形式是不一样的,在JMeter中的存在形式也是不一样的。
Post请求的数据类型包括:
form-data
:以键值对的方式提交数据。
对于一段utf8编码的字节的数据,直接将utf8编码字节的拼接到请求体中,在本地有多少字节实际就发送多少字节,极大提高了效率,适合传输长字节。
因此在传很长的字节(如文件)时应用multipart/form-data
格式。
总结:- 不对提交的表单数据进行字符编码。
- 在使用包含文件上传控件的表单时,推荐使用该值。
- 可以上传键值对,也可以上传文件。
- 可以上传多个文件。
x-www-form-urlencoded
:会将表单内的数据转换为键值对,而且键值对都是通过&间隔分开的。当需要模拟表单上传数据时,用此选项。
它是Post提交的默认格式,在发送数据前编码所有字符,采用ascii字符编码,将非ascii字符做百分号编码,所以对于非ascii字符传输效率就很低了。
但此表单不能上传文件,只能是文本格式。
总结:
同样使用URLencode转码,Post请求方式跟Get请求方式的区别在于:- Get请求方式把转换、拼接完的字符串用
?
直接与表单的action连接作为URL使用,所以请求体里没有数据。 - Post请求方式把转换、拼接后的字符串放在了请求体里,不会在浏览器的地址栏显示,因而更安全一些。
- Get请求方式把转换、拼接完的字符串用
raw
可以上传任意格式的文本类型数据,文本不做任何修饰传到服务端,可以上传txt
,JavaScript
,json
,xml
,html
等格式的数据。
其实主要的还是传递json格式的数据,当后端要求json数据格式的时候,就要使用此种格式来测试。binary
相当于Content-Type:application/octet-stream
,只可以上传二级制数据,通常用来上传文件,但一次只能上传一个文件
2、用于演示的项目说明
Httpbin
是一个使用Python + Flask
编写的HTTP Request & Response Service
项目,该服务主要用于测试 HTTP库,你可以向他发送请求,然后他会按照指定的规则将你的请求返回(查看你所发送请求中的信息)。
Httpbin
支持HTTP/HTTPS
请求,支持所有的HTTP动词,能测试HTTP请求和响应的各种信息,比如 cookie
、ip
、headers
和登录验证等。
Httpbin
接口地址:httpbin.org
提示:按照规则请求
http://httpbin.org/
,会返回发送请求报文的完整内容。具体可查看https://www.cnblogs.com/liuyuelinfighting/p/14788860.html文章,有详细说明。
3、发送Post请求示例
(1)测试计划内包含的元件
元件操作步骤:
- 创建测试计划。
- 创建线程组:
选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组
。 - 在线程组里面,添加取样器“HTTP请求”组件:
选中“线程组”右键 —> 添加 —> 取样器 —> HTTP请求
。 - 在线程组里面,添加监听器“察看结果树”组件:查看结果,
选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树
。
最终测试计划中的元件如下:
点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。
(2)请求参数类型为x-www-form-urlencoded
x-www-form-urlencoded
格式数据是Post请求的默认数据格式。
在JMeter界面中的参数选项页直接添加参数,发送Post请求的时候,就发送的是x-www-form-urlencoded
格式的数据。
我们请求发送后,我们在察看结果树中查看请求头和请求体中的数据。
请求头:我们可以看到下图中,请求的Content-Type
为application/x-www-form-urlencoded
。
请求体:我们可以看到请求体中的参数格式。
当然我们也可以使用Fiddler工具进行查看,整体效果更直观一些,如下图:
4、请求参数form-data
格式数据
发送form-data
格式的参数,只比发送x-www-form-urlencoded
格式的参数多一步,就是勾选上对POST使用multipart/form-data
选项。
如下图:
请求发送后,在察看结果树中查看请求头和请求体中的数据。
请求头:我们可以看到下图中,请求的Content-Type
为multipart/form-data
。
请求体:我们可以看到请求体中的参数格式。
当然我们也可以使用Fiddler工具进行查看,整体效果更直观一些,如下图:
5、总结
通过上面两个Post请求,可以十分清晰的看出application/x-www-form-urlencoded
参数格式和multipart/form-data
参数格式的区别。
而我们在日常工作中,需要按照接口文档的要求,来指定Post请求中参数的格式即可。
说明:
- 关于Post参数类型,在我Postman部分的内容中讲的比较详细,可以互相对照着看。
- 关于使用JMeter发送Json格式的数据,在后边配置元件中讲解。
Jmeter高级性能测试实战https://edu.csdn.net/course/detail/35834
如何使用JMeter发送Post请求相关推荐
- Jmeter发送get请求
Jmeter发送get请求: 添加线程组**:**先添加线程组-添加HTTP请求 **paramters:**参数的地方 bodydata json xml 监听器-–添加一个查看结果树
- Jmeter使用篇(五) : Jmeter发送post_json请求
一.jmeter发送post_json请求 例: 接口业务: http://123.58.251.183:8080/goods/json 参数 {"loginname":abc,& ...
- 2022全网最全最细的jmeter接口测试教程以及接口测试流程详解— 使用JMeter发送一个请求
当我们第一次打开JMeter的时候,树形标签栏中只有一个"测试计划". 如果想要发送一个请求,需要操作如下步骤:(最基础的一个请求) 步骤1:创建一个测试计划 打开JMeter会默 ...
- jmeter发送java请求-Mysql插入操作
代码编写粗糙,仅提供思路 一.运行效果 二.原理解释 操作环境:jmeter5.4 实现jmeter扩展需要的依赖包 jmeter\apache-jmeter-5.4\lib目录下:jorphan.j ...
- jmeter测试TCP服务器/模拟发送TCP请求
jmeter测试TCP服务器,使用TCP采样器模拟发送TCP请求. TCP采样器:打开一个到指定服务器的TCP / IP连接,然后发送指定文本并等待响应. jmeter模拟发送TCP请求的方法: 1. ...
- jmeter模拟http请求/发送gzip数据
jmeter中get请求gzip数据的方法: 在jmeter线程组中添加"http信息头管理器",并添加名称:Accept-Encoding值: gzip,deflate 注:HT ...
- JMeter 入门脚本以发送百度请求为例
1. 打开JMeter 就会有一个默认的Test Plan(测试计划) 2. 添加线程组 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信 ...
- jmeter安全证书_HTTPS证书生成及Jmeter中发送HTTPS请求
HTTPS证书生成 在Jmeter中发送HTTPS协议请求,需要有SSL证书支持,而对于一个已知网站我们是可以自己生成该网站的SSL证书,并运用到Jmeter中,使Jmeter能发送HTTPS请求成功 ...
- JMeter的PUT请求,响应结果中文出现乱码的解决方法
一.发现问题 1.接口的方法是PUT请求,Body Data传的"name"和"description"参数是中文的,编码格式也填了"UTF-8&qu ...
最新文章
- alv+checkbox+select all
- 也来看看Android的ART运行时
- 跟别人借钱,你遇到过什么奇葩的借口?
- 前端基础之BOM和DOM
- java datainputstream_Java中DataInputStream的用法
- VUE 学习代码理解(1~5课时代码)
- 通达信公式大全_通达信选股器公式大全:抓牛股、抓妖股、找龙头,一应俱全...
- Apicloud+Vue开发App专题
- 基于推特数据挖掘交通事件的城市交通流深度学习预测模型
- 赵雯北京大学计算机动画系,北京大学艺术类、设计类考研辅导课程
- Android生物识别
- Linux 设备模型基本概念 (一)
- JDP-[单例模式]-思路梳理
- Gradle下载spring包出现Received status code 401 from server: Unauthorized
- 机器人涂装工程师岗位英文缩写_公司里各职位名称的英文缩写
- python求平均值的怎么编写,python 怎么求平均值
- UPS电池容量检测方法
- Hyperledger/cello实际测试——SDK
- jpa、mybatis、hibernate、spring data jpa区别
- PMI-ACP练习题(9)
热门文章
- 在 vCenter Server 中触发了 vSphere Distributed Switch 绑定警报 (2057667)
- 调查VMware View Composer失败代码(2085204)
- App后台开发运维和架构实践学习总结(5)——App产品从需求到研发到开发到上线到产品迭代全过程
- 炒了8年的概念,到底该如何理解DevOps这个词?
- Java基础学习总结(49)——Excel导入导出工具类
- python特性描述_详解 Python 最优雅的特性之一 — 描述符
- java读取文件buffered_关于Java中使用BufferedReader读取文件的疑惑
- 不规则图形数格子的方法_北师大版五年级数学上册数学6.1组合图形的面积微课堂、同步练习、图文解读...
- 2021年衡阳仁爱中学高考成绩查询,南岳衡阳蒸湘仁爱中学简介
- su自带模型库怎么打开_SU超强外挂!建筑模型一键生成,还能任意编辑