Bird
Raised Fist0
Testing Fundamentalstesting~10 mins

Performance testing basics in Testing Fundamentals - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test simulates multiple users accessing a website at the same time to check if the website stays fast and stable. It verifies that the website responds within an acceptable time under load.

Test Code - Python threading with requests
Testing Fundamentals
import time
from threading import Thread
import requests

responses = []

# Function to simulate a user sending a request
def simulate_user(url):
    start = time.time()
    response = requests.get(url)
    end = time.time()
    responses.append((response.status_code, end - start))

# URL to test
url = 'https://example.com'

# Number of simulated users
num_users = 5

threads = []
for _ in range(num_users):
    thread = Thread(target=simulate_user, args=(url,))
    threads.append(thread)
    thread.start()

for thread in threads:
    thread.join()

# Check all responses
for status, duration in responses:
    assert status == 200, f"Expected status 200 but got {status}"
    assert duration < 2, f"Response took too long: {duration} seconds"
Execution Trace - 6 Steps
StepActionSystem StateAssertionResult
1Test startsTest script is ready to run—PASS
2Starts 5 threads to simulate 5 users sending requests to https://example.com5 threads running, each sending HTTP GET request—PASS
3Each thread sends a GET request and records response status and time takenResponses collected with status codes and durations—PASS
4Main thread waits for all user threads to finishAll threads completed—PASS
5Check each response status is 200 and response time is less than 2 secondsAll responses verifiedAssert status == 200 and duration < 2 seconds for each responsePASS
6Test ends with all assertions passedTest completed successfully—PASS
Failure Scenario
Failing Condition: One or more responses have status code not equal to 200 or response time exceeds 2 seconds
Execution Trace Quiz - 3 Questions
Test your understanding
What does the test simulate in performance testing?
AMultiple users accessing the website at the same time
BA single user clicking buttons repeatedly
CChecking spelling errors on the website
DVerifying the website layout on mobile devices
Key Result
Performance tests should simulate real user load and verify both response correctness and response time limits to ensure the system can handle expected traffic.

Practice

(1/5)
1. What is the main goal of performance testing in software development?
easy
A. To find spelling mistakes in the user interface
B. To check how fast and stable the software works under heavy use
C. To test if the software installs correctly
D. To check if the software looks good on different screens

Solution

  1. Step 1: Understand the purpose of performance testing

    Performance testing measures speed and stability when many users use the software at once.
  2. Step 2: Compare options with this purpose

    Only To check how fast and stable the software works under heavy use talks about speed and stability under heavy use, matching the goal.
  3. Final Answer:

    To check how fast and stable the software works under heavy use -> Option B
  4. Quick Check:

    Performance testing = speed and stability check [OK]
Hint: Performance testing checks speed and stability under load [OK]
Common Mistakes:
  • Confusing performance testing with UI or installation testing
  • Thinking performance testing checks visual design
  • Mixing performance testing with functional testing
2. Which of the following is a common tool used for performance testing?
easy
A. Photoshop
B. WordPress
C. Excel
D. JMeter

Solution

  1. Step 1: Identify tools related to performance testing

    JMeter is a popular open-source tool designed for performance testing.
  2. Step 2: Eliminate unrelated tools

    Photoshop is for images, Excel for spreadsheets, WordPress for websites, none for performance testing.
  3. Final Answer:

    JMeter -> Option D
  4. Quick Check:

    Performance tool = JMeter [OK]
Hint: Pick tools known for load testing like JMeter [OK]
Common Mistakes:
  • Choosing unrelated software like Photoshop or Excel
  • Confusing content management systems with testing tools
  • Not knowing popular performance testing tools
3. Consider this scenario: A performance test runs 100 users simultaneously on a website. The average response time is 2 seconds, but 10 users experience 10 seconds delay. What does this indicate?
medium
A. The test is invalid because average time is low
B. The website handles load well with no issues
C. There is a performance bottleneck affecting some users
D. All users have the same experience

Solution

  1. Step 1: Analyze the response times

    Most users get 2 seconds, but some have 10 seconds delay, showing inconsistency.
  2. Step 2: Understand what inconsistent delays mean

    Long delays for some users suggest a bottleneck or problem under load.
  3. Final Answer:

    There is a performance bottleneck affecting some users -> Option C
  4. Quick Check:

    High delay for some = bottleneck [OK]
Hint: Look for slow responses in some users to spot bottlenecks [OK]
Common Mistakes:
  • Ignoring slow user delays and trusting only average
  • Assuming test is invalid without checking details
  • Thinking all users have same experience
4. You wrote a performance test script but it always stops with an error after 5 users start. What is the most likely cause?
medium
A. The test script has a limit on concurrent users set too low
B. The website is too fast and closes the test
C. The test tool does not support more than 5 users ever
D. The internet connection is too slow

Solution

  1. Step 1: Understand the error context

    The test stops after 5 users start, suggesting a limit reached in the script or tool settings.
  2. Step 2: Evaluate options for cause

    The test script has a limit on concurrent users set too low explains a low user limit in the script, which matches the problem. Other options are unlikely causes.
  3. Final Answer:

    The test script has a limit on concurrent users set too low -> Option A
  4. Quick Check:

    Test stops early = user limit too low [OK]
Hint: Check user limits in script when tests stop early [OK]
Common Mistakes:
  • Blaming website speed or internet without evidence
  • Assuming tool cannot handle users without checking settings
  • Ignoring script configuration for concurrency
5. You want to test a web app's performance under increasing load. Which approach best simulates real user behavior during the test?
hard
A. Gradually increase the number of virtual users over time while running typical user actions
B. Run 1000 users all clicking the same button at the exact same time once
C. Run a single user repeatedly refreshing the homepage for hours
D. Test only the database without simulating user actions

Solution

  1. Step 1: Understand realistic load testing

    Real users increase gradually and perform varied actions, not all at once.
  2. Step 2: Compare options to realistic behavior

    Gradually increase the number of virtual users over time while running typical user actions simulates gradual load increase with typical actions, matching real use best.
  3. Final Answer:

    Gradually increase the number of virtual users over time while running typical user actions -> Option A
  4. Quick Check:

    Realistic load = gradual increase + varied actions [OK]
Hint: Simulate real users by increasing load gradually [OK]
Common Mistakes:
  • Testing all users clicking simultaneously unrealistically
  • Using only one user repeatedly
  • Ignoring user actions and testing only backend
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