Como capturar el response cuando estamos trabajando con SerenityBDD, RestAssured y screenplay
Buenas lectores
Alguna vez te has preguntado como puedo imprimir en consola o ver la respuesta de una petición a un servicio cuando estamos usando screenplay?, normalmente en la documentación encontramos lo siguiente:
@Test
public void list_all_users() {
Actor sam = Actor.named("Sam the supervisor")
.whoCan(CallAnApi.at(theRestApiBaseUrl));
sam.attemptsTo(
Get.resource("/users")
);
sam.should(
seeThatResponse("all the expected users should be returned",
response -> response.statusCode(200)
.body("data.first_name", hasItems("George", "Janet", "Emma")))
);
}
Podemos observar que la misma estructura nos permite validar la calidad y veracidad de la información, sin embargo, llegan momentos en que deseamos tener registro de la respuesta sea por trazabilidad o porque nos entregó otro tipo de statusCode. Para eso simplementa vamos a recurrir a serenity:
Actor actor = Actor.named("Mimor ama y señora")
.whoCan(CallAnApi.at("https://dummy.restapiexample.com/api/v1"));
String employeeData = "{\"name\":\"A Carolina S\",\"salary\":\"10000000\",\"age\":\"32\"}";
actor.attemptsTo(
Post.to("/create")
.with(request -> request.contentType(ContentType.JSON).body(employeeData))
);
actor.should(
ResponseConsequence.seeThatResponse("Employee is created successfully",
response -> response.statusCode(200))
);
System.out.println("creado");
Response respo = SerenityRest.lastResponse();
System.out.println(respo.getBody().asPrettyString());
int id = respo.getBody().jsonPath().getInt("data.id");
System.out.println("ID extraído: " + id);
En el ejemplo anterior podemos observar que declaramos una variable del tipo Response y almacenamos el último Response que tiene serenity almacenado, es decir:
Response respo = SerenityRest.lastResponse();
System.out.println(respo.getBody().asPrettyString());
Con esto también podemos capturar algún valor en especial para trabajar con el:
int id = respo.getBody().jsonPath().getInt("data.id");
System.out.println("ID extraído: " + id);
Cordial Saludo.
Fuente:
https://serenity-bdd.github.io/docs/screenplay/screenplay_rest
Comentarios
Publicar un comentario