将响应对象转换为json

问题描述 投票:0回答:1

我被要求恢复一些没有人维护的旧代码。我擅长 python,但对机器人框架还不熟悉。

代码尝试对 REST API 进行身份验证,并将结果保存为响应对象。然后它尝试将响应转换为 json,但失败了。我一直无法让它工作。原版是这样的..

*** Test Cases ***
Login Test
    [Documentation]    Verify /login endpoint
    ${body}=    Create Dictionary
    ...      userId=${API_USERID}
    ...      password=${API_PWD}
    ${r}=    Log in to API with data      ${body}     ${headers}
    should be equal as strings    ${r["status"]}     success
    should be equal as strings    ${r["message"]}    Login is successful

*** Keywords ***
Log in to API with data
    [Arguments]       ${body}            ${headers}
    ${resp}=   Post Request    req     ${API_LOGIN_PATH}    data=${body}   headers=${headers}
    ${resp_json} =  To Json    ${resp.text}
    [Return]   ${resp_json}

..(至少)有两个问题:(1)Post Request 已被弃用,(2)“To Json”未在任何地方定义。

我通过使用 Post On Session 而不是 Post Request 解决了前一个问题。

后一个问题是我陷入困境的地方。我尝试过对“To Json”进行逆向工程,但没有成功。

我相信 ${resp} 的类型是一个响应对象(这是正确的吗?),并且我发现了可以通过 ${resp.content} 访问响应对象的内容的信息,但这失败了 - 这让我想知道从 Post On Session 返回的对象是否确实是响应对象。我不知道。

我尝试了大约六种方法将响应转换为 json,每次都以不同的方式失败。

robotframework
1个回答
0
投票

我认为这对你有用:

[Return]   ${resp.json()}

请注意在设置部分导入 JSONLibrary。

© www.soinside.com 2019 - 2024. All rights reserved.