4 / 80 · 12 Programming for QA · Python Essentials for QA← prev⊞ allnext →☰ Read as one page
1.4The requests Library
The standard HTTP client for API testing in Python.
import requests
# GET with query parameters
r = requests.get("https://api.example.com/users", params={"page": 1, "limit": 10})
print(r.status_code) # 200
print(r.json()) # parsed JSON response
print(r.headers) # response headers
print(r.elapsed) # time taken
# POST with JSON body
r = requests.post("https://api.example.com/users", json={
"name": "Alice",
"email": "alice@example.com"
})
# PUT with headers
r = requests.put("https://api.example.com/users/123",
json={"name": "Alice Updated"},
headers={"Authorization": "Bearer token123"}
)
# DELETE
r = requests.delete("https://api.example.com/users/123",
headers={"Authorization": "Bearer token123"}
)
assert r.status_code == 204
Session Objects
For tests that need to maintain state (cookies, headers) across requests:
session = requests.Session()
session.headers.update({"Authorization": "Bearer token123"})
# All subsequent requests include the auth header
r1 = session.get("https://api.example.com/users/me")
r2 = session.get("https://api.example.com/users/me/orders")