Безопасный scope: Это руководство применимо только к собственным или явно авторизованным QA-, staging- и production-средам. Описаны сценарии диагностики, тестирования и наблюдаемости вашей собственной CAPTCHA-интеграции — не для сторонних сайтов и не для несанкционированных workflow.
Время ответа CAPTCHA solver зависит от типа CAPTCHA, региона, нагрузки и интеграции. Универсальное число вроде «X секунд» почти всегда вводит в заблуждение. Эта статья описывает методику, по которой вы можете измерить и сравнить провайдеров в собственной среде.
Почему benchmark нужно проводить в собственной среде
- Сетевая задержка между вашей инфраструктурой и API solver сильно влияет на итог.
- Тип CAPTCHA (image, reCAPTCHA v2, v3, Turnstile, GeeTest, BLS) имеет разную базовую сложность.
- Время суток и нагрузка провайдера меняют распределение.
- Параметры интеграции (таймауты, ретраи, параллелизм) влияют на эффективное время отклика.
Поэтому любые цифры из чужих статей — ориентировочные, не универсальным обещанием.
Методика измерения
- Зафиксируйте сценарий: тип CAPTCHA, sitekey, pageurl на собственной staging-странице.
- Минимум 200 успешных запросов на провайдера; ошибки и таймауты считайте отдельно.
- Выполняйте измерения с одной и той же машины, в одно и то же время суток.
- Считайте медиану, P90 и P99 — а не среднее.
- Повторите измерение в три разных дня и сравнивайте распределения.
Шаблон таблицы измерений
| Тип CAPTCHA | Провайдер | Выборка | Медиана, с | P90, с | P99, с | Доля ошибок |
|---|---|---|---|---|---|---|
| reCAPTCHA v2 | A | 200 | ваше значение | ваше значение | ваше значение | ваше значение |
| reCAPTCHA v3 | A | 200 | ваше значение | ваше значение | ваше значение | ваше значение |
| Cloudflare Turnstile | A | 200 | ваше значение | ваше значение | ваше значение | ваше значение |
| GeeTest v3 | A | 200 | ваше значение | ваше значение | ваше значение | ваше значение |
Заполняйте только собственные значения. Это внутренняя выборка, она не должна восприниматься как универсальным обещанием.
Совместимость и покрытие
Перед сравнением скорости убедитесь, что провайдер вообще поддерживает нужные вам типы CAPTCHA. Скорость решения несуществующей поддержки бесполезна.
Планирование capacity на собственных данных
Используйте P90 / P99 для расчёта таймаутов в продакшене, а медиану — для оценки средней латентности пользовательских сценариев. Никогда не планируйте capacity по среднему: одна длинная задержка ломает оценку.
Benchmark script
import os, statistics, time, requests
API_KEY = os.environ['CAPTCHAAI_KEY']
PAGE = 'https://staging.example.com/captcha-demo'
def measure(sitekey: str, n: int = 200) -> dict:
times = []
errors = 0
for _ in range(n):
t0 = time.time()
try:
r = requests.post('https://ocr.captchaai.com/in.php', data={
'key': API_KEY, 'method': 'userrecaptcha',
'googlekey': sitekey, 'pageurl': PAGE, 'json': 1,
}, timeout=30).json()
tid = r['request']
for _ in range(40):
time.sleep(3)
res = requests.get('https://ocr.captchaai.com/res.php',
params={'key': API_KEY, 'action': 'get', 'id': tid, 'json': 1},
timeout=30).json()
if res['status'] == 1:
times.append(time.time() - t0)
break
else:
errors += 1
except Exception:
errors += 1
times.sort()
return {
'n': len(times),
'median': statistics.median(times),
'p90': times[int(len(times) * 0.9) - 1],
'p99': times[int(len(times) * 0.99) - 1],
'errors': errors,
}
Безопасные формулировки
Используйте нейтральные формулировки и описывайте только собственную методику, внутреннюю выборку и ориентировочные значения. Добавляйте оговорку, что результат может отличаться в зависимости от типа CAPTCHA, региона, нагрузки и интеграции.
Troubleshooting
| Симптом | Что сделать |
|---|---|
| Большой разброс | Увеличьте выборку, повторите в другой день |
| Высокая P99 | Проверьте сетевые таймауты и ретраи |
| Много ошибок | Сверьте sitekey и баланс ключа |
| Разные регионы | Измеряйте отдельно по каждому региону |
FAQ
Можно ли публиковать чужие цифры как свои?
Нет. Любые цифры верны только для конкретной выборки и среды. Публикуйте только собственные измерения с описанием методики.
Какой минимальный размер выборки достаточно?
Для медианы — 100 запросов, для P90 — 200, для P99 — 1000. Меньшие выборки дают шумные оценки.
Как сравнивать провайдеров честно?
Один и тот же тип CAPTCHA, одна и та же страница, один и тот же интервал времени, одинаковый параллелизм.
Безопасные связанные руководства
- Быстрый старт CaptchaAI
- QA-тестирование CAPTCHA в авторизованных средах
- Тестирование CAPTCHA API на собственных формах
- Отладка: браузерный тест падает, API проходит
- reCAPTCHA v2 через API
- Cloudflare Turnstile через API
- GeeTest v3 через API
Готовы измерить CAPTCHA solver в собственной среде? Подключите CaptchaAI.