You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Robot Framework中POST请求返回HTTP 400 Bad Request错误

问题排查方案

一、当前测试用例存在的明显错误

  • 授权头变量校验问题:你代码中使用Authorization=${tpre} ${token}构造授权头,需先确认${tpre}变量是否已正确赋值为Bearer,若该变量未定义或值错误,会直接导致授权校验失败返回400。
  • 请求参数缺失:对比Postman导出的Python代码,正式请求URL携带了必填查询参数?format=json,但你的Robot Framework用例中调用post on session请求/orders接口时未传递该参数,是400错误的高频诱因。
  • Cookie传参格式错误:你将Cookie字段直接写在请求头字典中不符合RequestsLibrary的传参规则,Post On Session关键字有独立的cookies参数用来传递Cookie值,不要混入headers中。
  • 请求体序列化错误:你通过get file读取的API/data.txt如果是原生JSON字符串,直接传给json=${body}会触发二次序列化,导致请求体格式异常。正确做法是将读取到的JSON字符串转成字典后再传给json参数,或是直接传给data参数。

二、HOST请求头添加方法

  • Robot Framework(RequestsLibrary):直接在构造header字典时添加Host键值对即可,示例:
${header}=  create dictionary  Host=domain:10001  Authorization=${tpre} ${token}  Content-Type=application/json
  • Python requests:同样直接在headers字典中新增Host字段即可,示例:
headers = {
  'Host': 'domain:10001',
  'Authorization': 'Bearer xxx',
  'Content-Type': 'application/json'
}

三、通用400错误排查步骤

  1. 打印完整请求信息:Robot Framework中可以在调用请求关键字时添加参数expected_status=any,之后打印${resp.request.url}、${resp.request.headers}、${resp.request.body},和Postman的请求信息逐字段对比,即可快速找到差异点。
  2. 读取完整响应内容:不要只查看状态码,400错误的响应体一般会明确返回错误原因(如参数缺失、格式错误等),直接打印${resp.text}即可获取具体报错提示。
  3. 校验Session基础配置:确认创建Session时传入的${baseUrl}和Postman请求的域名、端口、前缀路径完全一致,避免因基础地址错误导致请求路径不符合预期。

内容的提问来源于stack exchange,提问作者Priyom saha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:09:03