JMeter基础:请求参数Parameters Body Data的区别
Posted ojbk6943
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMeter基础:请求参数Parameters Body Data的区别相关的知识,希望对你有一定的参考价值。
Jmeter中包含Parameters和Body Data两种参数化的方式,区别是什么呢?
使用Parameters时,不能传json格式的参数,Content-Type可以不用设置,默认会以 application/x-www-form-urlencoded 方式提交数据,或者直接设置为application/x-www-from-urlencoded,就是不能设置为application/json,会出错。
使用Body Data时,可以传json格式的参数或urlencoded参数,Content-Type必须设置,可以传application/x-www-from-urlencoded或application/json,两者的区别是数据格式不同。如果要传json格式的参数,就要在当前线程组下添加配置原件-http信息头管理器,添加Content-Type为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的区别的主要内容,如果未能解决你的问题,请参考以下文章