Integrations

CaptchaAI ile QA için tarayıcı profili izolasyonu

Güvenli kapsam: Bu kılavuz yalnızca size ait veya yetkilendirilmiş QA, staging ve ön üretim ortamları için geçerlidir. İçerik kendi CAPTCHA entegrasyonlarınız için tanılama, test ve gözlemlenebilirlik kalıplarını ele alır — üçüncü taraf siteleri veya yetkisiz akışları kapsamaz.

QA testleri birden fazla test hesabını veya farklı staging ortamlarını kapsadığında, izole edilmiş tarayıcı profilleri çerez kontaminasyonunu önler ve tekrarlanabilir bir durum sağlar. Bu kılavuz kendi QA'nızdaki profil yönetimine odaklanır — tanılama veya tanılama değil.

QA'da profilleri neden ayırmalısınız

  • Bir test senaryosunun çerezlerinin diğerini etkilemesini önler.
  • Her senaryoda test hesaplarını izole eder.
  • CI'da tutarlı tarayıcı durumunu yeniden üretir.
  • Farklı staging yapılandırmalarını ayırır.

Her profilde neler izole edilmeli

Çerezler, localStorage, sessionStorage, IndexedDB, service worker önbelleği ve geliştirici uzantıları. CAPTCHA da oturum durumundan etkilenir; bu nedenle temiz profiller test sonuçlarını tutarlı kılar.

QA profili durumuna örnek

from playwright.sync_api import sync_playwright

def run(profile_dir, qa_user):
    with sync_playwright() as p:
        ctx = p.chromium.launch_persistent_context(
            user_data_dir=profile_dir, headless=True
        )
        page = ctx.new_page()
        page.goto('https://staging.example.com/qa-form')
        # ... CaptchaAI ile CAPTCHA doğrulama ...
        ctx.storage_state(path=f'state-{qa_user}.json')
        ctx.close()

CaptchaAI'yi dahili QA suite içinde kullanma

Her profil için CAPTCHA akışını çalıştırın: staging sayfanızda widget'ı tespit edin, in.php'ye gönderin, res.php'yi sorgulayın, token'ı QA backend endpoint'i üzerinden doğrulayın. Sonuçları profile_id ve qa_kasasi başına kaydedin.

Sorun giderme

Sorun Önerilen çözüm
Test widget'ı bulamıyor Staging ortamınızdaki seçici ve zamanlamayı kontrol edin
CaptchaAI ERROR_NO_SLOT_AVAILABLE döndürüyor Dahili pipeline'da geri çekilme ile yeniden deneyin
Backend QA token'ı reddediyor Action/sitekey değerlerini gerçek yapılandırma ile karşılaştırın

Gözlemlenebilirlik

Her QA çalıştırması için yapılandırılmış günlükler üretin. Toplam token süresi, HTTP yanıt kodu, görev kimliği ve kuyruk derinliği gibi ölçümler tablolarınızı ve uyarılarınızı besler. Ortamlarınızı (geliştirme, staging, ön üretim) ayrı kanallara yazın ve dağıtık izleme (örneğin OpenTelemetry) ile bağıntı kimliklerini eşleştirin. Tek bir kimlikten tüm senaryoyu yeniden oynatabilmek, olay sırasında tanılama süresini yarıya indirir.

Kontrol listesi

  • Kapsam kesinlikle kendi uygulamalarınız veya yetkilendirilmiş kaynaklarla sınırlıdır.
  • CaptchaAI anahtarı CI gizli deposunda veya kasada saklanır, kaynak kodda asla bulunmaz.
  • Her çalıştırma için çağrı süresi ve yanıt kodu kayıt altına alınır.
  • Geçici hatalar için idempotent yeniden deneme stratejisi kuruludur.
  • Testler sürekli entegrasyon ortamınızdan tekrarlanabilir biçimde yeniden oynatılır.

Örnek QA çağrısı

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

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()

Sık sorulan sorular

Bu akış üretim trafiğine dokunur mu?

Hayır. Tüm örnekler staging.example.com veya kendi QA alan adınız gibi yetkilendirilmiş ortamları varsayar. Üretim CAPTCHA korumasını kendi staging kopyanızda yeniden üretin.

API anahtarımı kodda saklayabilir miyim?

Hayır. Anahtarı CI gizli yöneticisi, ortam değişkeni veya kasa hizmeti üzerinden enjekte edin. Kod tabanına işlenen anahtarlar derhal döndürülmelidir.

Geçici hatalar için ne öneriyorsunuz?

İdempotent yeniden deneme: üstel geri çekilme (örneğin 1s, 2s, 4s) ve üst sınır ile birlikte. Ağ hataları, 5xx yanıtları ve ERROR_NO_SLOT_AVAILABLE için yeniden deneme uygundur; kalıcı kimlik doğrulama hataları için değildir.

Güvenli ilgili kılavuzlar

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

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

İlgili Yazılar

Tutorials Yeniden Kullanım için CAPTCHA Jetonlarını Önbelleğe Alma
Doğrudan yeniden kullanılabilir örnekler ve net bir Captcha AI iş akışıyla yeniden kullanım için CAPTCHA Jetonlarını Önbelleğe Alma için adım adım eğitim.

Doğrudan yeniden kullanılabilir örnekler ve net bir Captcha AI iş akışıyla yeniden kullanım için CAPTCHA Jeton...

May 02, 2026
Tutorials CaptchaAI ile Müşteri CAPTCHA Ardışık Düzenleri Oluşturma
Captcha AI ile Müşteri CAPTCHA Ardışık Düzenleri Oluşturma için doğrudan yeniden kullanılabilir örnekler ve net bir Captcha AI iş akışı ile adım adım eğitim.

Captcha AI ile Müşteri CAPTCHA Ardışık Düzenleri Oluşturma için doğrudan yeniden kullanılabilir örnekler ve ne...

May 01, 2026
Use Cases Yüksek talep gören e-commerce checkout akışları için CAPTCHA testi
Kendi staging ortamınızda e-commerce checkout akışlarındaki CAPTCHA entegrasyonlarını sahte stok, test ödeme tokenları ve Captcha AI ile doğrulamak için QA kıla...

Kendi staging ortamınızda e-commerce checkout akışlarındaki CAPTCHA entegrasyonlarını sahte stok, test ödeme t...

May 05, 2026