接口测试 (已解决) jmeter bodydata 传送的参数,在请求中显示为空,求解

· March 29, 2016 · Last by mbsunflower replied at March 04, 2019 · 7781 hits

测试新手,刚刚接触 jmeter , bodydata 传送的参数,在请求中显示为空,求解,问题如图:

  1. http 请求 如图:

2.运行后-查看结果树,参数列为空,如图:

3.已添加-http信息头,如图:

求解结果中为什么为空,有的朋友说可能是 bodydata 里的数据不是 json数据,但自己不清楚如何转化成json。。。

共收到 19 条回复 时间 点赞

raw能看到完整的请求报文吗?响应数据正常吗?

POST请求啊亲

post请求,get请求不带参数

#4 · March 30, 2016 作者

#1楼 @leonyao2007
回复的数据是正常的,如图:

但是请求没有传参,所以回复的数据是所有数据。

#5 · March 30, 2016 作者

#2楼 @jennyhui
接口文档 给的是 get 请求,get请求应该也有传参的,是不是我传参的方式不正确。。

#6 · March 30, 2016 作者

#3楼 @kesha0
接口文档 给的是 get 请求,get请求应该也有传参的:例如:筛选特定条件的数据

请求的如果是json的格式的话,放到body data,不然请求的话,会出现请求参数为空的情况,看你的不是json请求吧
可以把参数放到parameters,即可,而且body data和parameters只能存在一个,不能同时存在请求数据

#8 · March 30, 2016 作者

#7楼 @allanwendy
谢谢,已尝试,可以传参并且能够得到想要的数据了,如图:

但是,能不能在body data里面传参,例如:
{
"page":1,
"pageSize":10,
"timestamp":1,
"leagueType":'singles',
}
如何才能转换成 json格式(自己使用网上的json格式转换器转换不行,是不是需要编写代码。。),能不能举例说明,因为有的时候需要传些数组参数,如果能在 bodydata里面传参的话会方便很多。。

json的请求,JM需要设置特别的json格式才行,不然会出现你上面的问题。网上有很多,你可以百度一下哈

#10 · March 30, 2016 作者

#9楼 @allanwendy
百度得到的资料,都是设置请求头,content-Type:application/json ;但我已设置该请求头,应该是你说的bodydata里面的数据不是json格式,但不清楚该如何转化成json格式(网上也没有找到好的资料),求教。。

#8楼 @xiuqi
json 最后一行参数,去掉逗号,用双引号
在线JSON校验格式化工具

#12 · March 30, 2016 作者

#11楼 @sanlengjingvv
按照你的说法调整后并校验通过,粘贴到bodydata,如图:


但是,请求中依然没有 参数显示,相应数据依然显示全部,如图:


那就不是json格式的问题了,这该如何解呢?(试过更改 编码方式 、请求协议类型 都没有成功 )

察看结果树-请求-raw 里是什么内容

#14 · March 30, 2016 作者

#13楼 @sanlengjingvv
raw里的内容:

如果将 参数传到 parameter 里,raw 如下图:

翻了下 httpclient4 的文档,HttpGet 没有 .setEntity 的方法,java 那个 implementation 不知道是什么库

试试用 curl 发一个带 body 的 GET 到服务器,看下服务器日志,接收到的请求有没有 body,客户端有没有收到对应的数据

#16 · March 31, 2016 作者

#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

#18 · March 31, 2016 作者

#17楼 @sanlengjingvv
谢谢 回复,我的问题解决了,感谢学到很多东西,手动点赞!

回复

你好,我也遇到了这个问题,我想请问一下,你是怎么解决的

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up