Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

170
Vistas
Cómo probar los reintentos de una llamada API usando testcafe

Estoy usando Testcafe para mis pruebas de integración y quiero probar el escenario en el que mi aplicación vuelve a intentar una llamada a la API después de recibir un error. Estoy usando la biblioteca de reintentos asíncronos para hacer mis llamadas. Retry es una utilidad que creé para envolver la llamada a la API para poder envolver el código repetitivo para llamar a async-retry:

 const response = await Retry( () => { return fetch( buildUrl(env, csrf, '/api/myCustomCall', queryParams), options ); }, 'getRecommendations', { onRetry: () => { console.log('RETRYING'); } } );

Para la posteridad, esta es la utilidad Retry :

 import retry, { AsyncRetryOptions } from 'async-retry'; export const Retry = ( func: () => Promise<any>, name: string, opts: AsyncRetryOptions = {} ): Promise<any> => { const retryOptions = { retries: opts.retries || 3, factor: opts.factor || 2, minTimeout: opts.minTimeout || 3000, maxTimeout: opts.maxTimeout || Infinity, randomize: opts.randomize || true, onRetry: (error: Error, attempt: number) => { console.error( `${new Date().toString()} - ${name} failed ${attempt} times, trying again` ); } }; return retry(func, retryOptions); };

Esta es mi prueba:

 test.requestHooks( RequestMock() .onRequestTo(/myCustomCall/) .respond({ error: 'Bad value for request parameter' }, 400, responseHeaders) )('Recommendation request retries 3 times', async (t) => { await playgroundInit(t); await t.expect(recommendationLogger.requests.length).eql(4); });

playgroundInit es una función de utilidad que hace cosas como iniciar sesión y navegar a la página que estoy probando. Cuando estaba desarrollando, usé las herramientas de desarrollo de Chrome para bloquear la solicitud de la API para probar los reintentos, lo cual fue exitoso. Vi que los reintentos funcionaban. Sin embargo, me gustaría imitar esto en mi prueba para automatizar este comportamiento. ¿Cómo se burla de una solicitud en testcafe para activar reintentos?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Según tengo entendido, está realizando su llamada a la API desde el código de prueba de TestCafe, pero no desde la página probada.

En este caso, no se aplicará el mecanismo RequestMock. RequestMock funciona a partir de llamadas a la API que se realizaron desde la página del sitio web. En su caso, usted mismo inicia una solicitud, por lo que el proxy de TestCafe no la procesa.

Si desea que RequestMock funcione, puede intentar hacer sus llamadas a la API desde el navegador, pero no desde el lado de la prueba. Para hacer esto, puede usar el mecanismo ClientFunction que le permite inyectar código JS en la página del sitio web.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda