Casos de Uso

Pruebas QA de cotizadores propios de envío con CAPTCHA

¿Tu equipo mantiene un cotizador de envío con un CAPTCHA delante y necesitas probarlo sin resolver el widget a mano? La respuesta corta: automatiza la resolución en staging con CaptchaAI y valida el flujo con envíos ficticios, para que el CAPTCHA deje de bloquear tu suite de QA.

Alcance seguro: esta guía se aplica solo a tus propios entornos de QA, staging y preproducción autorizados. Cubre diagnóstico, pruebas y observabilidad de tu integración de CAPTCHA, nunca sitios de terceros ni flujos que no controlas.

Qué protege el CAPTCHA en un cotizador propio

Al validar el recorrido de punta a punta de un cotizador, el CAPTCHA es el punto donde una prueba automatizada se detiene. Tu QA debe cubrir tres componentes a la vez:

Componente del cotizador Qué valida tu QA
Formulario de envío Campos de origen, destino, peso y dimensiones
Widget de CAPTCHA Resolución del token en staging con CaptchaAI
Backend de tarifas Cálculo correcto tras verificar el token

Piensa en un equipo de e-commerce en México con su comparador de paquetería, o en una agencia logística en España con un cotizador B2B: en ambos casos conviene comprobar antes de cada release que esos tres componentes siguen funcionando juntos.

Genera envíos de prueba ficticios

Empieza por un conjunto de envíos sintéticos que cubra los casos que de verdad rompen cálculos:

  • Paquetes ligeros y pesados.
  • Envíos nacionales e internacionales.
  • Dimensiones que crucen tramos de tarifa.

Versiona ese conjunto junto al código de los tests.

Configuración de navegador reproducible

Usa la misma configuración de navegador en QA, staging y CI. Esto evita que un test funcione en local y falle en CI sin razón aparente.

from selenium import webdriver

def make_driver(headless: bool = True) -> webdriver.Chrome:
    options = webdriver.ChromeOptions()
    if headless:
        options.add_argument('--headless=new')
    options.add_argument('--window-size=1280,800')
    options.add_argument('--lang=es-ES')
    return webdriver.Chrome(options=options)

Mantener el viewport, el idioma y el user-agent por defecto idénticos en todos los runners reduce la varianza y facilita comparar resultados entre ejecuciones.

Cómo encaja CaptchaAI en tu pipeline de pruebas

El patrón de integración es siempre el mismo, sin importar el framework de pruebas:

  1. Tu test detecta el widget de CAPTCHA en tu propia aplicación (formulario de QA, landing de staging, endpoint de preproducción).
  2. Tu test envía a CaptchaAI los datos públicos del widget: sitekey, URL y tipo de CAPTCHA.
  3. CaptchaAI devuelve un token válido para esa página.
  4. Tu test inyecta ese token en el campo correspondiente y envía el formulario.
  5. Tu backend verifica el token con el proveedor, igual que con un usuario real.

Este flujo se aplica solo a integraciones que tú controlas. Para el detalle por tipo de widget, apóyate en las guías de resolver reCAPTCHA v2 con la API y resolver Cloudflare Turnstile con la API.

Verifica el token en tu backend

Resolver el widget no basta: la prueba solo vale si tu backend acepta el token y devuelve el cálculo esperado. Comprueba que tu endpoint interno responde con la tarifa correcta para cada envío ficticio. Si rechaza un token que CaptchaAI generó bien, casi siempre el action o el sitekey no coinciden con tu configuración real.

Métricas y observabilidad

Añade métricas para los pasos del CAPTCHA y detecta regresiones antes de que lleguen a producción:

  • Tiempo de resolución por intento — desde la solicitud a CaptchaAI hasta el token.
  • Tasa de éxito por endpoint propio — verificaciones de backend que pasan respecto al total de intentos.
  • Distribución de errores — agrupados por código (ERROR_*, tiempos de espera internos, fallos de red).
  • Latencia de extremo a extremo — render, resolución del CAPTCHA y respuesta del backend.

Conserva las trazas (logs, capturas, HAR) para reproducir incidentes intermitentes.

Buenas prácticas en tu entorno de QA

  • Prueba siempre sobre tu propia aplicación o sobre entornos explícitamente autorizados.
  • Define tiempos de espera y reintentos (backoff exponencial) para no acumular trabajos pendientes durante caídas.
  • Versiona tus snapshots de configuración (sitekey, action, umbrales) junto al código de los tests.
  • Revisa el changelog de tu proveedor de CAPTCHA para anticipar cambios que te afecten.

Para un pipeline de QA, el plan BASIC ($15/mes, 5 threads) suele bastar, con un costo mensual predecible en USD.

Solución de problemas

Síntoma Acción recomendada
El test no detecta el widget Revisa selectores y tiempos en tu entorno de staging
CaptchaAI devuelve ERROR_NO_SLOT_AVAILABLE Reintenta con backoff en tu pipeline interna
La validación del backend rechaza el token Compara action/sitekey con tu configuración real
El test funciona en local pero falla en CI Iguala viewport, idioma y user-agent en ambos entornos
Tiempos de resolución muy variables Revisa la concurrencia y los límites de tu API key de CaptchaAI

Preguntas frecuentes

¿Esta guía sirve para cotizadores de terceros?

No. Todo está pensado para tu propia aplicación o entornos autorizados de QA y staging. Resolver el CAPTCHA en sitios que no controlas puede infringir sus términos de servicio.

¿Qué tipos de CAPTCHA puedo resolver con CaptchaAI en mis pruebas?

CaptchaAI resuelve reCAPTCHA v2 y v3, Cloudflare Turnstile y Cloudflare Challenge, GeeTest v3, CAPTCHA de imagen/OCR y grid, y BLS. CaptchaFox, Friendly Captcha y Lemin están en beta. No resuelve hCaptcha ni FunCaptcha (Arkose Labs), y el soporte de GeeTest v4 está próximamente.

¿Cómo evito tests intermitentes en mi propio CI?

Aísla el paso del CAPTCHA en una función con reintentos controlados y backoff exponencial. Registra métricas por intento para diferenciar entre fallos de red, tiempos de espera del proveedor y errores de configuración. Y usa una API key de QA distinta de la de producción, para no mezclar métricas ni consumir threads reales.

Guías relacionadas seguras

Valida tus integraciones de CAPTCHA en entornos propios con CaptchaAI.

Los comentarios están deshabilitados para este artículo.