使用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. Laravel图表扩展包推荐:Charts

     2016年11月15日 ·  2283次 ·  4条 ·  laravel,package,charts 介绍 在项目开发中,创建图表通常是一件痛苦的事情.因为你必须将数据转换为图表库支持的格式传输 ...

  2. Laravel 5 如何对部份 URI 禁用 CSRF 验证

    打开中间件 VerifyCsrfToken.php 在其 $except 属性中添加要禁用的 uri,如: api/user/add api/user/* api/*

  3. Java中通过SimpleDateFormat格式化当前时间:/** 输出格式:20060101010101001**/

    import java.util.*; import java.text.SimpleDateFormat; int y,m,d,h,mi,s,ms; String cur; Calendar cal ...

  4. Java 8 Optional 类深度解析

    Java 8 Optional 类深度解析 身为一名Java程序员,大家可能都有这样的经历:调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法.我们首先要判断这个返回值是否为null,只 ...

  5. 从一个流中读数据--fread

    头文件:#include<stdio.h> 函数原型:int fread(void *ptr,int size,int nitems,FILE *stream); 参数说明: ptr:用于 ...

  6. Cygwin工具的简单使用

    简介 从使用角度来看:Cygwin就是一个windows软件,该软件就是在windows上仿真linux操作系统.简言之,cygwin是一个在windows平台上运行的 linux模拟环境,使用一个D ...

  7. 【转】Paxos算法3-实现探讨

    ——转自:{老码农的专栏} 前两篇Paxos算法的讨论,让我们对paxos算法的理论形成过程有了大概的了解,但距离其成为一个可执行的算法程序还有很长的路要走,原因是很多的细节和错误未被考虑.Googl ...

  8. CodeForces 611C New Year and Domino (动态规划,DP)

    题意:给定一个h*w的网格,里面只有.和#,.表示空的,#表示禁止的,然后有q个询问,询问中给你两个坐标,分别是左上和右下,求在这两者中间的有多少种(竖着和横着)两个相邻的点. 析:一看到这个题目,肯 ...

  9. POJ 2376 Cleaning Shifts (贪心,区间覆盖)

    题意:给定1-m的区间,然后给定n个小区间,用最少的小区间去覆盖1-m的区间,覆盖不了,输出-1. 析:一看就知道是贪心算法的区间覆盖,主要贪心策略是把左端点排序,如果左端点大于1无解,然后, 忽略小 ...

  10. vivado用法

    声明为”DEBUG”,即使没有连接到其他模块,也不会被优化掉.但并不是所有的信号都是在声明为“debug”属性之后就不会优化掉. (2)同一个bank中能设置一个电平. (3)