Comparisons

2025'te CAPTCHA solver yanıt süresi nasıl ölçülür

Güvenli kapsam: Bu rehber yalnızca sahibi olduğunuz veya yetkilendirildiğiniz QA, staging ve ön üretim ortamlarını kapsar. Ölçüm ve tanılama kalıpları kendi CAPTCHA entegrasyonlarınız içindir; üçüncü taraf siteleri veya yetkisiz akışları içermez. Kişisel veri içeren akışlarda KVKK yükümlülüklerinizi göz ardı etmeyin.

Üretimde göreceğiniz gecikmeyi doğru tahmin eden tek benchmark, kendi pipeline'ınızda çalıştırdığınızdır. Hazır solver karşılaştırma tabloları farklı bölgelerden ve açıklanmayan metodolojilerle üretilir; sizin trafiğinizi temsil etmez. Bu rehber, çözüm süresini kendi ortamınızda tekrarlanabilir biçimde ölçmenin ve sağlayıcıları adil koşullarda karşılaştırmanın adımlarını verir.

Neden hazır tabloya değil kendi ölçümünüze güvenmelisiniz

Veri merkezinizle sağlayıcı arasındaki ağ gecikmesi, çözdüğünüz CAPTCHA türü ve yeniden deneme oranınız üretimdeki süreyi doğrudan belirler. Bir blogda yayımlanan "medyan" değeri, İstanbul'daki sunucunuzdan Avrupa bölgesine giden bir istekte farklı çıkar. Kararınızı kendi dağılımınıza dayandırın.

Neyi ölçmelisiniz: metodoloji

Her CAPTCHA türü için kendi pipeline'ınızdan en az 200 görev çalıştırın. Her görevde üç değeri kaydedin: in.php'ye gönderim zaman damgası, res.php'den ilk başarılı yanıtın alındığı an ve toplam wallclock süresi. Ardından tek bir ortalama yerine dağılımın tamamını raporlayın — medyan tipik deneyimi, P90 ve P99 ise en yavaş uç senaryoları gösterir.

Ölçüm tablosu şablonu

CAPTCHA türü Örnek Medyan P90 P99
reCAPTCHA v2 200 doldurun doldurun doldurun
reCAPTCHA v3 200 doldurun doldurun doldurun
Cloudflare Turnstile 200 doldurun doldurun doldurun
GeeTest v3 200 doldurun doldurun doldurun
Image / OCR 200 doldurun doldurun doldurun

Aşağıdaki değerler gözlemlenen verilere ve kullanıcı raporlarına dayanır. Sonuçlar ortama, hacme ve zamana göre değişebilir.

Ölçüm scripti

Aşağıdaki Python scripti reCAPTCHA v2 için 200 örnek toplar ve medyan, P90, P99 değerlerini yazdırır. Diğer türler için gönderim fonksiyonunu ilgili method parametresiyle uyarlayın.

import os, time, statistics, requests
API_KEY = os.environ['CAPTCHAAI_API_KEY']
SAMPLES = 200

def submit_recaptcha_v2(sitekey, pageurl):
    r = requests.post('https://ocr.captchaai.com/in.php', data={
        'key': API_KEY, 'method': 'userrecaptcha',
        'googlekey': sitekey, 'pageurl': pageurl, 'json': 1,
    }).json()
    return r['request']

def wait(task_id):
    t0 = time.time()
    while True:
        time.sleep(5)
        rr = requests.get('https://ocr.captchaai.com/res.php', params={
            'key': API_KEY, 'action': 'get', 'id': task_id, 'json': 1,
        }).json()
        if rr['status'] == 1:
            return time.time() - t0

times = [wait(submit_recaptcha_v2(SITE, PAGE)) for _ in range(SAMPLES)]
print('medyan', statistics.median(times))
print('p90', statistics.quantiles(times, n=10)[8])
print('p99', statistics.quantiles(times, n=100)[98])

Adil karşılaştırma: elmayı elmayla ölçün

Sağlayıcıları kıyaslarken her birinin aynı CAPTCHA türünü, aynı bölgeden ve aynı örnek sayısıyla çözdüğünden emin olun. reCAPTCHA v2'yi reCAPTCHA v2 ile karşılaştırın; image OCR süresini Turnstile ile değil. CaptchaAI'nin doğrudan desteklediği türler — reCAPTCHA v2/v3, Cloudflare Turnstile, GeeTest v3 ve image/OCR — için ayrı satırlar tutun.

Kendi verinizle kapasite planlaması

Kendi dağılımınızı elde ettikten sonra sürdürülebilir kapasiteyi hesaplayın: görev/dakika = 60 / medyan_saniye * worker. Ani yük sıçramaları için sonuca %30 tampon ekleyin. CaptchaAI'de eşzamanlılık thread sayısıyla belirlenir; BASIC ($15/ay, 5 thread) beş eşzamanlı çözümü, ölçtüğünüz medyan süreyle birleştirerek saatlik kapasitenizi verir. Thread bazlı model (thread başına sınırsız çözüm) aylık maliyeti çözüm hacminden bağımsız kılar; TL oynaklığı karşısında sabit USD fiyatlandırma Türk ekipler için öngörülebilir bir avantajdır.

