Explicaciones Técnicas

Salida de red móvil en QA propia y el CAPTCHA

Alcance seguro: esta guía aplica únicamente a tus propios entornos de QA, staging y preproducción autorizados. Describe patrones de diagnóstico, pruebas y observabilidad para tu propia integración con CAPTCHA — no para sitios de terceros ni para flujos que no controlas.

¿Deberías validar tus formularios desde una red móvil autorizada? Sí, cuando buena parte de tus usuarios llega desde el móvil y tu equipo autoriza esa salida de red. La experiencia en 4G/5G no es la del cable de la oficina: cambia la latencia, el render del widget y, a veces, la frecuencia con que aparece el CAPTCHA. Reproducir ese escenario en tu propio QA te ahorra sorpresas en producción.

Cuándo tiene sentido probar desde una red móvil

No siempre necesitas una red móvil. Tiene sentido cuando quieres:

  • Validar flujos pensados para móvil — checkout, login o formularios cuya versión móvil difiere de la de escritorio.
  • Comprobar el render bajo latencia variable — que el widget de CAPTCHA cargue y responda aunque la conexión oscile.
  • Reproducir un incidente reportado en 4G — replicar en QA el fallo que informó un usuario es el primer paso para depurarlo.

Para extraer datos de alto volumen sobre contenido público, en cambio, rara vez aporta: suma latencia y coste sin mejorar tu cobertura.

Criterios responsables

La salida de red móvil solo es legítima dentro de límites claros:

  • Usa redes autorizadas por tu organización.
  • No rotes direcciones para evadir controles ni límites de frecuencia.
  • Respeta las políticas internas y los términos del proveedor de red.

Reproduces a un usuario real en tu propio entorno; no esquivas protecciones ajenas.

Cómo encaja CaptchaAI en tu pipeline propio

El patrón de integración con CaptchaAI es siempre el mismo, sea cual sea el framework de pruebas que uses:

  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 de la página, 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 solo aplica a integraciones que tú controlas.

Configuración recomendada para tu pipeline

Usa la misma configuración de navegador en todos tus entornos de QA, staging y CI. Así evitas el clásico "funciona en local y falla en CI".

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)

Iguala estos parámetros en todos los runners para reducir la varianza entre ejecuciones:

  • Viewport y resolución de ventana.
  • Idioma del navegador (--lang).
  • user-agent móvil y consistente cuando pruebes escenarios de móvil.

Qué métricas registrar

Añade métricas para los pasos con CAPTCHA en tu QA. Registrar tiempos por caso_qa te permite detectar regresiones antes de que lleguen a producción:

  • Tiempo de resolución por intento — desde la solicitud a CaptchaAI hasta la entrega del 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_*, timeouts internos, fallos de red).
  • Latencia extremo a extremo — render de la página, resolución del CAPTCHA y respuesta de tu backend.

Conserva trazas (logs, capturas, HAR) para reproducir incidentes cuando un test falle de forma intermitente. En redes móviles esa varianza es mayor.

Buenas prácticas en tu entorno QA

  • Prueba siempre sobre tu propia aplicación o entornos autorizados.
  • Mantén una API key de CaptchaAI separada para QA, distinta de la de producción.
  • Define timeouts y reintentos con backoff exponencial para no acumular trabajos 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 afecten a tu integración.

Preguntas frecuentes

¿Necesito una red móvil real o basta con un user-agent móvil?

Depende de qué valides. Un user-agent móvil basta para comprobar render y layout. Reproducir la latencia y el comportamiento de red reales exige una salida de red móvil autorizada; coordínala con tu equipo de infraestructura.

¿Qué tipos de CAPTCHA puedo reproducir con CaptchaAI en QA?

CaptchaAI resuelve reCAPTCHA v2 y v3, Cloudflare Turnstile y Cloudflare Challenge, GeeTest v3, e imagen/OCR y grid; CaptchaFox, Friendly Captcha y Lemin están en beta. hCaptcha y FunCaptcha no son compatibles por ahora, y GeeTest v4 figura como próximamente. Consulta la documentación oficial para los parámetros de cada tipo.

¿Cómo evito el "funciona en local pero falla en CI"?

Iguala viewport, idioma y user-agent entre ambos entornos y fija la misma versión de navegador. Si la diferencia persiste, revisa selectores y tiempos de espera en staging antes de tocar el paso de CAPTCHA.

¿Conviene separar la API key de QA de la de producción?

Sí. Una clave dedicada a QA mantiene limpias tus métricas de producción, evita que un test descontrolado consuma threads del entorno real y te deja probar límites de concurrencia sin riesgo.

Solución de problemas

Síntoma Acción recomendada
El test no detecta el widget Revisa selectores y tiempos en staging
CaptchaAI devuelve ERROR_NO_SLOT_AVAILABLE Reintenta con backoff en tu pipeline
La validación 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 concurrencia y límites de tu API key de CaptchaAI

Guías relacionadas seguras

Valida tus integraciones CAPTCHA en entornos propios con CaptchaAI.

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