pytest - 访问烧瓶响应参数

时间:2021-03-02 13:15:46

标签: json python-3.x parsing python-requests

我正在编写代码,以测试 Flask REST 服务器。

服务器的响应之一是:

return make_response(json.dumps({'myName': userName}), 200)

我可以通过以下方式访问响应的状态代码:

response.status_code

但是我如何访问服务器响应的 myName 参数?

1 个答案:

答案 0 :(得分:1)

这个问题和 Pytest 关系不大。您所做的只是将 JSON 正文解析为字典并访问其属性。这一切都可以通过请求库和 Python 本身实现。

我建议阅读请求文档 here,在您的示例中第一个代码块就足够了。

因此,您的问题的解决方案是:

import requests

my_name_property = requests.get("server_url").json()["myName"]

或更多步骤:

import requests

response = requests.get("server_url")
response_body = response.json()
my_name_property = response_body["myName"]

您不能使用 response.myName,这不是您在 Python 中访问字典属性的方式。这将适用于例如在 Python 或 Javascript 中使用 namedtuple。但在 Python 中使用字典时则不然,这就是上面示例中的 json() 方法返回的内容。

如果某些东西不起作用,我建议使用 Postman 或任何其他此类客户端来弄清楚 API 上发生了什么,如何调用它,得到什么响应,采用什么结构,一旦你理解了它,就写一些 Python 测试。