Eğitimler

Kendi QA'nız için ileri düzey Puppeteer + CaptchaAI kalıpları

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 suite'iniz büyüdükçe kontrollü paralelizm ve context yeniden kullanımına ihtiyacınız olur. Bu kılavuz kendi ortamınız için kalıpları ele alır.

Kontrollü paralelizm

qa_kasasi başına eşzamanlılığı sınırlayın; staging veya dahili kotalarınızı zorlamayın.

Context yeniden kullanımı

Toplam süreyi azaltmak için tahripsiz adımlar arasında BrowserContext'i paylaşın.

Temiz kapanış

CI'da handle sızıntısı olmaması için sayfa ve context'in finally'de kapatıldığından emin olun.

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.