REST

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

REST-Assured general

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.

REST-Assured puede ser instalado facilmente agregando la dependencia de Maven:


<dependency>

<groupId>io.rest-assured</groupId>

<artifactId>rest-assured</artifactId>

<version>5.1.1</version>

<scope>test</scope>

</dependency>

Se requiere un framework de pruebas como JUnit o TestNG como ejecutor de pruebas.


El siguiente ejemplo de código demuestra el uso de JUnit. Ahora, echemos un vistazo a
un caso de prueba basado en REST-Assured:
public class UsersTest {

@Before

public void setup() {

RestAssured.baseURI = "https://jsonplaceholder.typicode.com/";

@Test

public void getAllUsersAndThenGetFirstUserById() {

Response responseAllUsers =

given()

.when()

.get("/users")

.then()

.statusCode(200)

.extract()
.response();

int firstUserId = responseAllUsers.jsonPath().getInt("id[0]");

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"),

"[email protected]");

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

Podemos utilizar simplemente la anotación @Before:


@Before
public void setup() {

RestAssured.baseURI = "https://jsonplaceholder.typicode.com";

Proporcionar los parámetros de la petición

Esta etapa está dividida en 2 partes por las palabras clave given() y when().

1. Con given(), podemos proporcionar el tipo de contenido y el cuerpo de la


petición, si es necesario. Es posible pasar cargas JSON o XML a un objeto
String:

public void createUser() {

String body = "{\"name\": \"Test User\"," +

"\"username\": \"testuser\", " +

"\"email\": \"[email protected]\"," +

"\"address\": " +

"{ \"street\": \"Has No Name\"," +

"\"suite\": \"Apt. 123\"," +

"\"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 {

private String name;

private String username;

public User(String name, String username) {

this.name = name;

this.username = username;

}
public String getName() {

return name;

public void setName(String name) {

this.name = name;

public String getUsername() {

return username;

public void setUsername(String job) {

this.username = username;

A continuación, puede simplemente pasar una nueva instancia de la clase en la carga


útil de la solicitud:
@Test

public void createUser() {

User user = new User("Test User", "testuser");

Response response =

given()

.contentType(ContentType.JSON)

.body(user)

Alternativamente, podemos importar la carga útil directamente desde un archivo:


@Test

public void createUserXML() {

File xmlDataInFile = new File("src/test/resources/user.xml");

Response response =

given()

.contentType(ContentType.XML)

.body(xmlDataInFile)
1. Con when() necesitamos especificar la ruta y el método:

.when()

.get("/users")

La ruta en REST-Assured también acepta variables:


int firstUserId = 123;

*********************

.pathParam("id", firstUserId)

.when()

.get("/users/{id}")

Validación de la respuesta

También podría gustarte