Gözlemlenebilirlik ve loglama

Her QA çalıştırması için yapılandırılmış loglar üretin: toplam token süresi, HTTP yanıt kodu, görev kimliği ve kuyruk derinliği hem tablolarınızı hem uyarılarınızı besler. Geliştirme, staging ve ön üretim ortamlarını ayrı kanallara yazın; dağıtık izleme (örneğin OpenTelemetry) ile bağıntı kimliklerini eşleştirin. Tek bir kimlikten senaryoyu yeniden oynatabilmek, olay anındaki tanılama süresini kısaltır.

Ölçüm öncesi kontrol listesi

  • Kapsam yalnızca kendi uygulamalarınız veya yetkilendirilmiş kaynaklarla sınırlıdır.
  • CaptchaAI anahtarı CI gizli deposunda veya kasada tutulur, kaynak koda asla yazılmaz.
  • Her çalıştırmada çağrı süresi ve yanıt kodu kaydedilir.
  • Geçici hatalar için idempotent yeniden deneme stratejisi kuruludur.
  • Testler sürekli entegrasyon ortamınızdan tekrarlanabilir biçimde çalışır.

Örnek QA çağrısı

Aşağıdaki minimal Python akışı, kendi staging ortamınızdaki bir CAPTCHA widget'ını CaptchaAI üzerinden test etmek için kullanılır.

import os
import requests

API_KEY = os.environ['CAPTCHAAI_KEY']
QA_PAGE_URL = os.environ['QA_PAGE_URL']  # ör. https://staging.example.com/qa-login
QA_SITE_KEY = os.environ['QA_SITE_KEY']


def submit_qa_recaptcha() -> str:
    payload = {
        'clientKey': API_KEY,
        'task': {
            'type': 'NoCaptchaTaskProxyless',
            'websiteURL': QA_PAGE_URL,
            'websiteKey': QA_SITE_KEY,
        },
    }
    response = requests.post(
        'https://api.captchaai.com/createTask',
        json=payload,
        timeout=30,
    )
    response.raise_for_status()
    return response.json()['taskId']


def fetch_qa_result(task_id: str) -> dict:
    payload = {'clientKey': API_KEY, 'taskId': task_id}
    response = requests.post(
        'https://api.captchaai.com/getTaskResult',
        json=payload,
        timeout=30,
    )
    response.raise_for_status()
    return response.json()

Sorun giderme

Sorun Önerilen çözüm
Test widget'ı bulunamıyor Staging ortamınızdaki seçiciyi ve zamanlamayı doğrulayın
CaptchaAI ERROR_NO_SLOT_AVAILABLE döndürüyor Dahili pipeline'da üstel geri çekilmeyle yeniden deneyin
Backend QA token'ı reddediyor action ve sitekey değerlerini gerçek yapılandırmayla karşılaştırın
Süreler beklenenden yüksek Daha yakın bir bölgeden test edin, sorgulama aralığını 5 saniyeye ayarlayın

Sık sorulan sorular

Yayınlanmış benchmark tablolarına neden güvenmemeliyim?

Çünkü bu tablolar farklı bölgelerden, farklı yük ve örnek sayılarıyla, çoğu zaman açıklanmayan bir metodolojiyle üretilir. Sizin gecikme profilinizi ancak kendi pipeline'ınızdan alınan ölçüm temsil eder.

Kaç örnek toplamalıyım?

Tür başına en az 200 görev iyi bir başlangıçtır. Daha az örnek, özellikle P99 gibi uç yüzdelikleri güvenilmez kılar; trafiğiniz yüksekse örnek sayısını artırın.

Kapasite planı için medyanı mı yoksa P99'u mu kullanmalıyım?

İkisini birden: medyan tipik saatlik verimi hesaplamak için, P99 ise zaman aşımı ve uyarı eşiklerini belirlemek için gereklidir.

Europe/Istanbul bölgesinden ölçünce sonuçlar neden değişiyor?

Sunucunuz ile sağlayıcı uç noktası arasındaki ağ mesafesi toplam süreye eklenir. Ölçümü, üretim trafiğinizin çıktığı bölgeden yapın.

CaptchaAI fiyatı çözüm başına mı hesaplanır?

Hayır. Fiyatlandırma thread bazlıdır ve her thread için sınırsız çözüm içerir; BASIC ($15/ay, 5 thread) en küçük plandır. Bu model, aylık maliyeti çözüm hacminden bağımsız ve öngörülebilir tutar.

İlgili güvenli rehberler

CAPTCHA entegrasyonunuzu kendi ortamınızda CaptchaAI ile doğrulayın.

Bu makale için yorumlar devre dışı bırakılmıştır.