如何使用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 ...
最新文章
- iOS开发 - 线程与进程的认识与理解
- 【企业管理】组织与管理的思考
- 【阿里妈妈数据科学系列】第三篇:离线抽样框架下的AB Test
- leetcode53. 最大子数组和(暴力+贪心)
- 关于编写流程的一些经验
- 外连接就是允许不满足条件的字段查询出来
- 编译3.0的linux内核,Ubuntu 编译 Linux 3.0-rc4 内核
- mysql 游标中实现递归_mysql中实现递归查询?
- 服务器系统bios,服务器bios下查看系统配置
- 8.11 Matching Networks 匹配网络
- Github操作指南
- 一个按照行来截取显示文章摘要的函数
- maven 打包父工程_maven 父子工程打包 并且上传linux服务器
- 计算机操作系统存字体在哪里,Windows操作系统的字体在哪个文件夹,如何添加字体文件...
- STM32单片机开发实例 基于STM32单片机的温室大棚监测系统
- 外贸找客户软件:Email Extractor v7.2
- 使用Idea 进行合并代码分支(例如:从dev合并到test)
- TunesKit Spotify Converter Mac(Spotify音乐转换工具) v1.5.1激活版
- 国际标准刊号,国内统一刊号,刊号的标准格式 分类
- 为什么王者荣耀总是服务器中断,王者荣耀服务器正在维护中怎么回事 7月4日王者荣耀进不去怎么办...
热门文章
- VMware vSAN 7.0 发行说明
- Kubernetes学习总结(4)——Kubernetes v1.20 重磅发布 | 新版本核心主题 主要变化解读
- Maven学习总结(38)——Maven下载失败文件夹批量删除问题的两种解决方法
- Java Web学习总结(28)——Java Web项目MVC开源框架SSH和SSM比较
- Git学习总结(11)——Git撤销操作详解
- 基 于 svm 的 图 像 分 类_CeO2和MgO助烧剂对矾土基莫来石合成料烧结的影响
- 一篇文章带你熟悉 TCP/IP 协议-(三)
- 【转】Log4Net五步走
- 新浪微博MySQL优化的小结和反思 | 数据库专题02
- 游侠原创:手机电子商务与社交隐私--网络安全的下一个关注点