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

Robot Framework:API调用中转义字符\的存储与传递问题

Robot Framework+Requests API测试:解决加密密钥反斜杠被重复转义问题

问题分析

从API响应JSON中提取带反斜杠的加密密钥时,Robot Framework会自动对反斜杠做转义(单个\变为\\);后续将密钥传入JSON请求体时,Requests库会再次对JSON内容做序列化转义,最终导致反斜杠变为\\\\,不符合接口要求。

解决方案

方案1:用Evaluate直接获取原始字符串

绕过Robot的自动转义逻辑,直接通过Python代码提取密钥的原始值:

${response}       POST On Session    session Name    # 后续为其他输入内容
# 直接从JSON对象中提取原始字符串,避免Robot转义
${encrypt_key}    Evaluate    ${response.json()['encryptKey']}
Set Suite Variable    $encrypt_key    ${encrypt_key}

方案2:用String Replace手动修正转义

如果已获取带双反斜杠的密钥,直接替换成双反斜杠为单个反斜杠:

${response}       POST On Session    session Name    # 后续为其他输入内容
Set Suite Variable    $encrypt_key    ${response.json()}[encryptKey]
# 将双反斜杠替换为单个反斜杠
${encrypt_key}    String Replace    ${encrypt_key}    \\    \

方案3:直接构造原始JSON字符串(绕过字典转JSON的二次转义)

跳过Create Dictionary,直接拼接JSON字符串,避免Requests的自动序列化转义:

# 直接拼接JSON字符串,确保密钥中的反斜杠仅保留一个
${json_data}    Catenate    SEPARATOR=
...    {"document": "${document_b64}", "fileName": "${output_name}", "encryptKey": "${encrypt_key}"}
${response}    POST On Session    json=${json_data}

标题优化建议

可使用更精准的标题,比如:

  • Robot Framework API测试:解决加密密钥反斜杠重复转义问题
  • 如何避免Robot Framework+Requests传递带反斜杠密钥时的转义错误

内容的提问来源于stack exchange,提问作者Djiby Top

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 10:42:47