REST
REST
REST
REST-Assured es una libreria basada en Java creada por JayWay Company para agilizar
las pruebas y validacion de Restful Web Services. Sirve como un catalizador eficiente
para automatizar el proceso de prueba de APIs REST.
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>5.1.1</version>
<scope>test</scope>
</dependency>
@Before
RestAssured.baseURI = "https://jsonplaceholder.typicode.com/";
@Test
Response responseAllUsers =
given()
.when()
.get("/users")
.then()
.statusCode(200)
.extract()
.response();
Response responseFirstUser =
given()
.pathParam("id", firstUserId)
.when()
.get("/users/{id}")
.then()
.statusCode(200)
.extract()
.response();
Assert.assertEquals(responseFirstUser.jsonPath().getString("name"),
"Leanne Graham");
Assert.assertEquals(responseFirstUser.jsonPath().getString("email"),
Podemos ver que las pruebas basadas en REST-Assured están escritas en un formato
estilo BDD, siguiendo la estructura Dado-Entonces-Entonces. Sin embargo, a diferencia
de Karate, estas pruebas están incrustadas dentro del código Java. En otras palabras,
para ver los casos de prueba implementados, hay que profundizar en las pruebas de la
API y examinar el código. Por defecto, REST-Assured no utiliza archivos .feature,
aunque puede integrarse con herramientas como Cucumber u otros marcos BDD.
REST-Assured maneja las etapas del esquema de pruebas de API de la siguiente manera
(utilizando el ejemplo del marco de pruebas JUnit):
Fondo
RestAssured.baseURI = "https://jsonplaceholder.typicode.com";
Esta etapa está dividida en 2 partes por las palabras clave given() y when().
"\"email\": \"[email protected]\"," +
"\"address\": " +
"\"city\": \"Electri\"," +
"\"zipcode\": \"54321-6789\"}}";
Response response =
given()
.contentType(ContentType.JSON)
.body(body)
Un enfoque más preciso es utilizar el mapeo de objetos cuando se trabaja con REST-
Assured. Defina el esquema de carga útil de la solicitud en la clase adecuada:
public static class User {
this.name = name;
this.username = username;
}
public String getName() {
return name;
this.name = name;
return username;
this.username = username;
Response response =
given()
.contentType(ContentType.JSON)
.body(user)
Response response =
given()
.contentType(ContentType.XML)
.body(xmlDataInFile)
1. Con when() necesitamos especificar la ruta y el método:
.when()
.get("/users")
*********************
.pathParam("id", firstUserId)
.when()
.get("/users/{id}")
Validación de la respuesta