Obtén 100% en el cuestionario para continuar
Escribir una prueba de camino feliz
Envía una petición GET y verifica el código de estado y la estructura del cuerpo.
Empecemos por el caso de prueba más importante, el camino feliz: enviar una petición GET al endpoint /customers y verificar que responde con éxito, con un código de estado 200 y un cuerpo que tiene la estructura esperada.
A diferencia de las pruebas web, las pruebas de API no manejan un navegador. En su lugar, Playwright ofrece un fixture request que envía peticiones HTTP directamente y devuelve la respuesta para que hagas tus aserciones sobre ella.
Resumen de comandos 📖
import { test, expect } from '@playwright/test'
Todo archivo de spec empieza importando la función test de Playwright (que se usa para declarar casos de prueba y hooks) y expect (que se usa para escribir aserciones) desde el ejecutor de pruebas.
Sintaxis:
import { test, expect } from '@playwright/test'test.describe
Agrupa casos de prueba relacionados bajo un título compartido, lo que mantiene la suite organizada y hace más fácil leer el reporte.
Sintaxis:
test.describe(title, () => { /* tests */ })Ejemplo:
test.describe('GET /customers', () => {
// aquí van los hooks y las pruebas
})test
Declara un único caso de prueba. Recibe un título y un callback asíncrono, y Playwright inyecta sus fixtures (como request) como argumento del callback.
Sintaxis:
test(title, async ({ request }) => { /* ... */ })Ejemplo:
test('gets customers successfully', async ({ request }) => {
// aquí van arrange, act y assert
})El fixture request
Playwright expone un fixture request (un APIRequestContext) capaz de enviar peticiones HTTP. Lo recibes como argumento de tu prueba.
Sintaxis:
test('...', async ({ request }) => { /* ... */ })request.get
Envía una petición GET y devuelve la respuesta.
Sintaxis:
const response = await request.get(url)Ejemplo:
// Con baseURL configurado, alcanza con una ruta relativa
const response = await request.get('/customers')response.status y response.ok
Devuelven el código de estado HTTP y si está en el rango 2xx.
Ejemplo:
expect(response.status()).toBe(200)
expect(response.ok()).toBeTruthy()response.json
Parsea el cuerpo de la respuesta como JSON.
Ejemplo:
const body = await response.json()
expect(body).toHaveProperty('customers')
expect(body).toHaveProperty('pageInfo')Contenido sugerido 📚 y enlaces a la documentación 🔗
Ejercicio 🎯
Crea un archivo de spec (por ejemplo, tests/customers.spec.ts). Envuelve tus pruebas en un bloque test.describe (por ejemplo, titulado GET /customers) para organizar la suite. Después, dentro de un test, envía una petición GET a /customers. Verifica que el estado de la respuesta sea 200, y que el cuerpo parseado tenga un array customers y un objeto pageInfo con las propiedades currentPage, totalPages y totalCustomers.
👨🏫 Acuérdate de importartestyexpectdesde@playwright/testal principio de tu archivo de spec. Sin esa importación, tu prueba no se va a ejecutar y tus aserciones no van a funcionar.
Asegúrate de que la API esté corriendo localmente con Docker antes de ejecutar tu prueba.
Ejecuta la prueba connpx playwright testpara asegurarte de que tu implementación funciona.
Muéstrale al mundo lo que aprendiste 🌎
Para mostrarle a tu red profesional lo que aprendiste en esta lección, publica lo siguiente en LinkedIn.
Estoy haciendo el curso "Básico de Testing de API con Playwright" con @Walmyr Lima e Silva Filho en la @Talking About Testing School, y acabo de implementar mi primera prueba de API, enviando una petición GET y haciendo aserciones sobre el código de estado y la estructura del cuerpo de la respuesta usando el fixture request de Playwright. #TalkingAboutTesting #TATSchool #BasicsOfAPITestingWithPlaywright #Playwright #APITesting #TestAutomation
👨🏫 No olvides mencionarme en tu publicación. Aquí está mi perfil de LinkedIn.
Cuestionario
¿Qué fixture de Playwright usas para enviar peticiones HTTP en una prueba de API?
Obtén 100% en el cuestionario para continuar