How to Test Status Line of API by Rest Assured

 

To test the status line of a GET API using Rest Assured in Java, you need to understand what a status line is and how to retrieve it.














What is a Status Line?

The status line in an HTTP response consists of:

  • HTTP version (example: HTTP/1.1)

  • Status code (example: 200)

  • Reason phrase (example: OK)


Example:


HTTP/1.1 200 OK


Steps to Test Status Line Using Rest Assured

  • Set the base URI.
  • Use given() to prepare the request.
  • Use .when().get() to make the GET call.
  • Use .then().statusLine() to verify the status line.
  • You can also extract the status line using .extract().statusLine().


Maven Dependencies:


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





Java Code Using Rest Assured to Test Status Line


import io.restassured.RestAssured;
import io.restassured.response.Response;

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

public class StatusLineTest {
    public static void main(String[] args) {
        // Set base URI
        RestAssured.baseURI = "https://reqres.in";

        // Send GET request and validate status line
        given()
            .when()
            .get("/api/users?page=2")
            .then()
            .assertThat()
            .statusLine("HTTP/1.1 200 OK");  // Validate full status line

        // Optionally, print the actual status line
        Response response = get("/api/users?page=2");
        String actualStatusLine = response.getStatusLine();
        System.out.println("Status Line is: " + actualStatusLine);
    }
}




Output:


Status Line is: HTTP/1.1 200 OK




At a glance:

  • Use .statusLine("HTTP/1.1 200 OK") to validate the exact status line.
  • Use .getStatusLine() to fetch and print it.
  • This is useful to ensure your API response is well-formed and meets expectations.

How to Test DELETE API by Rest Assured

 


To test a DELETE API using Rest Assured in Java, you follow a standard procedure:



API used for DELETE operation:

DELETE https://reqres.in/api/users/2



This would delete user with ID 2.

Steps to Test DELETE API via Rest Assured:

  • Set the Base URI
  • Specify the Endpoint (example: /users/2)
  • Use given() to prepare request
  • Use .when().delete() to send the request
  • Use .then() to validate the response (status code, etc.)

Expected Response from https://reqres.in/api/users/2:

The ReqRes API will respond with HTTP status code 204 No Content which indicates successful deletion, but no body is returned.



Maven Dependencies


<dependencies>
    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>5.4.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20230227</version>
    </dependency>
</dependencies>




Java Code using Rest Assured:


import io.restassured.RestAssured;
import io.restassured.response.Response;

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

public class DeleteUserTest {

    public static void main(String[] args) {

        // Step 1: Set Base URI
        RestAssured.baseURI = "https://reqres.in/api";

        // Step 2: Perform DELETE request and validate
        Response response = given()
                                .when()
                                .delete("/users/2") // Endpoint
                                .then()
                                .statusCode(204) // Assert expected status code
                                .extract().response();

        // Step 3: Print response for debugging (though it should be empty)
        System.out.println("Status Code: " + response.getStatusCode());
        System.out.println("Response Body: '" + response.getBody().asString() + "'");
    }
}




Just to Inform:

statusCode(204) ensures deletion is successful.

The response body should be empty (""), as per REST standard for DELETE.