该测试接口传参中含有 list 对象,见下图
提交请求后报错,报错内容如下:
,需要确认的是针对这种参数形式,jmeter 中有没有什么特殊的配置操作,在 postman 中配置该接口请求参数后报的也是同样的错误
ps:使用自己写的自动化测试脚本运行是没有问题的,如下图:
另外目前使用 jmeter 工具主要是为了做接口性能测试
希望有知道的大神可以解答下,非常感谢!
建议看看 https://testerhome.com/topics/587
你的这个问题信息量太少,大家都无法回答。
{a:12345,b:12345,{c:123456,d:1234567}}楼主你这是 dict 好不啦
既然传的是 json 串,,你把它转义一下再传呢,看你接口测试里面不是转义过的么?
为啥不用 body data? 把 json 放里面就好了
试过了,也是不行,现在通过运行自动化脚本后在 fiddler 上进行抓包,然后查看请求的 text 内容,请求内容如下:
直接复制到 jmeter 的 body 里面就可以请求成功了,不知道是不是因为参数里面有中文的原因,但是 jmeter 里面我之前也是设置了 utf-8 的模式的
勾选编码试试
你看下接口文档 Header 里面有什么需要设置的,看 fiddler 抓出来的包 应该是 Content-Type = multipart/form-data
在 JMeter - HTTP Request Path 下面 有个 checkbox Use-multipart/form-data for POST
把 你的 json 放 Body Data 里
再试试吧
fiddler 抓出来的包显示的是这个,不是 Content-Type = multipart/form-data,刚用你的方法试了下,还是不行
postdata 里面的内容好像不对了
那可能是我想错了。根据楼上有人说的 parameter tab 下面参数右边 有 编码的 checkbox 可以勾上试试。。
要是后面解决了,别忘了说下怎么解决的啊
你在 jmeter 里也加上代理服务器,连到 fiddler ,对比看下客户端的请求和你用 jmeter 发出的请求有什么不同?
从你的截图里看,实际发送的数据做了很多转义(比如空格变成了 + 号),这类转义看起来是 url 的转义,正常 body 里面是不会做这些转义的,所以 jmeter 不会帮你做这个转义。你需要确定下是不是你们这个参数里面约定了必须做这个转义。