Measure API response time and throughput
Preconditions (2)
✅ Expected Result: Average response time is less than 500 milliseconds and throughput is at least 10 requests per second
import requests import time url = "https://api.example.com/data" num_requests = 50 response_times = [] start_time = time.perf_counter() for _ in range(num_requests): try: req_start = time.perf_counter() response = requests.get(url) req_end = time.perf_counter() response.raise_for_status() response_times.append((req_end - req_start) * 1000) # milliseconds except requests.RequestException: response_times.append(float('inf')) # mark failed request end_time = time.perf_counter() total_time = end_time - start_time # seconds successful_responses = [t for t in response_times if t != float('inf')] avg_response_time = sum(successful_responses) / len(successful_responses) if successful_responses else float('inf') throughput = len(successful_responses) / total_time if total_time > 0 else 0 assert avg_response_time < 500, f"Average response time too high: {avg_response_time} ms" assert throughput >= 10, f"Throughput too low: {throughput} requests/sec" print(f"Average response time: {avg_response_time:.2f} ms") print(f"Throughput: {throughput:.2f} requests/sec")
This script sends 50 GET requests to the API endpoint one after another.
It measures the time taken for each request using time.perf_counter() for accuracy.
Failed requests are marked with infinite time to exclude them from average calculation.
After all requests, it calculates the average response time in milliseconds and throughput as requests per second.
Assertions check if the average response time is below 500 ms and throughput is at least 10 requests per second.
This approach ensures precise timing and handles failures gracefully.
Now add data-driven testing with 3 different API endpoints to measure their performance
response time measure in performance testing?throughput?Pass the test and this pattern moves unknown