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请求方式把转换、拼接后的字符串放在了请求体里,不会在浏览器的地址栏显示,因而更安全一些。
  • raw
    可以上传任意格式的文本类型数据,文本不做任何修饰传到服务端,可以上传txtJavaScriptjsonxmlhtml等格式的数据。
    其实主要的还是传递json格式的数据,当后端要求json数据格式的时候,就要使用此种格式来测试。
  • binary
    相当于Content-Type:application/octet-stream,只可以上传二级制数据,通常用来上传文件,但一次只能上传一个文件

2、用于演示的项目说明

Httpbin是一个使用Python + Flask编写的HTTP Request & Response Service项目,该服务主要用于测试 HTTP库,你可以向他发送请求,然后他会按照指定的规则将你的请求返回(查看你所发送请求中的信息)。

Httpbin支持HTTP/HTTPS请求,支持所有的HTTP动词,能测试HTTP请求和响应的各种信息,比如 cookieipheaders 和登录验证等。

Httpbin接口地址:httpbin.org

提示:按照规则请求http://httpbin.org/,会返回发送请求报文的完整内容。

具体可查看https://www.cnblogs.com/liuyuelinfighting/p/14788860.html文章,有详细说明。

3、发送Post请求示例

(1)测试计划内包含的元件

元件操作步骤

  1. 创建测试计划。
  2. 创建线程组:选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组
  3. 在线程组里面,添加取样器“HTTP请求”组件:选中“线程组”右键 —> 添加 —> 取样器 —> HTTP请求
  4. 在线程组里面,添加监听器“察看结果树”组件:查看结果,选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树

最终测试计划中的元件如下:

点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。

(2)请求参数类型为x-www-form-urlencoded

x-www-form-urlencoded格式数据是Post请求的默认数据格式。

在JMeter界面中的参数选项页直接添加参数,发送Post请求的时候,就发送的是x-www-form-urlencoded格式的数据。

我们请求发送后,我们在察看结果树中查看请求头和请求体中的数据。

请求头:我们可以看到下图中,请求的Content-Typeapplication/x-www-form-urlencoded

请求体:我们可以看到请求体中的参数格式。

当然我们也可以使用Fiddler工具进行查看,整体效果更直观一些,如下图:

4、请求参数form-data格式数据

发送form-data格式的参数,只比发送x-www-form-urlencoded格式的参数多一步,就是勾选上对POST使用multipart/form-data选项。

如下图:

请求发送后,在察看结果树中查看请求头和请求体中的数据。

请求头:我们可以看到下图中,请求的Content-Typemultipart/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请求相关推荐

  1. Jmeter发送get请求

    Jmeter发送get请求: 添加线程组**:**先添加线程组-添加HTTP请求 **paramters:**参数的地方 bodydata json xml 监听器-–添加一个查看结果树

  2. Jmeter使用篇(五) : Jmeter发送post_json请求

    一.jmeter发送post_json请求 例: 接口业务: http://123.58.251.183:8080/goods/json 参数 {"loginname":abc,& ...

  3. 2022全网最全最细的jmeter接口测试教程以及接口测试流程详解— 使用JMeter发送一个请求

    当我们第一次打开JMeter的时候,树形标签栏中只有一个"测试计划". 如果想要发送一个请求,需要操作如下步骤:(最基础的一个请求) 步骤1:创建一个测试计划 打开JMeter会默 ...

  4. jmeter发送java请求-Mysql插入操作

    代码编写粗糙,仅提供思路 一.运行效果 二.原理解释 操作环境:jmeter5.4 实现jmeter扩展需要的依赖包 jmeter\apache-jmeter-5.4\lib目录下:jorphan.j ...

  5. jmeter测试TCP服务器/模拟发送TCP请求

    jmeter测试TCP服务器,使用TCP采样器模拟发送TCP请求. TCP采样器:打开一个到指定服务器的TCP / IP连接,然后发送指定文本并等待响应. jmeter模拟发送TCP请求的方法: 1. ...

  6. jmeter模拟http请求/发送gzip数据

    jmeter中get请求gzip数据的方法: 在jmeter线程组中添加"http信息头管理器",并添加名称:Accept-Encoding值: gzip,deflate 注:HT ...

  7. JMeter 入门脚本以发送百度请求为例

    1. 打开JMeter 就会有一个默认的Test Plan(测试计划) 2. 添加线程组 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信 ...

  8. jmeter安全证书_HTTPS证书生成及Jmeter中发送HTTPS请求

    HTTPS证书生成 在Jmeter中发送HTTPS协议请求,需要有SSL证书支持,而对于一个已知网站我们是可以自己生成该网站的SSL证书,并运用到Jmeter中,使Jmeter能发送HTTPS请求成功 ...

  9. JMeter的PUT请求,响应结果中文出现乱码的解决方法

    一.发现问题 1.接口的方法是PUT请求,Body Data传的"name"和"description"参数是中文的,编码格式也填了"UTF-8&qu ...

最新文章

  1. iOS开发 - 线程与进程的认识与理解
  2. 【企业管理】组织与管理的思考
  3. 【阿里妈妈数据科学系列】第三篇:离线抽样框架下的AB Test
  4. leetcode53. 最大子数组和(暴力+贪心)
  5. 关于编写流程的一些经验
  6. 外连接就是允许不满足条件的字段查询出来
  7. 编译3.0的linux内核,Ubuntu 编译 Linux 3.0-rc4 内核
  8. mysql 游标中实现递归_mysql中实现递归查询?
  9. 服务器系统bios,服务器bios下查看系统配置
  10. 8.11 Matching Networks 匹配网络
  11. Github操作指南
  12. 一个按照行来截取显示文章摘要的函数
  13. maven 打包父工程_maven 父子工程打包 并且上传linux服务器
  14. 计算机操作系统存字体在哪里,Windows操作系统的字体在哪个文件夹,如何添加字体文件...
  15. STM32单片机开发实例 基于STM32单片机的温室大棚监测系统
  16. 外贸找客户软件:Email Extractor v7.2
  17. 使用Idea 进行合并代码分支(例如:从dev合并到test)
  18. TunesKit Spotify Converter Mac(Spotify音乐转换工具) v1.5.1激活版
  19. 国际标准刊号,国内统一刊号,刊号的标准格式 分类
  20. 为什么王者荣耀总是服务器中断,王者荣耀服务器正在维护中怎么回事 7月4日王者荣耀进不去怎么办...

热门文章

  1. VMware vSAN 7.0 发行说明
  2. Kubernetes学习总结(4)——Kubernetes v1.20 重磅发布 | 新版本核心主题 主要变化解读
  3. Maven学习总结(38)——Maven下载失败文件夹批量删除问题的两种解决方法
  4. Java Web学习总结(28)——Java Web项目MVC开源框架SSH和SSM比较
  5. Git学习总结(11)——Git撤销操作详解
  6. 基 于 svm 的 图 像 分 类_CeO2和MgO助烧剂对矾土基莫来石合成料烧结的影响
  7. 一篇文章带你熟悉 TCP/IP 协议-(三)
  8. 【转】Log4Net五步走
  9. 新浪微博MySQL优化的小结和反思 | 数据库专题02
  10. 游侠原创:手机电子商务与社交隐私--网络安全的下一个关注点