最近经常接触有测试人员脚本在jmeter4.0运行失败,返回Response code: 400,HTTP返回400,官方解释是”Bad Request 客户端请求的语法错误,服务器无法理解”,在jmeter5.1执行正常,这里本文记录下解决方法
一、jmeter4.0执行结果如下
代码语言:javascript复制1. 请求如下
代码语言:javascript复制2. 响应数据如下
二、jmeter5.1执行结果如下
代码语言:javascript复制1. 请求Request Body
代码语言:javascript复制2. 请求Request Headers
代码语言:javascript复制3. 响应数据Response Body
代码语言:javascript复制4. 响应数据Response headers
代码语言:javascript复制5. 响应数据Response headers
三、问题分析
代码语言:javascript复制1. 脚本如下,看脚本可以得出脚本没有申明HTTP信息头管理器,所以系统调用的默认请求表头
代码语言:javascript复制2. 经过对比jmeter4.0和jmeter5.1请求表头差异,可以看出他们的请求默认表头不一样,Jmeter5.1 HTTP接口 默认Content-Type类型为text/plain; Jmeter4.0 HTTP接口默认Content-Type类型为application/x-www-form-urlencoded,由于性能测试脚本HTTP接口表头类型就是text/plain,所以执行成功
代码语言:javascript复制3. 所以我们只需要在脚本中自己添加一个信息头管理器,然后申明为text/plain就行,右键测试计划》添加》配置元件》HTTP信息头管理器
代码语言:javascript复制4. 在信息头管理器,添加Content-Type=text/plain
代码语言:javascript复制5. 点击执行按钮,执行成功