نطاق الاستخدام: يقتصر هذا الدليل على اختبار صفحات دفع داخلية أو بيئات staging تابعة لك أو لعميل منحك تفويضًا صريحًا. لا يقدّم أي توجيه للشراء الآلي أو مطاردة المخزون أو العمل على متاجر لا تملكها.
في المتاجر التي تطلق منتجات ذات طلب مرتفع، يكون المسار الأكثر حساسية عادة هو صفحة الدفع نفسها: هل تظهر التحديات في اللحظة المتوقعة؟ هل تُستخرج قيمة sitekey بشكل صحيح؟ هل يمر الرمز المميز إلى النموذج داخل الجلسة نفسها؟ وهل يعيد الخادم الصفحة إلى حالة واضحة إذا فشل التحقق؟ هذه هي الأسئلة المناسبة هندسيًا. أما السباق نحو مخزون حقيقي أو محاولة التفوق على مستخدمين آخرين فليست هدفًا مشروعًا لهذا الملف.
ما الذي يجب اختباره في متجر مملوك؟
| نقطة الاختبار | السؤال العملي |
|---|---|
| تحميل صفحة الدفع | هل يتم تحميل عناصر CAPTCHA في الزمن المتوقع؟ |
| صلاحية الجلسة | هل تبقى الجلسة نفسها من العربة إلى الإرسال؟ |
| تمرير الرمز | هل يصل الرمز إلى الحقل الصحيح ويُقرأ خلفيًا؟ |
| زمن الحل | هل يبقى داخل ميزانية الاختبار الداخلية؟ |
| الرسائل عند الفشل | هل يرى المستخدم أو فريق QA سبب الرفض بوضوح؟ |
إذا كان فريقك يملك هذه الصفحة، فهذه الاختبارات تمنحك قيمة مباشرة: يمكنك تحسين الاعتمادية، وتقليل الإعادات اليدوية، ومعرفة ما إذا كان الخلل في المتصفح أو في دمج CAPTCHA أو في منطق الخادم.
مثال آمن: اختبار بوابة الدفع على staging
المثال التالي يوضح فحصًا بسيطًا لصفحة دفع مملوكة. لا توجد فيه قوائم انتظار، ولا رموز محفوظة مسبقًا، ولا وكلاء، ولا محاولات للاقتراب من نافذة بيع حقيقية. الهدف الوحيد هو التحقق من أن صفحة staging الخاصة بك تقبل الرمز وتستجيب كما تتوقع.
import requests
import time
CAPTCHAAI_KEY = "YOUR_API_KEY"
CAPTCHAAI_URL = "https://ocr.captchaai.com"
def solve_checkout_captcha(sitekey, pageurl):
submit = requests.post(
f"{CAPTCHAAI_URL}/in.php",
data={
"key": CAPTCHAAI_KEY,
"method": "userrecaptcha",
"googlekey": sitekey,
"pageurl": pageurl,
"json": 1,
},
timeout=30,
)
submit.raise_for_status()
task_id = submit.json()["request"]
for _ in range(30):
time.sleep(5)
result = requests.get(
f"{CAPTCHAAI_URL}/res.php",
params={
"key": CAPTCHAAI_KEY,
"action": "get",
"id": task_id,
"json": 1,
},
timeout=30,
)
result.raise_for_status()
data = result.json()
if data.get("status") == 1:
return data["request"]
raise TimeoutError("checkout CAPTCHA solve timed out")
def run_checkout_smoke_test():
session = requests.Session()
checkout_url = "https://staging.example-store.test/checkout"
checkout_page = session.get(checkout_url, timeout=30)
checkout_page.raise_for_status()
sitekey = "6LcR_example_owned_checkout"
token = solve_checkout_captcha(sitekey, checkout_url)
response = session.post(
f"{checkout_url}/validate-captcha",
json={
"cart_id": "qa-cart-001",
"captcha_token": token,
},
timeout=30,
)
response.raise_for_status()
return response.json()
print(run_checkout_smoke_test())
يمكن توسيع هذا المثال بإضافة تسجيل لزمن الحل، ومعرف الجلسة، والاستجابة الخلفية، لكن يجب أن يبقى ضمن بيئة تملكها أنت. إذا كانت الصفحة ليست تحت سيطرتك، فلا ينبغي استخدام هذه المقالة كمرجع تشغيل.
مؤشرات الاعتمادية التي تستحق المتابعة
| المؤشر | كيف يساعدك؟ |
|---|---|
| زمن ظهور عنصر CAPTCHA | يكشف بطء تحميل الصفحة أو اختلاف DOM |
| زمن الحل | يحدد إن كانت ميزانية الاعتمادية كافية في المسار الحالي |
| عمر الرمز عند الإرسال | يوضح إن كان التطبيق يؤخر الإرسال أكثر من اللازم |
| معرف الجلسة من بداية العربة إلى الدفع | يكشف انقطاع الجلسة قبل التحقق |
| رمز الخطأ من الخادم | يميز بين فشل التحقق وفشل الطلب نفسه |
هذه المؤشرات أفضل بكثير من لغة مثل "إذا تأخرت ثانية ضاع المخزون" لأنها قابلة للقياس داخل بيئة الاختبار نفسها وتخدم قرارًا هندسيًا يمكن الدفاع عنه.
ما الذي لا يغطيه هذا الملف
النسخة الحالية لا تغطي:
- الشراء الآلي من متاجر طرف ثالث
- حفظ رموز مميزة مسبقًا لاستخدامها عند لحظة إطلاق حقيقية
- تدوير وكلاء أو تغيير هوية الجلسة بغرض العمل على موقع لا تملكه
- أي صياغة من نوع "نفد المخزون" أو "تغلّب على الإصدار" أو "اربح المخزون"
إذا احتاج فريقك إلى تشغيل تمرين حمل أو تمرين قبول قبل إطلاق منتج يملكه، فابنِ هذا التمرين داخل staging أو نسخة داخلية من المتجر مع بيانات وهمية ومخزون اختباري ورسائل مراقبة واضحة.
الأسئلة الشائعة
هل يمكن نشر هذا الملف الآن؟
نعم. بعد إعادة الصياغة أصبح هذا الملف صالحًا للنشر لأنه يركّز حصريًا على اختبار صفحات دفع مملوكة أو بيئات staging مفوضة، ولا يتضمن شراءً آليًا أو مطاردة مخزون أو تشغيلًا على متاجر طرف ثالث.
ما البديل المناسب لفريق QA؟
استخدم هذه المقالة فقط كنقطة انطلاق لاختبار صفحة دفع تملكها أنت، مع بيانات اختبارية وجلسات مملوكة ومؤشرات مراقبة واضحة.
هل يفترض هذا المثال وجود عملية شراء حقيقية؟
لا. المثال يختبر واجهة تحقق مملوكة على staging، ولا يتضمن شحنًا أو دفعًا فعليًا أو تعاملًا مع مخزون حقيقي.
أدلة ذات صلة
إذا كنت تختبر تدفق دفع تملكه، فاجعل الأولوية لسلامة الجلسة، وصحة حقن الرمز، ورسائل الفشل، ثم اختبر CaptchaAI في نفس المسار وضمن نفس البيئة.