Bird
Raised Fist0
Testing Fundamentalstesting~10 mins

Load testing concepts in Testing Fundamentals - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test simulates multiple users accessing a web application simultaneously to verify if the system can handle the expected load without performance degradation or failure.

Test Code - Locust
Testing Fundamentals
from locust import HttpUser, task, between

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

    @task
    def load_homepage(self):
        response = self.client.get("/")
        assert response.status_code == 200

    @task(3)
    def load_about_page(self):
        response = self.client.get("/about")
        assert response.status_code == 200

# To run this test, use the command: locust -f this_script.py --headless -u 10 -r 2 -t 30s
# This runs 10 users, spawning 2 users per second, for 30 seconds.
Execution Trace - 7 Steps
StepActionSystem StateAssertionResult
1Test starts by launching Locust with 10 users and spawn rate of 2 users per second.Locust initializes and prepares to simulate users.—PASS
2First simulated user opens the homepage by sending GET request to '/' endpoint.Web server receives request and processes it.Check that response status code is 200 (OK).PASS
3User waits between 1 to 3 seconds before next action.User is idle for a short random time.—PASS
4User sends GET request to '/about' page three times more frequently than homepage.Server processes multiple requests to '/about' endpoint.Each response status code must be 200.PASS
5More users spawn gradually until total 10 users are active, repeating the tasks.Server handles increasing load of simultaneous requests.All responses return status code 200 without errors.PASS
6Test runs for 30 seconds, monitoring server response times and error rates.Server performance metrics are collected.No server errors or timeouts occur during test duration.PASS
7Test ends and Locust generates a report summarizing requests, failures, and response times.Test report is available for analysis.Verify that failure count is zero and average response time is acceptable.PASS
Failure Scenario
Failing Condition: Server returns error status codes (e.g., 500) or times out under load.
Execution Trace Quiz - 3 Questions
Test your understanding
What does the test verify when it checks that response status code is 200?
AThe server is overloaded.
BThe server successfully handled the request.
CThe user interface is visible.
DThe network connection is slow.
Key Result
Always verify server response codes during load testing to ensure the system handles expected user traffic without errors.

Practice

(1/5)
1. What is the main purpose of load testing in software testing?
easy
A. To verify the correctness of business logic
B. To find security vulnerabilities in the system
C. To test the system's user interface design
D. To check how the system behaves under expected user loads

Solution

  1. Step 1: Understand load testing goal

    Load testing is done to see how a system performs when many users use it at the same time.
  2. Step 2: Compare options with load testing purpose

    Only To check how the system behaves under expected user loads matches this goal. Other options relate to security, UI, or logic testing, which are different types.
  3. Final Answer:

    To check how the system behaves under expected user loads -> Option D
  4. Quick Check:

    Load testing = check system under expected load [OK]
Hint: Load testing checks system performance under user load [OK]
Common Mistakes:
  • Confusing load testing with security testing
  • Thinking load testing checks UI design
  • Mixing load testing with functional correctness
2. Which of the following is the correct syntax to start a load test using a common tool script named load_test.sh in a terminal?
easy
A. run load_test.sh
B. start load_test.sh
C. bash load_test.sh
D. execute load_test.sh

Solution

  1. Step 1: Identify common shell command to run scripts

    In Unix-like systems, bash script.sh runs a shell script.
  2. Step 2: Check other options for correctness

    Commands like run, start, or execute are not standard shell commands to run scripts.
  3. Final Answer:

    bash load_test.sh -> Option C
  4. Quick Check:

    Run shell script = bash script.sh [OK]
Hint: Use 'bash script.sh' to run shell scripts in terminal [OK]
Common Mistakes:
  • Using non-existent commands like 'run' or 'start'
  • Forgetting to specify the shell to run the script
  • Confusing script execution with program installation
3. Consider this simplified load test script output summary:
Users simulated: 100
Average response time: 2.5 seconds
Error rate: 0%

What does this output tell us about the system's performance?
medium
A. The system handles 100 users with no errors but response time is moderate
B. The system has errors and slow response time
C. The system cannot handle 100 users
D. The system response time is very fast

Solution

  1. Step 1: Analyze the output values

    100 users were simulated, error rate is 0%, so no errors occurred. Average response time is 2.5 seconds.
  2. Step 2: Interpret performance meaning

    No errors means system handled load well. Response time of 2.5 seconds is moderate speed, not very fast.
  3. Final Answer:

    The system handles 100 users with no errors but response time is moderate -> Option A
  4. Quick Check:

    No errors + moderate response = system handles load [OK]
Hint: Zero errors + response time shows load handling quality [OK]
Common Mistakes:
  • Assuming 2.5 seconds is very fast
  • Ignoring error rate meaning
  • Confusing number of users with errors
4. A load test script is supposed to simulate 50 users but only 10 users are simulated. Which is the most likely cause?
medium
A. The load testing tool is configured to limit users to 10
B. The system under test crashed before test started
C. The script has a syntax error causing early termination
D. The network connection is too fast

Solution

  1. Step 1: Understand the problem context

    The script aims for 50 users but only 10 appear. This suggests a configuration or environment issue.
  2. Step 2: Evaluate options for cause

    A syntax error would likely stop the script entirely, not partially simulate users. System crash would stop all users. Network speed does not limit user count. Configuration limiting users to 10 fits best.
  3. Final Answer:

    The load testing tool is configured to limit users to 10 -> Option A
  4. Quick Check:

    User count limited by tool config = cause [OK]
Hint: Check tool user limit settings if fewer users simulated [OK]
Common Mistakes:
  • Blaming syntax errors without checking config
  • Assuming system crash without error logs
  • Confusing network speed with user count
5. You want to test a web app's performance under increasing load. Which approach best fits load testing to find the maximum user capacity before response time exceeds 3 seconds?
hard
A. Only test the app's UI responsiveness manually
B. Gradually increase simulated users while measuring response time until it exceeds 3 seconds
C. Test with 10 users repeatedly without increasing load
D. Run a single test with 1000 users and check errors only

Solution

  1. Step 1: Understand goal to find max capacity before response time limit

    This requires increasing load step-by-step and measuring response time.
  2. Step 2: Evaluate options for best method

    Gradually increase simulated users while measuring response time until it exceeds 3 seconds describes gradual increase and measurement, which fits load testing best. Other options either test fixed load, ignore response time, or test UI manually, which do not meet goal.
  3. Final Answer:

    Gradually increase simulated users while measuring response time until it exceeds 3 seconds -> Option B
  4. Quick Check:

    Increase load + measure response time = find max capacity [OK]
Hint: Increase users stepwise, watch response time limit [OK]
Common Mistakes:
  • Testing only fixed large user count
  • Ignoring response time in load tests
  • Relying on manual UI checks for load testing
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