Bird
Raised Fist0
Testing Fundamentalstesting~15 mins

Why performance testing prevents bottlenecks in Testing Fundamentals - Automation Benefits in Action

Choose your learning style10 modes available
Verify system performance under load to prevent bottlenecks
Preconditions (3)
Step 1: Start the performance test with 50 concurrent users
Step 2: Gradually increase the number of users to 200 over 10 minutes
Step 3: Monitor response times and error rates during the test
Step 4: Identify any response time spikes or errors indicating bottlenecks
✅ Expected Result: The system maintains response times under 2 seconds and error rate below 1% throughout the test, indicating no bottlenecks
Automation Requirements - Locust
Assertions Needed:
Average response time is less than 2 seconds
Error rate is less than 1%
Best Practices:
Use gradual ramp-up of users to simulate real load
Collect and assert metrics programmatically
Keep test scripts modular and reusable
Automated Solution
Testing Fundamentals
from locust import HttpUser, task, between, events

class WebsiteUser(HttpUser):
    wait_time = between(1, 2)

    @task
    def load_main_page(self):
        with self.client.get("/", catch_response=True) as response:
            if response.status_code != 200:
                response.failure(f"Failed with status {response.status_code}")

@events.test_stop.add_listener
def on_test_stop(environment, **kwargs):
    stats = environment.runner.stats
    avg_response_time = stats.total.avg_response_time
    error_rate = stats.total.fail_ratio * 100
    assert avg_response_time < 2000, f"Average response time too high: {avg_response_time} ms"
    assert error_rate < 1, f"Error rate too high: {error_rate}%"

This script uses Locust to simulate users visiting the main page.

The WebsiteUser class defines user behavior with a wait time between requests.

The load_main_page task sends a GET request to the home page and marks failure if status is not 200.

At test stop, the on_test_stop listener checks average response time and error rate.

Assertions ensure the system meets performance criteria, preventing bottlenecks.

Common Mistakes - 3 Pitfalls
Starting all users at once without ramp-up
Not checking response status codes
Hardcoding thresholds without measuring baseline
Bonus Challenge

Now add data-driven testing with 3 different URLs to simulate varied user behavior

Show Hint

Practice

(1/5)
1. Why is performance testing important in software development?
easy
A. It helps find slow parts that can cause delays or crashes.
B. It checks if the software looks good on all devices.
C. It verifies the spelling and grammar in the software text.
D. It ensures the software has colorful graphics.

Solution

  1. Step 1: Understand the goal of performance testing

    Performance testing aims to find parts of software that slow down or fail under load.
  2. Step 2: Compare options to this goal

    Only It helps find slow parts that can cause delays or crashes. talks about finding slow parts and preventing delays or crashes, which matches the goal.
  3. Final Answer:

    It helps find slow parts that can cause delays or crashes. -> Option A
  4. Quick Check:

    Performance testing = find slow parts [OK]
Hint: Performance testing finds slow parts early [OK]
Common Mistakes:
  • Confusing performance testing with UI testing
  • Thinking it checks spelling or colors
  • Assuming it only tests software appearance
2. Which of the following is the correct way to describe a performance test script?
easy
A. A script that simulates many users using the software at once
B. A script that checks if buttons are clickable
C. A script that changes the software colors
D. A script that fixes bugs automatically

Solution

  1. Step 1: Identify what performance test scripts do

    They simulate many users or actions to test software speed and stability under load.
  2. Step 2: Match options to this description

    A script that simulates many users using the software at once matches because it talks about simulating many users at once, which is key for performance testing.
  3. Final Answer:

    A script that simulates many users using the software at once -> Option A
  4. Quick Check:

    Performance test script = simulate many users [OK]
Hint: Performance scripts simulate many users [OK]
Common Mistakes:
  • Confusing functional test scripts with performance scripts
  • Thinking scripts fix bugs automatically
  • Assuming scripts change UI colors
3. Consider this simplified code snippet simulating a performance test load:
users = 1000
response_times = [0.2, 0.3, 0.5, 0.4, 0.6]
avg_response = sum(response_times) / len(response_times)
if avg_response > 0.4:
    result = "Bottleneck detected"
else:
    result = "Performance acceptable"

What will be the value of result after running this code?
medium
A. "Bottleneck detected"
B. SyntaxError
C. "Performance acceptable"
D. "No users simulated"

Solution

  1. Step 1: Calculate the average response time

    Sum of response_times = 0.2+0.3+0.5+0.4+0.6 = 2.0; Number of times = 5; Average = 2.0 / 5 = 0.4
  2. Step 2: Compare average response to threshold

    The code checks if avg_response > 0.4. Since avg_response is 0.4, the condition is false, so else block runs, setting result to "Performance acceptable".
  3. Final Answer:

    "Performance acceptable" -> Option C
  4. Quick Check:

    Average response = 0.4, condition false, result = "Performance acceptable" [OK]
Hint: Calculate average carefully, compare with threshold [OK]
Common Mistakes:
  • Assuming 0.4 > 0.4 is true
  • Ignoring else block
  • Confusing syntax error with logic error
4. A performance test script is supposed to simulate 500 users but only simulates 50. What is the likely cause of this error?
medium
A. The test script changes the software font size.
B. The loop controlling user simulation has a wrong range value.
C. The test script has a syntax error and does not run.
D. The software UI is not colorful enough.

Solution

  1. Step 1: Understand the problem context

    The script simulates fewer users than expected, likely due to a coding mistake controlling the number of users.
  2. Step 2: Identify the cause from options

    The loop controlling user simulation has a wrong range value. points to a wrong loop range, which directly affects how many users are simulated. Other options are unrelated to user count.
  3. Final Answer:

    The loop controlling user simulation has a wrong range value. -> Option B
  4. Quick Check:

    Wrong loop range = fewer users simulated [OK]
Hint: Check loop ranges for user count errors [OK]
Common Mistakes:
  • Blaming UI or style issues for simulation count
  • Assuming syntax error without checking logic
  • Ignoring loop control variables
5. You run a performance test on a web app and find that response times increase sharply when users exceed 200. What is the best next step to prevent this bottleneck?
hard
A. Ignore the issue since it happens only after 200 users.
B. Change the app's background color to blue.
C. Reduce the number of users allowed to use the app permanently.
D. Optimize the code or database queries causing delays at high load.

Solution

  1. Step 1: Identify the cause of the bottleneck

    Sharp increase in response time after 200 users means some part of the system slows down under load.
  2. Step 2: Choose the best action to fix the bottleneck

    Optimizing code or database queries is the proper way to fix performance issues. Other options ignore or avoid the problem without solving it.
  3. Final Answer:

    Optimize the code or database queries causing delays at high load. -> Option D
  4. Quick Check:

    Fix bottleneck by optimizing code/queries [OK]
Hint: Fix bottlenecks by optimizing slow parts [OK]
Common Mistakes:
  • Ignoring bottlenecks hoping they disappear
  • Changing UI instead of fixing performance
  • Limiting users instead of improving code
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