使用jmeter5.1版本进行post请求失败,但是低版本jmeter3.0和jmeter4.0就正常?

使用jmeter5.1版本进行post请求失败,但是低版本jmeter3.0和jmeter4.0就正常?

今天进行接口自动化测试时,发现同一个脚本,使用 jmeter5.1.1版本时发送post请求,一直失败,但是使用jmeter3.0,jemeter4.0时就正常,

分析过程

1.首先,使用不同的版本运行了下同一个脚本。
发现低版本jmeter3.0和jmeter4.0运行是OK的,就在jmeter5.1版本运行一直失败,错误信息为“JSON parse input message error”!
(初步定位,应该是参数的格式问题)
使用jmeter5.1版本进行post请求失败,但是低版本jmeter3.0和jmeter4.0就正常?_第1张图片
2.使用postman工具单独请求了下接口,发现请求是成功的,这确定了接口是正常的,应该是请求方式或者某些设置的问题。
使用jmeter5.1版本进行post请求失败,但是低版本jmeter3.0和jmeter4.0就正常?_第2张图片
3.检查了使用postman请求时的设置信息,和jmeter进行对比检测。
发现请求头的信息不一致,有可能是请求头的设置问题。
使用jmeter5.1版本进行post请求失败,但是低版本jmeter3.0和jmeter4.0就正常?_第3张图片
4.将jmeter的http请求中添加一个“HTTP信息头管理器”,修改请求头的设置信息。
(如图设置后,请求成功)
使用jmeter5.1版本进行post请求失败,但是低版本jmeter3.0和jmeter4.0就正常?_第4张图片

总结:

  • 问题原因:
    请求信息格式设置错误引起的。由于该接口并不支持json格式,所以将Conten-Type的值设置为“application/json”时就会出错。
  • 解决方法:
    1.确定接口请求信息的格式,检查请求的各项设置;
    2.文中问题的解决方式是将Conten-Type的值设置为“application/x-www-form-urlencoded;”即可。
  • 想了解content-type的详解可以参考: http://tool.oschina.net/commons

你可能感兴趣的:(积累)