¡Hola a todos! Siempre miré con escepticismo los marcos de automatización de pruebas con un doble propósito: cobertura de pruebas de UI y API. Por lo general, ejecutará diferentes capas de pruebas en diferentes ejecuciones de prueba (o proyectos de eventos), ya que cada una de ellas probablemente tenga su propia , y . dependencias configuración, Variables de entorno Recientemente, eché un vistazo a lo que tiene para ofrecer en términos de pruebas y lo comparé con mi experiencia , así que esto es lo que tengo para compartir con todos ustedes... Playwright de API con Cypress Ciprés hizo posible las pruebas hace un tiempo. Puede encontrar sobre lo excelente que es esta herramienta en términos de pruebas con ejemplos. Cypress de API un artículo en el portal de aprendizaje de API Rendimiento de la instalación Para ejecutar pruebas, necesita instalar las dependencias de su proyecto, ¿correcto? Bueno, viene con , y su instalación puede ser bastante redundante (y llevar mucho tiempo) si desea ejecutar pruebas exclusivamente (digamos, tiene trabajos separados en CI para ejecuciones de pruebas de UI y API, que suele ser el caso). Cypress un navegador electrónico de API No se ve bien, ¿eh? ☝️ Además, cuando ejecuta pruebas , de todos modos inicia un navegador. de API Ejemplo de prueba Una prueba sencilla con se vería así: de API Cypress it('Sign in with valid credentials', () => { cy.request('POST', '/auth', { login: Cypress.env('username'), password: Cypress.env('password'), }).should(response => { expect(response.body.token).to.be.a('string') expect(response.status).to.eq(200) }) }) Se ve hermosa Dramaturgo Al igual que , es un marco de automatización de pruebas: puede utilizar exclusivamente o (ejecutor de pruebas, biblioteca de aserciones, herramienta de automatización del navegador, cliente HTTP, reportero, etc.). Cypress Playwright solo una herramienta de automatización del navegador todo el marco Rendimiento de la instalación La diferencia aquí es que no viene con ningún navegador listo para usar; debe instalarlos con un comando separado (si lo desea). Playwright Aquí hace una gran diferencia, ya que en términos de ejecutar pruebas exclusivamente, no ejecutará ningún navegador ni ninguna otra aplicación de escritorio y ahorrará tiempo de ejecución y recursos en su máquina. API Ejemplo de prueba Una prueba sencilla con se vería así: API Playwright import {test, expect} from '@playwright/test' test('Sign in with valid credentials', async ({request}) => { const response = await request.post('/auth', { data: { login: process.env.USERNAME, password: process.env.PASSWORD, }, }) expect(response.status()).toEqual(200) expect(await response.json()).toEqual({ token: expect.any(String), }) }) Me gustaría resaltar para afirmar objetos: una sintaxis similar a Jest expect(await response.json()).toEqual({ token: expect.any(String), }) Esta sintaxis le permite verificar toda la estructura del objeto con una sola llamada ☝️ expect Conclusión Se supone que las pruebas API son pequeñas y livianas, ya que no requieren demasiado para ejecutarse. Resumamos el material anterior... Rendimiento de la instalación ✅ gana con una instalación limpia más rápida desde el primer momento. Dramaturgo 13 veces ℹ️ Puede reducir el tiempo de instalación en si o . de Cypress CI usa una imagen con dependencias preinstaladas las almacena en caché en su almacenamiento de CI Ejecutar rendimiento ✅ gana porque no requiere un navegador para ejecutar pruebas de API, por lo que va directo al grano. Playwright ℹ️ No hay forma de "no ejecutar" el navegador en las pruebas de API, ya que es parte de la lógica del marco. Sintaxis de prueba No puedo elegir un ganador aquí, ya que no hay ventaja objetiva ni para ni . Cypress para Playwright Ambos obtuvieron una sintaxis bastante sencilla con ligeras diferencias. Yo diría que es decisión del evaluador elegir lo que le gusta aquí. En general Definitivamente puedo decir que es lo suficientemente seguro usar para la automatización de pruebas debido a su rendimiento. Sería una solución justa si ya tienes pruebas con este marco. Playwright API de UI Mi consejo para aquellos que usan para pruebas y quieren cubrir la capa : mejor usen algo más ( + , pueden ver un ejemplo ). Cypress de UI API Jest Axios allí