¡Rock n’ Roll! 🤟
const query = `{
findUser(username:"hello") {
id
}
}`;
cy.request({
url: 'URL',
body: { query },
failOnStatusCode: false
}).then((response: any) => {
cy.log(response);
});
Introduccion a la Automatización Backend
Automatización de Pruebas Backend con Cypress
Fundamentos del Backend Testing y APIs
Análisis de APIs con DevTools y Postman
Conociendo Cypress
Configuración de Ambiente de Desarrollo con Cypress y JSON Server
Pruebas de Headers en Cypress para Validar Content Type
Validación de Status Codes en APIs con Cypress
Validando el contenido de la respuesta
Validación de Respuestas HTTP en APIs con Cypress
Validación de Errores en APIs con Cypress
Haciendo diferentes tipos de peticiones
Pruebas de APIs con Cypress: POST, PUT y DELETE
Pruebas de APIs GraphQL con PokeAPI no oficial
Bases de Datos
Pruebas de Bases de Datos Relacionales con MySQL y Cypress
Consultas SQL: Insert, Select y Delete en Base de Datos
Pruebas de Bases de Datos NoSQL con MongoDB
Creación y Eliminación de Datos en MongoDB
Prueba en conjunto
Pruebas de Integración entre APIs y Bases de Datos
Próximos pasos
Examen Final para Reforzar Aprendizajes del Curso
Automatización de Pruebas con Cypress
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
GraphQL ha cambiado la forma de trabajar con APIs gracias a su capacidad para realizar consultas flexibles y precisas. Si alguna vez has lidiado con el overfetching o underfetching en REST, encontrarás que GraphQL te ofrece una solución elegante. Hoy exploraremos cómo probar una API de tipo GraphQL, específicamente utilizando la PokeAPI no oficial para consultas.
Para comenzar, creamos un archivo llamado GraphQL
y estructuramos nuestro entorno de trabajo con un bloque describe
que denominamos "Probando GraphQL". En este entorno, desarrollamos nuestro primer test. Para esta demostración utilizamos una versión no oficial de la PokeAPI que soporta GraphQL. Aunque no es un curso extensivo sobre GraphQL, nos pondremos manos a la obra con algunas funcionalidades básicas.
limit
y offset
.GraphQL nos permite parametrizar nuestras consultas. Definimos un conjunto de variables que modifican la información que recibimos:
const graphqlQuery = `
{
pokemons(limit: $limit, offset: $offset) {
results {
name
}
}
}
`;
const graphqlVariables = {
limit: 20,
offset: 0
};
Aunque el objetivo del query GraphQL es fetching
de información, utilizamos el método POST en las solicitudes. Esto se debe a que enviamos datos específicos al servidor para que procese ciertas consultas, un comportamiento similar al de las operaciones POST en REST.
fetch('https://graphql-pokemon2.vercel.app/', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: graphqlQuery,
variables: graphqlVariables
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
El siguiente paso en nuestra prueba es validar que la API devuelva la información correcta. Al usar console.log
imprimimos la respuesta y vigilamos la estructura del JSON devuelto. Particularmente buscamos en data
los resultados de los Pokémon.
// Pseudocódigo para la validación
expect(response.body.data.pokemons.results[0].name).toBe("Bulbasaur");
Durante esta prueba, encontramos el nombre del primer Pokémon como "Bulbasaur". Si nuestras expectativas no se cumplen, debemos corregir el nombre o reevaluar la consulta.
Al trabajar con GraphQL tenemos el control total sobre los datos que recuperamos. Superamos las limitaciones de los APIs REST, como su capacidad de respuesta limitada. Sin embargo, las mutaciones no siempre están disponibles en todas las APIs públicas debido a riesgos de seguridad. El reto está en crear y probar tus propias mutaciones en un entorno controlado.
En suma, GraphQL promete flexibilidad y precisión en la gestión de APIs. Si ya eres programador, te animo a profundizar en este estándar y crear tu servidor GraphQL para explorar más capacidades de mutación y ver cómo se manejan las eliminaciones y actualizaciones dentro de las bases de datos. ¡El mundo de GraphQL tiene muchas más sorpresas y aplicaciones por descubrir!
Aportes 4
Preguntas 1
¡Rock n’ Roll! 🤟
const query = `{
findUser(username:"hello") {
id
}
}`;
cy.request({
url: 'URL',
body: { query },
failOnStatusCode: false
}).then((response: any) => {
cy.log(response);
});
GraphQL funciona sobre el protocolo REST!
Dejo la Api:
https://graphql-pokeapi.graphcdn.app/
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?