🎯
Testing REST APIs

REST Assured

BDD-Style API Testing
💡 REST Assured, EK "PLAIN ENGLISH" INSTRUCTION MANUAL hai, API TESTING ke liye — given().when().then() STRUCTURE, EK NORMAL SENTENCE ki tarah, PADHA ja sakta hai — "GIVEN yeh setup hai, WHEN yeh request bhejo, THEN yeh result expect karo".

REST Assured, EK THIRD-PARTY, JAVA LIBRARY hai (Spring-SPECIFIC NAHI), JO, BDD (Behavior-Driven Development) STYLE mein, API TESTS LIKHNE DETA hai — given().when().then() PATTERN, HIGHLY, READABLE, aur, NON-TECHNICAL STAKEHOLDERS ko bhi, SAMAJH AATA hai.

REST Assured, ESPECIALLY, USEFUL hai, EK RUNNING, DEPLOYED APPLICATION (jaise, STAGING ENVIRONMENT) ke, AGAINST, EXTERNAL, BLACK-BOX TESTS LIKHNE ke liye — MockMvc/WebTestClient ki TARAH, Spring CONTEXT ke ANDAR SE, TEST NAHI karta, BALKI, EK EXTERNAL, HTTP CLIENT ki TARAH, BEHAVE karta hai.

<dependency>
    <groupId>io.rest-assured</groupId>
    <artifactId>rest-assured</artifactId>
    <scope>test</scope>
</dependency>

@Test
void shouldGetProduct() {
    given()
        .baseUri("http://localhost:8080")
    .when()
        .get("/api/products/1")
    .then()
        .statusCode(200)
        .body("name", equalTo("Laptop"))
        .body("price", greaterThan(0));
}

@Test
void shouldCreateProduct() {
    given()
        .contentType(ContentType.JSON)
        .body("{\"name\":\"Mouse\",\"price\":25}")
    .when()
        .post("/api/products")
    .then()
        .statusCode(201);
}
🎯
REST Assured, EK "PLAIN ENGLISH" INSTRUCTION MANUAL hai, API TESTING ke liye — given().when().then() STRUCTURE, EK NORMAL SENTENCE ki tarah, PADHA ja sakta hai — "GIVEN yeh setup hai, WHEN yeh request bhejo, THEN yeh result expect karo".
1 / 2
⚡ Quick Recap
  • REST Assured = BDD-style (given/when/then), THIRD-PARTY library
  • External, DEPLOYED APIs ke against, black-box testing ke liye, IDEAL
  • CI/CD pipelines mein, DEPLOYMENT ke baad, "smoke tests" ke liye, COMMON
On this page (2 subtopics)

String token = given()...when()...then().extract().path("token") — REST Assured, RESPONSE SE, SPECIFIC, VALUES, EXTRACT karne DETA hai, JISE, AGLE, TEST STEPS mein, USE kiya ja sakta hai (jaise, LOGIN SE, MILA, TOKEN, AGLE, REQUESTS mein, USE karna).

String token = given().body(loginRequest).when().post("/login")
    .then().extract().path("token");

given().header("Authorization", "Bearer " + token)
    .when().get("/api/orders")
    .then().statusCode(200);

.body(matchesJsonSchemaInClasspath("product-schema.json")) — RESPONSE, EK, PRE-DEFINED, JSON SCHEMA ke, AGAINST, VALIDATE ki ja sakti hai, SIRF, INDIVIDUAL, FIELDS, CHECK karne ke, BAJAYE — POORI, RESPONSE, STRUCTURE, EK, BAAR mein, VERIFY hoती hai.

💡Tip: JSON, Schema, VALIDATION, ESPECIALLY, USEFUL hai, JAB, TUM, ENSURE karna, CHAHTE ho, KI, RESPONSE, STRUCTURE, ACCIDENTALLY, CHANGE, NA HO (jaise, EK, FIELD, MISSING, HO JAAYE).