API Navigator Logo

Python API Performance Testing Basics

Author: Newtum

This example introduces the basics of API performance testing in Python by measuring response times over multiple requests. For serious load testing, dedicated tools like Locust or JMeter are recommended.

Simple Performance Measurement

We can make a series of requests in a loop and record the `elapsed` time for each one. The `response.elapsed` attribute is a `timedelta` object that measures the time between sending the request and receiving the full response.

import requests
import time

url = 'https://httpbin.org/delay/0.5' # Endpoint with a 0.5s delay
num_requests = 5
response_times = []

print(f"Making {num_requests} requests to {url}...")

for i in range(num_requests):
    start_time = time.perf_counter()
    response = requests.get(url)
    # The elapsed attribute gives the response time
    response_time = response.elapsed.total_seconds()
    response_times.append(response_time)
    print(f"Request {i+1}: Status {response.status_code}, Time: {response_time:.4f}s")

# Calculate basic statistics
if response_times:
    average_time = sum(response_times) / len(response_times)
    max_time = max(response_times)
    min_time = min(response_times)
    print("\n--- Performance Summary ---")
    print(f"Average Response Time: {average_time:.4f}s")
    print(f"Minimum Response Time: {min_time:.4f}s")
    print(f"Maximum Response Time: {max_time:.4f}s")