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
