我被要求恢复一些没有人维护的旧代码。我擅长 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,每次都以不同的方式失败。
我认为这对你有用:
[Return] ${resp.json()}
请注意在设置部分导入 JSONLibrary。