Modern QA2026The requests Library — tiles
Log inJoin
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")