</>

Technology

Rest Assured

Difficulty

Beginner

Interview Question

How to pass a query parameter with GET method in Rest Assured?

Answer

Passing Query Parameters in Rest Assured

Query parameters are key-value pairs appended to a URL (?key=value). They are optional URL extensions used to filter or paginate data.

Method 1: Using queryParam()

Java
@Test
public void validateQueryParamInGiven() {

    Response resp = given()
                        .queryParam("page", "2")
                        .when()
                        .get("https://reqres.in/api/users");

    assertEquals(resp.getStatusCode(), 200);
    System.out.println(resp.getBody().asString());
}

Method 2: Multiple Query Params

Java
@Test
public void multipleQueryParams() {

    Response resp = given()
                        .queryParam("page", "1")
                        .queryParam("per_page", "5")
                        .when()
                        .get("https://reqres.in/api/users");

    assertEquals(resp.getStatusCode(), 200);
    assertEquals(resp.path("per_page").toString(), "5");
}

Method 3: Using params() Map

Java
@Test
public void queryParamsWithMap() {

    Map<String, Object> params = new HashMap<>();
    params.put("page", 2);
    params.put("per_page", 10);

    Response resp = given()
                        .params(params)
                        .when()
                        .get("https://reqres.in/api/users");

    assertEquals(resp.getStatusCode(), 200);
}

BDD Style

Java
given()
    .queryParam("gender", "female")
    .when()
    .get("https://api.example.com/users")
    .then()
    .statusCode(200)
    .body("data.size()", greaterThan(0));

Notes

  • queryParam() automatically encodes special characters
  • Multiple params can be chained: .queryParam("a", 1).queryParam("b", 2)
  • Resulting URL: https://reqres.in/api/users?page=2&per_page=10

Follow AutomateQA

Related Topics