Bird
Raised Fist0
Testing Fundamentalstesting~15 mins

Performance metrics (response time, throughput) in Testing Fundamentals - Build an Automation Script

Choose your learning style10 modes available
Measure API response time and throughput
Preconditions (2)
Step 1: Send 50 GET requests to https://api.example.com/data as quickly as possible
Step 2: Record the response time for each request
Step 3: Calculate the average response time
Step 4: Calculate throughput as number of requests completed per second
✅ Expected Result: Average response time is less than 500 milliseconds and throughput is at least 10 requests per second
Automation Requirements - Python with requests and time modules
Assertions Needed:
Average response time < 500 ms
Throughput >= 10 requests per second
Best Practices:
Use precise time measurement with time.perf_counter()
Send requests sequentially to measure response time accurately
Calculate throughput based on total time taken for all requests
Handle exceptions for failed requests
Automated Solution
Testing Fundamentals
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.

Common Mistakes - 3 Pitfalls
Using time.time() instead of time.perf_counter() for timing
Sending requests in parallel without measuring individual response times
Ignoring failed requests in calculations
Bonus Challenge

Now add data-driven testing with 3 different API endpoints to measure their performance

Show Hint

Practice

(1/5)
1. What does response time measure in performance testing?
easy
A. The total number of requests per second
B. How fast a single request is completed
C. The amount of data transferred in a request
D. The number of users accessing the system

Solution

  1. Step 1: Understand response time meaning

    Response time measures the duration taken to complete one request from start to finish.
  2. Step 2: Differentiate from throughput

    Throughput measures how many requests happen over time, not the speed of one request.
  3. Final Answer:

    How fast a single request is completed -> Option B
  4. Quick Check:

    Response time = speed of one request [OK]
Hint: Response time = speed of one request [OK]
Common Mistakes:
  • Confusing response time with throughput
  • Thinking response time counts total requests
  • Mixing data size with response time
2. Which of the following is the correct unit commonly used to measure throughput?
easy
A. Milliseconds (ms)
B. Bytes
C. Requests per second (RPS)
D. Percentage (%)

Solution

  1. Step 1: Identify throughput unit

    Throughput measures how many requests are processed per unit time, commonly requests per second (RPS).
  2. Step 2: Exclude other units

    Milliseconds measure time, bytes measure data size, and percentage is not a throughput unit.
  3. Final Answer:

    Requests per second (RPS) -> Option C
  4. Quick Check:

    Throughput = requests per second [OK]
Hint: Throughput counts requests per second [OK]
Common Mistakes:
  • Using time units for throughput
  • Confusing data size with throughput
  • Selecting percentage as throughput unit
3. Given a system that processes 120 requests in 10 seconds, what is the throughput?
medium
A. 10 requests per second
B. 0.12 requests per second
C. 1200 requests per second
D. 12 requests per second

Solution

  1. Step 1: Calculate throughput formula

    Throughput = Total requests / Total time = 120 / 10 seconds.
  2. Step 2: Perform division

    120 divided by 10 equals 12 requests per second.
  3. Final Answer:

    12 requests per second -> Option D
  4. Quick Check:

    120 ÷ 10 = 12 [OK]
Hint: Divide total requests by total time [OK]
Common Mistakes:
  • Dividing time by requests instead of requests by time
  • Multiplying requests and time
  • Confusing throughput with response time
4. A tester recorded the following response times (in ms): 100, 200, 150, 250. The average response time was incorrectly calculated as 700 ms. What is the correct average response time?
medium
A. 175 ms
B. 700 ms
C. 150 ms
D. 200 ms

Solution

  1. Step 1: Sum all response times

    Add 100 + 200 + 150 + 250 = 700 ms total.
  2. Step 2: Calculate average response time

    Divide total 700 ms by 4 requests = 175 ms average.
  3. Final Answer:

    175 ms -> Option A
  4. Quick Check:

    700 ÷ 4 = 175 [OK]
Hint: Sum times, then divide by count [OK]
Common Mistakes:
  • Using total sum as average
  • Dividing by wrong number of requests
  • Mixing units in calculation
5. A web server has a throughput of 50 requests per second and an average response time of 200 ms. If the server's throughput doubles but response time remains the same, what happens to the server's capacity and user experience?
hard
A. Capacity doubles; user experience stays consistent
B. Capacity stays same; user experience worsens
C. Capacity doubles; user experience worsens
D. Capacity halves; user experience improves

Solution

  1. Step 1: Understand throughput doubling

    Doubling throughput means the server can handle twice as many requests per second, so capacity doubles.
  2. Step 2: Analyze response time unchanged

    Since response time stays at 200 ms, the speed per request remains consistent, so user experience does not worsen.
  3. Final Answer:

    Capacity doubles; user experience stays consistent -> Option A
  4. Quick Check:

    Throughput ↑, response time same = better capacity, same experience [OK]
Hint: More throughput + same response time = better capacity, same experience [OK]
Common Mistakes:
  • Assuming response time worsens with throughput increase
  • Confusing capacity with response time
  • Thinking capacity decreases when throughput increases
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard