Jmeter:HTTP请求中的content-type(补充篇)

上一篇介绍了content-type中的multipart/form-data,本篇简单介绍一下content-type中的另外两种格式:

  • 支持key-value数据格式的application/x-www-form-urlencoded
  • 支持json数据格式的application/json

一、application/x-www-form-urlencoded

原生的form表单提交方式,参数形式为key-value的键值对,若有多对数据,以&分割。例如,下面是从浏览器中抓到的某接口的payload数据:

requestHash=7d5aa48c-7435-4aae-9033-0d8e08f2d277&code=testing123

1、Header处理

HTTP Header Manager中指定content-type为application/x-www-form-urlencoded

2、Payload处理

这类参数,直接拷贝以上字符串,在jmeter中的参数(Parameters)部分,点击Add from Clipboard即可添加进去。

二、application/json

请求以json格式提交参数。

{

 "key1":"value1",

 "key2":"value2",

 "key3":value2

}

1、Header处理

HTTP Header Manager中指定content-type为application/json

2、Payload处理

这类参数,直接拷贝json字符串,粘贴在jmeter中的Body Data部分即可。

小结

这两种数据格式虽然简单,但是对于初学者来说,也比较容易出错,需要注意:

1、每种格式的传参方式是固定的,不可出错。

key-value形式的参数,如果粘贴到jmeter中的Body Data中,不会有语法错误。请求可以发送,甚至还可以拿到响应,其中的断言(比如code)也正确,乍一看似乎该脚本已经完成了。

然而,仔细对比响应数据可能会发现,不论你的请求中的参数如何变化,响应数据都一样。这是因为传参方式错误,服务器端接收到参数后无法正确解析,于是每次都使用默认参数来响应。

这类问题很难被发现,很可能导致测试中一直在执行无效的脚本,尤其性能测试中,因参数未按照测试设计而变化,导致不能发现性能问题。

2、两种格式的传参方式互斥,每个请求只能二选其一。

  • 41
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值