我正在编写代码,以测试 Flask REST 服务器。
服务器的响应之一是:
return make_response(json.dumps({'myName': userName}), 200)
我可以通过以下方式访问响应的状态代码:
response.status_code
但是我如何访问服务器响应的 myName 参数?
答案 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 测试。