问题排查:同样的请求,Jmeter报错失败,Postman却没有问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问题排查:同样的请求,Jmeter报错失败,Postman却没有问题相关的知识,希望对你有一定的参考价值。

参考技术A 这是个坑啊~

准备用Jmeter做压力测试,实现把单个接口的相关参数在Postman里面调试通过,然后搬运到Jmeter上面来,先跑一次看是否通过。

诡异的事情出现了:居然不行!

仔仔细细的比对了两个工具里该请求的相关参数:

可以说是一模一样了!

由于Jmeter的header是单独用HTTP Header Manager来管理的,因此还特意检查了它的作用域(和HTTP request平级或者是其子级,可以被使用到),也是OK的。

无意中禁用了HTTP Header Manager,然后再请求,居然这次jmeter请求成功了!

由于这个请求的header里面参数较少,只有Content-Type,所以推测是和它有关系。

检查了jmeter中,这次请求成功的request数据,发现有这么一行: Content-Type: multipart/form-data; boundary=wVDFbKOrJUSR6pzaJkPhlIWnwLcdmKHHV9 ,也就是说,好像自动加上了Content-Type。仔细想想,在body里面是有勾选```Use multipart/form-data``的,所以应该和这项配置有关。

所以这么说,我在header里面再写一遍反而是冗余的?于是尝试把postman里这一项也给删掉,同样也能请求成功。

那么加上它,request数据会有什么不同吗?检查后发现有这么一行: Content-Type: multipart/form-data 和上面的相比缺少了boundary。虽然不知道为什么这一点点区别就会导致jmeter请求失败,总算是把问题给解决了。

个人猜测,可能不同工具对待冗余参数的处理方式不同,所以postman是可以兼容的,而jmeter不行。

以上是关于问题排查:同样的请求,Jmeter报错失败,Postman却没有问题的主要内容,如果未能解决你的问题,请参考以下文章

jmeter获取token并请求失败Internal authentication failed 400

Jmeter-java请求执行报错:java.lang.NoSuchFieldError: INSTANCE

JMeter接口测试报错,反馈和postman不一样

jmeter跑http请求报错:java.net.ConnectException: Connection timed out: connect

10_jmeter压测时jmeter报错socket closed

jmeter.bat启动出错的问题解决了吗,我也碰到了同样的问题。JDK的环境变量都是设置好了的。就是报错