使用Jmeter测试时,很多人不知道请求参数Parameters 、Body Data的区别和用途,这里简单介绍下

先了解一个接口的基本概念

在客户机和服务器之间进行请求-响应时,HTTP协议中包括GET和POST两种基本的请求方法,概念上两者的区别是:

get:从指定的资源请求数据。
post:向指定的资源提交要被处理的数据
最直观的表现就是:

GET把参数包含在URL中,POST通过request body传递参数将请求整体提交给服务器。所以接口测试时要区分两种方法对待。

Jmeter中包含Parameters和Body Data两种参数化的方式,区别是什么呢?

使用Parameters时,Content-Type不传,或者直接传application/x-www-from-urlencoded,若传application/json出错。
使用Body Data时,Content-Type可传application/x-www-from-urlencoded或application/json,两者的区别是数据格式不同。
可以从post data中看出区别:

Parameters的request请求数据:

body data的请求数据:

所以Jmeter的Parameters和Body Data两种参数化方式,具体应该怎么使用呢?

一般来说,Get请求用Parameters,Post请求用Body Data。

精确的对于Post的说法是:

普通的post请求和上传接口,选择Parameters。
json和xml点数据格式请求接口,选择Body。
详细来解释,根据post请求数据的格式,分两种情况:map格式、json格式。

post请求数据为map格式
当post请求数据为map格式,即参数名、参数值为key-value键值对,请求的参数添加在Parameters参数表中即可,如下图:

post请求数据为json格式   
目前阶段比较流行的是json格式传递参数,使用jmeter时,将json格式的请求数据加入到http请求BodyData中,如下图:

另外,由于POST请求方式,如果不设置Headers的content-type,基本默认会以 application/x-www-form-urlencoded 方式提交数据。为了Post请求确保传的是json格式,还需要在请求头中声明一下请求参数的格式为json,具体操作如下:

Thread Group右键Add》Config Element》HTTP Header Manager,打开HTTP信息头管理器,Add一个Name为Content-Type,Value为application/json,如下图,一个json格式的post请求完成了

JMeter基础:请求参数Parameters 、Body Data的区别的更多相关文章

  1. Axios发送请求时params和data的区别

    在使用axios时,注意到配置选项中包含params和data两者,以为他们是相同的,实则不然. 因为params是添加到url的请求字符串中的,用于get请求. 而data是添加到请求体(body) ...

  2. 发送请求时params和data的区别

    在使用axios时,注意到配置选项中包含params和data两者,以为他们是相同的,实则不然. 因为params是添加到url的请求字符串中的,用于get请求. 而data是添加到请求体(body) ...

  3. jmeter对请求参数的签名处理

    1.首先在本地写好签名的算法,本文采用RSA签名. public final class Base64 { static private final int BASELENGTH = 128; sta ...

  4. 性能测试工具 Jmeter GET 请求 参数为 Json 串且参数中存在变量的转化

    2.在BeanShell PreProcessor的实现:

  5. [jmeter] : http采样器 Parameters、Body Data使用区别

    一.使用Jmeter进行接口测试,Headers和请求参数Parameters .Body Data 的联系 1.使用Parameters时,Content-Type 不传默认值为:applicati ...

  6. VUE-005-axios常用请求参数设置方法

    在前后端分离的开发过程中,经常使用 axios 进行后端接口的访问. 个人习惯常用的请求参数设置方法如下所示: // POST方法:data在请求体中 addRow(data) { return th ...

  7. node.js获取请求参数的方法和文件上传

    var http=require('http') var url=require('url') var qs=require('querystring') http.createServer(onRe ...

  8. 【Jmeter】参数Parameters和Body Data

    在做接口并发测试的时候,才发现Jmeter中的Parameters和Body Data两种参数格式并不是简单的一个是xx=xx,另外一个是json格式的参数 先看一个接口 [post] /api/xx ...

  9. http 请求参数之Query String Parameters、Form Data、Request Payload

    Query String Parameters 当发起一次GET请求时,参数会以url string的形式进行传递.即?后的字符串则为其请求参数,并以&作为分隔符. 如下http请求报文头: ...

随机推荐

  1. maven使用感受

    第一次接触的时候,什么都不懂,感觉好复杂. 后来系统地看了一个使用教程: 简单评价一下: 自动帮我们下载jar架包,还有就是可以执行命令自己部署到远程服务器上面去. 缺点: 学习成本.一般人不了解.第 ...

  2. java日期正则表达式精准校验

      function checkDate(obj) {       var date=obj.value;     var re = new RegExp("(([0-9]{3}[1-9]| ...

  3. Hibernate中常见的异常处理

    本文引自:http://www.blogjava.net/sy1214520/archive/2008/10/21/235667.html 本文总结Hibernate中常见的异常. 1. net.sf ...

  4. 【转】Hibernate的getSQLQuery方法对char类型的解析问题

    [转]Hibernate的getSQLQuery方法对char类型的解析问题 建立数据库: create table T_TEST1( id char (32), name varchar (255) ...

  5. ubuntu 'yuan' update

    #  tsinghua  university deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiv ...

  6. 在命令提示符(cmd)下怎样复制粘贴

      我们把鼠标放在面板的上方,右击,界面显示如下:   我们选择“属性”,单击,界面显示如下:   我们点选“快速编辑模式”,再点击“确定”,这样设置就完成了,界面显示如下:   我们在面板中随意选择 ...

  7. 2018.07.10NOIP模拟 Draw(容斥原理)

    Draw 题目背景 SOURCE:NOIP2016-RZZ-4 T3 题目描述 给定笛卡尔坐标系上 n 个不重复的点. 定义一个 L 形为: 一个形如 (x,y),(x+1,y)-(x+a,y),(x ...

  8. Django入门与实践-第23章:分页实现(完结)

    http://127.0.0.1:8000/boards/1/ #从现在起,我们将在 board_topics 这个视图中来操作. python manage.py shell from django ...

  9. ArcGIS Desktop Python add-ins 共享和安装插件

    1)   共享和安装插件 共享Python插件的关键是.esriaddin文件;为了获取该插件功能,其他用户只要在本机执行安装操作或通过网络引用该插件就可以. ArcGIS插件安装工具 当用户双击一个 ...

  10. linux 各项配置汇总

    DNS配置 linux动态地址无需配置DNSlinux配置静态地址时,需要重新设置DNS,DNS的地址为:自己所用网络商的DNS地址,其中DNS地址还分区域例如:电信 江苏南京dns:218.2.13 ...