Bird
Raised Fist0
Testing Fundamentalstesting~20 mins

API test automation concepts in Testing Fundamentals - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
API Automation Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding API Test Automation Benefits

Which of the following is the most important benefit of automating API tests compared to manual testing?

AIt allows faster and repeatable execution of tests with consistent results.
BIt eliminates the need for any human oversight during testing.
CIt guarantees that the API has no bugs after testing.
DIt replaces the need for any other type of testing like UI or performance testing.
Attempts:
2 left
💡 Hint

Think about what automation helps with in repetitive tasks.

❓ Predict Output
intermediate
2:00remaining
API Test Automation Code Output

What will be the output of this Python snippet using the requests library in an API test?

import requests
response = requests.get('https://api.example.com/data')
print(response.status_code)
AKeyError
BSyntaxError
CNone
D200
Attempts:
2 left
💡 Hint

What does response.status_code represent in an HTTP request?

❓ assertion
advanced
2:00remaining
Correct Assertion for API Response Content

Given the API response JSON {"success": true, "data": {"id": 123}}, which assertion correctly verifies the success field is true in Python's unittest framework?

Testing Fundamentals
response_json = {"success": True, "data": {"id": 123}}
Aself.assertFalse(response_json['success'])
Bself.assertEqual(response_json['success'], 'true')
Cself.assertTrue(response_json['success'])
Dself.assertIsNone(response_json['success'])
Attempts:
2 left
💡 Hint

Remember Python boolean True is not the string 'true'.

🔧 Debug
advanced
2:00remaining
Debugging API Test Failure Due to Timeout

An API test script fails with a timeout error when calling requests.get('https://api.example.com/data', timeout=1). What is the most likely cause of this failure?

AThe API endpoint URL is incorrect and unreachable.
BThe timeout value is too low for the API response time.
CThe API returned a 404 status code causing timeout.
DThe test script has a syntax error in the <code>requests.get</code> call.
Attempts:
2 left
💡 Hint

Timeout means the server took too long to respond.

❓ framework
expert
2:00remaining
Choosing the Best Test Framework Feature for API Automation

Which feature of a test automation framework is most critical for managing complex API test suites with many dependent tests?

AAbility to define test dependencies and control test order.
BBuilt-in UI test recording capabilities.
CSupport for parallel test execution to speed up testing.
DAutomatic generation of random test data.
Attempts:
2 left
💡 Hint

Think about tests that rely on results from other tests.

Practice

(1/5)
1. What is the main purpose of API test automation?
easy
A. To design the user interface of an application
B. To check if different software parts communicate correctly
C. To write code for the backend server
D. To create database schemas

Solution

  1. Step 1: Understand API test automation goal

    API test automation focuses on verifying communication between software parts via APIs.
  2. Step 2: Eliminate unrelated options

    Designing UI, writing backend code, and creating database schemas are not related to API test automation.
  3. Final Answer:

    To check if different software parts communicate correctly -> Option B
  4. Quick Check:

    API test automation = communication check [OK]
Hint: API tests check communication, not UI or database [OK]
Common Mistakes:
  • Confusing API testing with UI testing
  • Thinking API tests create backend code
  • Mixing API testing with database design
2. Which of the following is the correct way to check the HTTP status code in an automated API test using Python's requests library?
easy
A. response.code == 200
B. response.status == 200
C. response.status_code == 200
D. response.statusCode == 200

Solution

  1. Step 1: Recall Python requests response attribute

    The correct attribute to get HTTP status code is status_code.
  2. Step 2: Match options with correct attribute

    Only response.status_code == 200 uses the correct attribute and syntax.
  3. Final Answer:

    response.status_code == 200 -> Option C
  4. Quick Check:

    requests status code = status_code [OK]
Hint: Use response.status_code to check HTTP status in Python [OK]
Common Mistakes:
  • Using incorrect attribute names like status or code
  • Confusing camelCase with snake_case
  • Forgetting double equals for comparison
3. Given this Python code snippet for an API test:
import requests
response = requests.get('https://api.example.com/data')
print(response.json()['status'])

What will be the output if the API response JSON is {"status": "success", "data": []}?
medium
A. "success"
B. KeyError
C. {'status': 'success'}
D. success

Solution

  1. Step 1: Understand response.json() output

    response.json() returns a Python dictionary parsed from JSON.
  2. Step 2: Access the 'status' key value

    Accessing ['status'] returns the string "success" without quotes in print output.
  3. Final Answer:

    success -> Option D
  4. Quick Check:

    Print dict value = string without quotes [OK]
Hint: Print of string value shows without quotes in Python [OK]
Common Mistakes:
  • Expecting quotes around printed string
  • Confusing JSON string with Python print output
  • Assuming KeyError without checking keys
4. You wrote this API test code snippet:
response = requests.post('https://api.example.com/login', data={'user': 'admin', 'pass': '1234'})
assert response.status_code = 200

What is the error and how to fix it?
medium
A. Use '==' for comparison in assert, not '='
B. Change 'data' to 'json' in requests.post() call
C. Use 'response.status' instead of 'response.status_code'
D. Add parentheses around assert condition

Solution

  1. Step 1: Identify syntax error in assert statement

    The assert statement uses '=' which is assignment, not comparison.
  2. Step 2: Correct assert syntax

    Replace '=' with '==' to compare response.status_code to 200.
  3. Final Answer:

    Use '==' for comparison in assert, not '=' -> Option A
  4. Quick Check:

    Assert needs '==' for comparison [OK]
Hint: Assert uses '==' to compare, '=' assigns [OK]
Common Mistakes:
  • Using '=' instead of '==' in assert
  • Confusing 'data' and 'json' parameters (not error here)
  • Using wrong attribute like response.status
5. You want to automate testing an API that returns a list of users with their ages. You need to verify the API only returns users aged 18 or older. Which approach best fits this requirement?
hard
A. Send a GET request, parse JSON response, then assert all ages >= 18
B. Send a POST request with age filter, then check status code 200
C. Check only the first user's age in the response
D. Verify the response content type is 'text/html'

Solution

  1. Step 1: Understand requirement to verify all users' ages

    We must check every user's age is 18 or older in the response data.
  2. Step 2: Choose approach that parses response and asserts condition on all users

    Sending GET, parsing JSON, and asserting all ages >= 18 matches the need.
  3. Final Answer:

    Send a GET request, parse JSON response, then assert all ages >= 18 -> Option A
  4. Quick Check:

    Check all data items for condition [OK]
Hint: Check all items, not just one, for correct data [OK]
Common Mistakes:
  • Checking only first user age
  • Using wrong HTTP method for retrieval
  • Verifying wrong response content type
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