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. alv+checkbox+select all
  2. 也来看看Android的ART运行时
  3. 跟别人借钱,你遇到过什么奇葩的借口?
  4. 前端基础之BOM和DOM
  5. java datainputstream_Java中DataInputStream的用法
  6. VUE 学习代码理解(1~5课时代码)
  7. 通达信公式大全_通达信选股器公式大全:抓牛股、抓妖股、找龙头,一应俱全...
  8. Apicloud+Vue开发App专题
  9. 基于推特数据挖掘交通事件的城市交通流深度学习预测模型
  10. 赵雯北京大学计算机动画系,北京大学艺术类、设计类考研辅导课程
  11. Android生物识别
  12. Linux 设备模型基本概念 (一)
  13. JDP-[单例模式]-思路梳理
  14. Gradle下载spring包出现Received status code 401 from server: Unauthorized
  15. 机器人涂装工程师岗位英文缩写_公司里各职位名称的英文缩写
  16. python求平均值的怎么编写,python 怎么求平均值
  17. UPS电池容量检测方法
  18. Hyperledger/cello实际测试——SDK
  19. jpa、mybatis、hibernate、spring data jpa区别
  20. PMI-ACP练习题(9)

热门文章

  1. 在 vCenter Server 中触发了 vSphere Distributed Switch 绑定警报 (2057667)
  2. 调查VMware View Composer失败代码(2085204)
  3. App后台开发运维和架构实践学习总结(5)——App产品从需求到研发到开发到上线到产品迭代全过程
  4. 炒了8年的概念,到底该如何理解DevOps这个词?
  5. Java基础学习总结(49)——Excel导入导出工具类
  6. python特性描述_详解 Python 最优雅的特性之一 — 描述符
  7. java读取文件buffered_关于Java中使用BufferedReader读取文件的疑惑
  8. 不规则图形数格子的方法_北师大版五年级数学上册数学6.1组合图形的面积微课堂、同步练习、图文解读...
  9. 2021年衡阳仁爱中学高考成绩查询,南岳衡阳蒸湘仁爱中学简介
  10. su自带模型库怎么打开_SU超强外挂!建筑模型一键生成,还能任意编辑