Bird
Raised Fist0
Testing Fundamentalstesting~15 mins

API test tools overview in Testing Fundamentals - Build an Automation Script

Choose your learning style10 modes available
Verify GET request to retrieve user data using Postman
Preconditions (2)
Step 1: Open Postman application
Step 2: Create a new GET request
Step 3: Enter the URL https://jsonplaceholder.typicode.com/users/1
Step 4: Click the Send button
Step 5: Observe the response status code and body
✅ Expected Result: Response status code is 200 OK and response body contains user data with id 1
Automation Requirements - Python requests with unittest
Assertions Needed:
Verify response status code is 200
Verify response JSON contains 'id' field with value 1
Best Practices:
Use requests library for HTTP calls
Use unittest framework for assertions
Handle exceptions for network errors
Keep test code simple and readable
Automated Solution
Testing Fundamentals
import unittest
import requests

class TestGetUserAPI(unittest.TestCase):
    def test_get_user(self):
        url = "https://jsonplaceholder.typicode.com/users/1"
        try:
            response = requests.get(url, timeout=5)
            self.assertEqual(response.status_code, 200, "Status code is not 200")
            data = response.json()
            self.assertEqual(data.get('id'), 1, "User ID is not 1")
        except requests.RequestException as e:
            self.fail(f"Request failed: {e}")

if __name__ == '__main__':
    unittest.main()

This test uses Python's unittest framework and requests library to automate the manual test case.

We send a GET request to the API endpoint and check the status code is 200, which means success.

Then we parse the JSON response and verify the id field equals 1, matching the expected user.

We use a try-except block to catch any network errors and fail the test with a clear message.

This keeps the test simple, readable, and reliable.

Common Mistakes - 3 Pitfalls
Not checking the response status code before parsing JSON
Hardcoding API URLs without using variables
Not handling exceptions for network failures
Bonus Challenge

Now add data-driven testing with 3 different user IDs (1, 2, 3) to verify their data

Show Hint

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