Bird
Raised Fist0
Testing Fundamentalstesting~10 mins

API test tools overview in Testing Fundamentals - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test checks if the API test tool can send a GET request to a sample API endpoint and verify the response status code is 200, confirming the API is reachable and working.

Test Code - unittest
Testing Fundamentals
import requests
import unittest

class TestAPI(unittest.TestCase):
    def test_get_status_code(self):
        response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
        self.assertEqual(response.status_code, 200)

if __name__ == '__main__':
    unittest.main()
Execution Trace - 5 Steps
StepActionSystem StateAssertionResult
1Test startsTest framework initializes the test case—PASS
2Sends GET request to 'https://jsonplaceholder.typicode.com/posts/1'Network call is made to the API endpoint—PASS
3Receives response from APIResponse object contains status code and data—PASS
4Checks if response status code equals 200Response status code is 200self.assertEqual(response.status_code, 200)PASS
5Test ends with successTest framework reports test passed—PASS
Failure Scenario
Failing Condition: API endpoint is unreachable or returns a status code other than 200
Execution Trace Quiz - 3 Questions
Test your understanding
What does the test verify about the API?
AThe API returns JSON data
BThe API returns status code 200
CThe API response time is under 1 second
DThe API requires authentication
Key Result
Always verify the API response status code to confirm the endpoint is reachable and functioning before validating response data.

Practice

(1/5)
1. Which of the following is a popular tool used for manual API testing with a user-friendly interface?
easy
A. Selenium
B. JUnit
C. Postman
D. JMeter

Solution

  1. Step 1: Identify tools for API testing

    Postman is widely known as a manual API testing tool with a graphical interface.
  2. Step 2: Differentiate from other tools

    JUnit is for unit testing, Selenium for UI testing, and JMeter for performance testing, not primarily manual API testing.
  3. Final Answer:

    Postman -> Option C
  4. Quick Check:

    Manual API testing tool = Postman [OK]
Hint: Postman = manual API testing with GUI [OK]
Common Mistakes:
  • Confusing JUnit as an API testing tool
  • Thinking Selenium is for API testing
  • Assuming JMeter is mainly for API functional testing
2. Which command-line tool is commonly used to send HTTP requests for API testing?
easy
A. docker
B. npm
C. git
D. curl

Solution

  1. Step 1: Identify command-line tools related to HTTP requests

    curl is a command-line tool designed to send HTTP requests and test APIs.
  2. Step 2: Exclude unrelated tools

    npm manages Node.js packages, git manages source code, and docker manages containers, none are for HTTP requests.
  3. Final Answer:

    curl -> Option D
  4. Quick Check:

    Command-line HTTP tool = curl [OK]
Hint: curl sends HTTP requests from terminal [OK]
Common Mistakes:
  • Confusing npm with API testing
  • Thinking git can send HTTP requests
  • Assuming docker is for API calls
3. Consider this REST-assured Java code snippet for API testing:
given().when().get("https://api.example.com/users/1").then().statusCode(200);

What does this test check?
medium
A. The API returns status code 200 for user with ID 1
B. The API returns a list of all users
C. The API creates a new user
D. The API returns status code 404 for user with ID 1

Solution

  1. Step 1: Analyze the HTTP method and URL

    The code uses GET on endpoint /users/1, which typically fetches user with ID 1.
  2. Step 2: Check the assertion on status code

    The test expects the response status code to be 200, meaning success.
  3. Final Answer:

    The API returns status code 200 for user with ID 1 -> Option A
  4. Quick Check:

    GET /users/1 expects 200 = The API returns status code 200 for user with ID 1 [OK]
Hint: GET + statusCode(200) means successful fetch [OK]
Common Mistakes:
  • Thinking it creates a user (POST needed)
  • Assuming it fetches all users (no list endpoint)
  • Confusing 404 with 200 status code
4. You wrote this curl command to test an API:
curl -X GET https://api.example.com/data -d '{"id":5}'

What is wrong with this command?
medium
A. GET requests should not have a request body (-d option)
B. The URL is missing the protocol
C. The HTTP method should be POST, not GET
D. The JSON data is missing a closing brace

Solution

  1. Step 1: Understand HTTP GET request rules

    GET requests usually do not have a body; sending data with -d is ignored or causes errors.
  2. Step 2: Check other parts of the command

    The URL includes protocol https://, JSON is properly closed, and GET is valid method for fetching data.
  3. Final Answer:

    GET requests should not have a request body (-d option) -> Option A
  4. Quick Check:

    GET with body (-d) is invalid [OK]
Hint: GET requests don't send data in body (-d) [OK]
Common Mistakes:
  • Thinking URL lacks protocol
  • Assuming POST is required here
  • Missing JSON brace (actually present)
5. You want to automate API tests that check multiple endpoints with different HTTP methods and validate JSON responses. Which tool is best suited for this task?
hard
A. Postman manual runner
B. REST-assured
C. curl command line only
D. Browser developer tools

Solution

  1. Step 1: Identify automation needs

    Testing multiple endpoints with various HTTP methods and validating JSON requires scripting and assertions.
  2. Step 2: Match tool capabilities

    REST-assured is a Java library designed for automated API testing with rich validation support.
  3. Step 3: Exclude less suitable tools

    Postman manual runner is not fully automated, curl lacks built-in assertions, and browser tools are for debugging, not automation.
  4. Final Answer:

    REST-assured -> Option B
  5. Quick Check:

    Automated API testing with assertions = REST-assured [OK]
Hint: REST-assured = automated API tests with assertions [OK]
Common Mistakes:
  • Choosing Postman manual runner for automation
  • Using curl without assertion support
  • Relying on browser tools for automated tests
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