Acerca de esta herramienta
Convertir una respuesta de ejemplo en assertions es un trabajo mecánico: recorrer el JSON, escribir una expectativa por campo, acertar con la sintaxis de acceso para claves con guiones o puntos y usar el matcher adecuado para nulls y arrays. Este generador lista todos los campos de la respuesta (los arrays una vez, para comprobar su longitud, y a través de su primer elemento), te deja marcar los que importan y genera código para Playwright (await expect(response).toBeOK() y expect(body.user.id).toBe(42)), Postman (pm.test con pm.expect), REST Assured (then().statusCode(200).body("user.id", equalTo(42))) y Cypress (cy.request con .its()). Elige valores exactos para los campos estables o comprobaciones solo de tipo para valores que cambian entre ejecuciones, como ids y marcas de tiempo.
Cómo usarla
- Pega una respuesta JSON de ejemplo e indica el método, la URL y el estado esperado.
- Marca los campos sobre los que hacer assertions. Los diez primeros vienen seleccionados; usa “All” o “None” para cambiarlo rápidamente.
- Elige un framework y assertions de valor exacto o solo de tipo, y copia el código generado en tu test.
Preguntas frecuentes: Generador de assertions de API
¿Debo comprobar valores exactos o solo tipos?
Comprueba valores exactos en los campos que controla tu test o que son estables (estado, rol, moneda). Usa comprobaciones de tipo para valores generados o dependientes del tiempo (ids, marcas de tiempo, tokens); de lo contrario, el test se romperá en cada ejecución.
¿Por qué REST Assured compara los decimales como 12.5f?
Por defecto, el JsonPath de REST Assured devuelve los decimales como Float, y el equalTo(12.5) de Hamcrest con un Double no coincidiría con un Float. Si tu proyecto configura JsonPathConfig para devolver Double o BigDecimal, cambia el literal en consecuencia.
¿Por qué el código de Cypress añade failOnStatusCode: false?
cy.request hace fallar el test ante respuestas 4xx y 5xx por defecto. Cuando esperas un estado de error, esta opción permite que la petición termine para que puedas hacer assertions sobre el estado y el body.