Alcance seguro: esta guía aplica solo a tus 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 sin autorización.
¿Puedes rotar la IP de salida en tus pruebas sin cruzar la línea de la evasión? Sí, siempre que lo hagas dentro de tu propia infraestructura y sobre redes que controlas o tienes permiso para usar. Rotar la salida de red en QA sirve para reproducir cómo se comporta tu aplicación ante usuarios de distintas regiones y latencias. No sirve —ni debe usarse— para sortear los controles de otros.
Cómo encaja CaptchaAI en tu pipeline de pruebas
Antes de hablar de rotación, conviene fijar el patrón de integración. Con CaptchaAI es siempre el mismo, sea cual sea el framework de pruebas que uses:
- Tu test detecta el widget de CAPTCHA en la página de tu propia aplicación (formulario de QA, landing de staging, endpoint de preproducción).
- Tu test envía a CaptchaAI los datos públicos del widget:
sitekey, URL de la página y tipo de CAPTCHA. - CaptchaAI devuelve un token válido para esa página.
- Tu test inyecta ese token en el campo correspondiente y envía el formulario.
- Tu backend verifica el token con el proveedor de CAPTCHA, igual que con un usuario real.
Este flujo se aplica solo a integraciones que tú controlas, nunca para sortear protecciones ajenas.
Cuándo conviene rotar la salida de red (y cuándo no)
La rotación es una herramienta de diagnóstico, no un mecanismo para saltarse nada. La frontera es clara:
| Rotar la salida tiene sentido | Queda fuera del alcance |
|---|---|
| Validar la UX por región: idioma, moneda, contenido geolocalizado | Evadir controles de sitios de terceros |
| Comprobar latencias desde distintos puntos de red | Sortear límites de acceso que no controlas |
| Reproducir una incidencia propia de una zona concreta | Cualquier prueba sobre infraestructura ajena |
Por ejemplo, si tu aplicación atiende a usuarios en España y en México, reproducir un fallo desde una salida en cada región te ayuda a confirmar si está en el render, en la resolución del CAPTCHA o en tu backend.
Fija la configuración del navegador en todos los entornos
Usa exactamente la misma configuración de navegador en QA, staging y CI. Así evitas el clásico síntoma de un test que pasa en local y falla en CI sin motivo 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. Cuando cambies la salida de red, deja fijo el resto de la configuración: así aíslas la única variable que quieres estudiar.
Qué medir para detectar regresiones
Instrumenta los pasos de CAPTCHA en tus pipelines de QA para detectar regresiones antes de que lleguen a producción:
| Métrica | Qué revela |
|---|---|
| Tiempo de resolución por intento | Latencia entre la solicitud a CaptchaAI y el token |
| Tasa de éxito por endpoint propio | Verificaciones backend que pasan sobre el total |
| Distribución de errores | Códigos ERROR_*, timeouts internos y fallos de red |
| Latencia extremo a extremo | Render, resolución del CAPTCHA y respuesta del backend |
Anota además la salida de red asociada a cada caso_qa y conserva trazas —logs, capturas, archivos HAR—. Cuando un test falle de forma intermitente, saber desde qué región e IP se ejecutó marca la diferencia entre reproducir el incidente y perseguir un fantasma.
Buenas prácticas en tu QA
- Prueba siempre sobre tu propia aplicación o sobre entornos explícitamente autorizados.
- Mantén una API key de CaptchaAI separada para QA, distinta de producción, para no mezclar métricas.
- Define timeouts y reintentos con
backoffexponencial, para no acumular trabajos pendientes en CaptchaAI durante caídas. - Versiona tus snapshots de configuración (sitekey, action, umbrales) junto al código de los tests.
Preguntas frecuentes
¿Qué tipos de CAPTCHA resuelve CaptchaAI en mi pipeline?
CaptchaAI resuelve reCAPTCHA v2 y v3, Cloudflare Turnstile y Cloudflare Challenge, GeeTest v3, CAPTCHA de imagen/OCR y de tipo grid, y BLS. CaptchaFox (beta), Friendly Captcha (beta) y Lemin (beta) están en fase beta. No resuelve hCaptcha ni FunCaptcha (Arkose Labs), y GeeTest v4 figura como próximamente.
¿Puedo rotar la salida de red mientras se resuelve un CAPTCHA?
No. Mantén la misma IP desde que cargas la página hasta que envías el token; rota solo cuando la tarea ya ha terminado. Cambiar de salida a mitad del flujo suele invalidar el token.
¿Necesito una API key distinta para QA?
Sí. Una API key exclusiva de QA mantiene separadas las métricas de prueba y producción, y evita que un pico de tests consuma la concurrencia de tu tráfico real.
¿Cómo evito falsos negativos por errores de red en CI?
Aísla el paso de CAPTCHA en una función con reintentos y backoff exponencial. Registra métricas por intento para diferenciar entre fallos de red, timeouts del proveedor y errores de configuración.
Solución de problemas
| Síntoma | Acción recomendada |
|---|---|
| El test no detecta el widget | Revisa selectores y tiempos en tu entorno staging |
CaptchaAI devuelve ERROR_NO_SLOT_AVAILABLE |
Reintenta con backoff en tu pipeline interna |
| 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 la concurrencia y los límites de tu API key de CaptchaAI |
Guías relacionadas
- Inicio rápido de CaptchaAI
- QA autorizado de CAPTCHA
- Probar endpoints de CAPTCHA en formularios propios
- Depurar tests de navegador cuando la API sí funciona
- Resolver reCAPTCHA v2 con la API
- Resolver Cloudflare Turnstile con la API
Valida tus integraciones de CAPTCHA en entornos propios con CaptchaAI.