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

Robot Framework使用RequestsLibrary发送XML内容POST请求报错排查

解决Robot Framework发送XML请求体及验证响应的问题

我来帮你搞定这个问题!你遇到的核心是如何正确用RequestsLibrary发送纯XML格式的POST请求体(而非文件),同时获取完整响应内容做验证。咱们一步步拆解:

先看你之前代码的问题

你修改后的代码里用了&{data}= Create Dictionary name=${file_data.strip()},这相当于把XML内容打包成了表单键值对(name=xxx),但服务器期望的是纯XML文本作为请求体,这种格式不匹配就是导致500错误的根本原因。

正确的实现代码

*** Settings ***
Library           Collections
Library           RequestsLibrary
Library           XML
Library           OperatingSystem

*** Test Cases ***
Send XML Content and Validate Response
    # 1. 创建会话,初始化基础URL
    Create Session    Gateway    https://GatewayURL.asmx
    # 2. 读取XML文件的文本内容(用Get File而非二进制读取,避免编码问题)
    ${xml_content}=    Get File    ${CURDIR}${/}data.xml
    # 3. 设置请求头,明确告知服务器请求体是XML格式
    &{headers}=    Create Dictionary    Content-Type=text/xml; charset=utf-8
    # 4. 发送POST请求:直接把XML文本作为data参数传入(不要包字典!)
    ${response}=    Post Request    Gateway    /post    data=${xml_content}    headers=${headers}
    # 5. 验证响应状态码
    Should Be Equal As Strings    ${response.status_code}    200
    # 6. 获取完整的响应XML内容,用于后续验证
    ${response_xml}=    Set Variable    ${response.text}
    # 示例:用XML库验证响应中的指定节点值
    ${target_node_value}=    Get Element Text    ${response_xml}    //YourTargetNode
    Should Be Equal    ${target_node_value}    ExpectedNodeValue

关键要点说明

  • 直接传XML文本作为data参数:Post Request的data参数如果接收字符串,会直接把它作为请求体发送;如果传字典,会自动编码成application/x-www-form-urlencoded的表单数据,这和服务器需要的text/xml完全不兼容,这是你之前踩的坑。
  • 用Get File读取XML:XML是文本文件,Get File会以文本方式读取,避免二进制读取带来的编码混乱。
  • 获取响应内容:${response.text}就能拿到服务器返回的完整XML文本,之后可以用XML库的各种关键字(比如Xpath Should Exist、Get Attribute Value等)做精准验证。
  • 关于你疑惑的“Header被当作Data”:看你报错里的data=<text/xml>,这其实是因为你把XML内容放到了字典的name键里,表单数据被转义后显示异常,并不是Header被误用。只要直接传字符串作为data,这个问题就会消失。

匹配你的理想流程

上面的代码完美贴合你的需求:

  1. 通过Get File从目录提取XML文件内容
  2. 把XML文本作为data配合正确的Content-Type头发送POST请求
  3. RequestsLibrary会自动等待服务器响应
  4. 通过${response.text}拿到响应XML,再用XML库完成验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:16:28