测试新手,刚刚接触 jmeter , bodydata 传送的参数,在请求中显示为空,求解,问题如图:
2.运行后 - 查看结果树,参数列为空,如图:
3.已添加-http 信息头,如图:
求解结果中为什么为空,有的朋友说可能是 bodydata 里的数据不是 json 数据,但自己不清楚如何转化成 json。。。
raw 能看到完整的请求报文吗?响应数据正常吗?
POST 请求啊亲
post 请求,get 请求不带参数
#1 楼 @leonyao2007
回复的数据是正常的,如图:
但是请求没有传参,所以回复的数据是所有数据。
请求的如果是 json 的格式的话,放到 body data,不然请求的话,会出现请求参数为空的情况,看你的不是 json 请求吧
可以把参数放到 parameters,即可,而且 body data 和 parameters 只能存在一个,不能同时存在请求数据
#7 楼 @allanwendy
谢谢,已尝试,可以传参并且能够得到想要的数据了,如图:
但是,能不能在 body data 里面传参,例如:
{
"page":1,
"pageSize":10,
"timestamp":1,
"leagueType":'singles',
}
如何才能转换成 json 格式(自己使用网上的 json 格式转换器转换不行,是不是需要编写代码。。),能不能举例说明,因为有的时候需要传些数组参数,如果能在 bodydata 里面传参的话会方便很多。。
json 的请求,JM 需要设置特别的 json 格式才行,不然会出现你上面的问题。网上有很多,你可以百度一下哈
#9 楼 @allanwendy
百度得到的资料,都是设置请求头,content-Type:application/json ;但我已设置该请求头,应该是你说的 bodydata 里面的数据不是 json 格式,但不清楚该如何转化成 json 格式(网上也没有找到好的资料),求教。。
#8 楼 @xiuqi
json 最后一行参数,去掉逗号,用双引号
在线 JSON 校验格式化工具
#11 楼 @sanlengjingvv
按照你的说法调整后并校验通过,粘贴到 bodydata,如图:
但是,请求中依然没有 参数显示,相应数据依然显示全部,如图:
那就不是 json 格式的问题了,这该如何解呢?(试过更改 编码方式 、请求协议类型 都没有成功 )
察看结果树 - 请求-raw 里是什么内容
#13 楼 @sanlengjingvv
raw 里的内容:
如果将 参数传到 parameter 里,raw 如下图:
翻了下 httpclient4 的文档,HttpGet 没有 .setEntity 的方法,java 那个 implementation 不知道是什么库
试试用 curl 发一个带 body 的 GET 到服务器,看下服务器日志,接收到的请求有没有 body,客户端有没有收到对应的数据
#15 楼 @sanlengjingvv
没有使用 curl 使用的 postman 发送的 get 请求,如图:
后台服务器日志现在看不到,看了下 debug 显示如图:
我先看看 curl 的资料。。
GET /index.html HTTP/1.1
Host: www.example.com
1234
比如 http 报文是这样的,被空行分成上下两部分,下边是 body
url 后接的 ?a=1&b=2 这部分一般叫 query string,而不是 body
1、如果服务器不能正确响应带 body 的请求,只能正确响应 query string 形式的请求,而文档上用的是 body,那应该改文档
2、Jmeter http sample 的 httpclient implementation 应该是不支持 get 方法带 body 的
3、postman get 方法也不能带 body,你图上还是用的 query string
#17 楼 @sanlengjingvv
谢谢 回复,我的问题解决了,感谢学到很多东西,手动点赞!