DEV Community

rodrigo_lira
rodrigo_lira

Posted on

Applying API Testing Frameworks: Real-World Code Examples

API testing is a cornerstone of modern software development, ensuring that application programming interfaces (APIs) are functional, reliable, and secure. Automated API testing frameworks empower teams to validate endpoints, check business logic, and catch regressions early—often as part of continuous integration/continuous deployment (CI/CD) pipelines. Below, we explore how to apply popular API testing frameworks, complete with real-world code examples and best practices.


🔧 Popular API Testing Frameworks and Tools

  • Postman: User-friendly GUI for exploratory and automated API testing.
  • REST-assured: Java library for RESTful API testing.
  • Requests + pytest: Python-based API testing.
  • SoapUI: Powerful for SOAP and REST API functional and load testing.
  • Cypress: JavaScript-based end-to-end and API testing.
  • JMeter: Performance and load testing.
  • Katalon Studio: All-in-one automation for API, web, and mobile testing.

🧪 Real-World Code Examples

1. Postman: User Registration API Test

Postman allows you to write JavaScript-based assertions for API responses. Here's a test script for a user registration endpoint:

// Postman Test Script for User Registration Endpoint
pm.test('Successful User Registration', function() {
  // Validate response status
  pm.response.to.have.status(201);

  // Parse response JSON
  var jsonData = pm.response.json();

  // Check response contains user details
  pm.expect(jsonData.user).to.have.property('id');
  pm.expect(jsonData.user).to.have.property('email');

  // Validate specific response attributes
  pm.expect(jsonData.message).to.eql('User successfully registered');
});
Enter fullscreen mode Exit fullscreen mode

2. REST-assured (Java): Product Retrieval Endpoint

REST-assured is favored for its fluent syntax and deep integration with Java testing stacks:

import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
import org.junit.Test;

@Test
public void testProductRetrieval() {
    given()
        .baseUri("https://api.example.com")
    .when()
        .get("/products/123")
    .then()
        .statusCode(200)
        .body("name", equalTo("Sample Product"))
        .body("price", greaterThan(0))
        .header("Content-Type", "application/json");
}
Enter fullscreen mode Exit fullscreen mode

3. REST-assured (Java): Product Retrieval Endpoint

Python’s requests library, combined with pytest, makes API testing accessible and powerful:

import requests

def test_user_authentication():
    login_data = {
        "username": "testuser",
        "password": "securepassword"
    }
    response = requests.post('https://api.example.com/login', json=login_data)
    assert response.status_code == 200
    assert 'token' in response.json()
    token = response.json()['token']
    assert len(token) > 20  # Basic token length validation

Enter fullscreen mode Exit fullscreen mode

4. Cypress: Product Creation API Test

Cypress, known for UI testing, also excels at API testing:

describe('Product API Tests', () => {
  it('Creates a new product successfully', () => {
    cy.request({
      method: 'POST',
      url: '/api/products',
      body: {
        name: 'New Test Product',
        price: 99.99,
        category: 'Electronics'
      }
    }).then((response) => {
      expect(response.status).to.eq(201);
      expect(response.body).to.have.property('id');
      expect(response.body.name).to.eq('New Test Product');
    });
  });
});
Enter fullscreen mode Exit fullscreen mode

5. SoapUI: SOAP API Test

SoapUI is a go-to for SOAP and legacy systems:

  • Create a new SOAP project and import the WSDL.
  • Craft a request with parameters.
  • Add assertions for status code and response content.
  • Run the test to validate the endpoint and business logic.

Best Practices for Applying API Testing Frameworks

  • ✅ Validate status codes for all endpoints.
  • ✅ Check response body structure and content against expected schemas.
  • ✅ Test both positive and negative scenarios (e.g., valid and invalid inputs).
  • ✅ Include error handling and edge case testing.
  • ✅ Automate tests and integrate them into your CI/CD pipeline.
  • ✅ Generate and review detailed reports to monitor API health and performance.

📊 Summary Table: Frameworks and Use Cases

Framework Language Best For Example Use Case
Postman JavaScript Exploratory, Automated, CI/CD User registration, quick assertions
REST-assured Java REST API, schema validation Product retrieval, complex flows
Requests + pytest Python Lightweight, scriptable Auth, error handling, regression
SoapUI GUI, Groovy SOAP, data-driven, legacy systems Number conversion, compliance checks
Cypress JavaScript API + UI, end-to-end flows Product creation, workflow validation
JMeter Java Load, performance, scalability Stress testing, concurrency
Katalon Studio Multi All-in-one, parallel execution REST/SOAP, parallel test runs

API testing frameworks are essential for building robust, scalable, and secure applications. By leveraging real-world code examples and best practices, teams can accelerate development, catch issues early, and deliver high-quality APIs.

Top comments (0)